MMC host:
- sdhci-esdhc-imx: Fixup clock to make i.MX53 Loco (IMX53QSB) boot again -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJaYFLhAAoJEP4mhCVzWIwp1W8P+wZcUp482T2O0hLZeY/Oht13 SXliBcDtcNGJvTY7XSUAj/AHqbhuW4meGu26sx5iLVbKurdB55yyCgYD3mXG1vcb xLg1zlpDQAiFsJ9jWoZzLXZztOBD6hncPWCUiNVV/WOLvOCnXSZbDMF17QoUyUWf tQx3OXvXWpobemUtVg+h3nYkhgjIfvK3qqFaJb3h6LG0dEs7rJ+HLqD0wFE4+45o EEeV8gCAMtRdzl40len8ondLcmV3FHRpQ+96qtZD1hyIyr2bGQab7pQNYJt/itd0 So2GweB2b7vhvUs5tDzp2Q4/zOtKxB8xvv3GJydeThu9JwB+/rkOQjvzdcuk5E3/ atwM2dooF269b2bm14lhmmaAg5oDCzKhI7Yy1Fs3xpVKWxZZTYrsiErdKyc0Il+l JXavsrr8K3v+ubtP/PSoe4zIKjR9t/ByLXJujEV1ea0HqTwRepfcwZqNKw7e2+XV eyMf41nytRnk+3vawjlAgctCJL3V1LAN9LpL3+46MYXSgCtPzP5m5JArt1RNdEUF AvKZWqCMPNK0RWtdXuHy8GujlMS4KXLLqHjztzljaRGJK2UtxE1j32L5fs8ccfUi SgfSnboqCBH4Iwgb+5qIR855IaNQjCDKJh2lZA1INR4Qp2s14qJOxG+pxSYbTg1t 1VC1UjzTdCr8+lwHX5jP =4L0c -----END PGP SIGNATURE----- Merge tag 'mmc-v4.15-rc2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc Pull MMC fix from Ulf Hansson: "sdhci-esdhc-imx: Fixup clock to make i.MX53 Loco (IMX53QSB) boot again" * tag 'mmc-v4.15-rc2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: mmc: sdhci-esdhc-imx: Fix i.MX53 eSDHCv3 clock
This commit is contained in:
Коммит
79683f80e4
|
@ -687,6 +687,20 @@ static inline void esdhc_pltfm_set_clock(struct sdhci_host *host,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* For i.MX53 eSDHCv3, SYSCTL.SDCLKFS may not be set to 0. */
|
||||||
|
if (is_imx53_esdhc(imx_data)) {
|
||||||
|
/*
|
||||||
|
* According to the i.MX53 reference manual, if DLLCTRL[10] can
|
||||||
|
* be set, then the controller is eSDHCv3, else it is eSDHCv2.
|
||||||
|
*/
|
||||||
|
val = readl(host->ioaddr + ESDHC_DLL_CTRL);
|
||||||
|
writel(val | BIT(10), host->ioaddr + ESDHC_DLL_CTRL);
|
||||||
|
temp = readl(host->ioaddr + ESDHC_DLL_CTRL);
|
||||||
|
writel(val, host->ioaddr + ESDHC_DLL_CTRL);
|
||||||
|
if (temp & BIT(10))
|
||||||
|
pre_div = 2;
|
||||||
|
}
|
||||||
|
|
||||||
temp = sdhci_readl(host, ESDHC_SYSTEM_CONTROL);
|
temp = sdhci_readl(host, ESDHC_SYSTEM_CONTROL);
|
||||||
temp &= ~(ESDHC_CLOCK_IPGEN | ESDHC_CLOCK_HCKEN | ESDHC_CLOCK_PEREN
|
temp &= ~(ESDHC_CLOCK_IPGEN | ESDHC_CLOCK_HCKEN | ESDHC_CLOCK_PEREN
|
||||||
| ESDHC_CLOCK_MASK);
|
| ESDHC_CLOCK_MASK);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче