From e2607096a5fb9b67f8e1a7bafa824109b8da45d6 Mon Sep 17 00:00:00 2001 From: Tony Lindgren Date: Wed, 3 May 2006 03:59:07 -0700 Subject: [PATCH] MMC: Fix MMC_POWER_UP on some OMAP boards MMC spec says that we must not enable clock prior to the power stabilizing. But at least omap16xx needs clock divisor configured during MMC_POWER_UP. Signed-off-by: Tony Lindgren --- drivers/mmc/omap.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/omap.c b/drivers/mmc/omap.c index 7c8b6ceb934..51670cf1eed 100644 --- a/drivers/mmc/omap.c +++ b/drivers/mmc/omap.c @@ -899,9 +899,16 @@ static void mmc_omap_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) int dsor; int realclock, i; - realclock = ios->clock; + /* According to the MMC spec we must not enable clock prior to + * power stabilizing. But at least omap16xx needs clock dsor + * configured during MMC_POWER_UP. + */ + if ((ios->power_mode == MMC_POWER_UP) && (ios->clock == 0)) + realclock = mmc->f_min; + else + realclock = ios->clock; - if (ios->clock == 0) + if (realclock == 0) dsor = 0; else { int func_clk_rate = clk_get_rate(host->fclk); -- 2.41.1