mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 13:53:33 +00:00
mmc: sdhci-of-esdhc: temporary fixup for eMMC HS400 issue
Currently only LX2160A eSDHC supports eMMC HS400. According to a large number of tests, eMMC HS400 failed to work at 150MHz, and for a few boards failed to work at 175MHz. But eMMC HS400 worked fine on 200MHz. We hadn't found the root cause but setting eSDHC_DLLCFG0[DLL_FREQ_SEL] = 0 using slow delay chain seemed to resovle this issue. Let's use this as fixup for now. Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
6079e63cde
commit
58d0bf843b
1 changed files with 3 additions and 1 deletions
|
@ -623,7 +623,9 @@ static void esdhc_of_set_clock(struct sdhci_host *host, unsigned int clock)
|
|||
esdhc_clock_enable(host, true);
|
||||
|
||||
temp = sdhci_readl(host, ESDHC_DLLCFG0);
|
||||
temp |= ESDHC_DLL_ENABLE | ESDHC_DLL_FREQ_SEL;
|
||||
temp |= ESDHC_DLL_ENABLE;
|
||||
if (host->mmc->actual_clock == MMC_HS200_MAX_DTR)
|
||||
temp |= ESDHC_DLL_FREQ_SEL;
|
||||
sdhci_writel(host, temp, ESDHC_DLLCFG0);
|
||||
temp = sdhci_readl(host, ESDHC_TBCTL);
|
||||
sdhci_writel(host, temp | ESDHC_HS400_WNDW_ADJUST, ESDHC_TBCTL);
|
||||
|
|
Loading…
Reference in a new issue