--- a/drivers/mmc/pxamci.c
+++ b/drivers/mmc/pxamci.c
@@ -366,8 +366,7 @@ static void pxamci_set_ios(struct mmc_ho
 
 	if (ios->clock) {
 		unsigned int clk = CLOCKRATE / ios->clock;
-		if (CLOCKRATE / clk > ios->clock)
-			clk <<= 1;
+		if(clk > (1<<6)) clk = (1<<6);
 		host->clkrt = fls(clk) - 1;
 		pxa_set_cken(CKEN12_MMC, 1);
 
