From eacf9050892616fe90a6908c7f6edd2680d8fa1b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 29 Mar 2014 18:13:00 -0600 Subject: [PATCH] Fix a rounding problem in HSMCI divider calculation --- arch/arm/src/sama5/sam_pmc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/arm/src/sama5/sam_pmc.c b/arch/arm/src/sama5/sam_pmc.c index 1fe3767224..f9983ced0e 100755 --- a/arch/arm/src/sama5/sam_pmc.c +++ b/arch/arm/src/sama5/sam_pmc.c @@ -313,7 +313,10 @@ uint32_t sam_hsmci_clkdiv(uint32_t target) uint32_t clkfulldiv; uint32_t ret; - clkfulldiv = BOARD_MCK_FREQUENCY / target; + /* Get the largest divisor does not exceed the target value */ + + clkfulldiv = (BOARD_MCK_FREQUENCY + target - 1) / target; + if (clkfulldiv > 2) { clkfulldiv -= 2;