mmc: sdhci-esdhc-imx: correct pre_div for imx6q
authorDong Aisheng <b29396@freescale.com>
Fri, 13 Sep 2013 11:11:36 +0000 (19:11 +0800)
committerChris Ball <cjb@laptop.org>
Thu, 26 Sep 2013 11:57:29 +0000 (07:57 -0400)
According to spec, the pre_div for imx6q should be 1, or the biggest
clock rate we can get is a half of host clock rate.  This may cause
we can not get the proper clock rate as we want.  e.g. if the desired
clock is 200Mhz, however, the host clock is 200Mhz too, then it causes
the actual clock we get is 100Mhz due to pre_div is 2.

Signed-off-by: Dong Aisheng <b29396@freescale.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/host/sdhci-esdhc-imx.c

index ed00d6ddd5fdcd827eb69640bdc302307884c6d1..fe48ec3323afad729a57ae77f92d8f6dafe6e70e 100644 (file)
@@ -510,6 +510,9 @@ static inline void esdhc_pltfm_set_clock(struct sdhci_host *host,
                goto out;
        }
 
+       if (is_imx6q_usdhc(imx_data))
+               pre_div = 1;
+
        temp = sdhci_readl(host, ESDHC_SYSTEM_CONTROL);
        temp &= ~(ESDHC_CLOCK_IPGEN | ESDHC_CLOCK_HCKEN | ESDHC_CLOCK_PEREN
                | ESDHC_CLOCK_MASK);