diff options
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/host/sdhci-esdhc-imx.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c index 48832c567f72..968a70f1a420 100644 --- a/drivers/mmc/host/sdhci-esdhc-imx.c +++ b/drivers/mmc/host/sdhci-esdhc-imx.c | |||
@@ -318,8 +318,15 @@ static void esdhc_writeb_le(struct sdhci_host *host, u8 val, int reg) | |||
318 | * circuit relies on. To work around it, we turn the clocks on back | 318 | * circuit relies on. To work around it, we turn the clocks on back |
319 | * to keep card detection circuit functional. | 319 | * to keep card detection circuit functional. |
320 | */ | 320 | */ |
321 | if ((reg == SDHCI_SOFTWARE_RESET) && (val & 1)) | 321 | if ((reg == SDHCI_SOFTWARE_RESET) && (val & 1)) { |
322 | esdhc_clrset_le(host, 0x7, 0x7, ESDHC_SYSTEM_CONTROL); | 322 | esdhc_clrset_le(host, 0x7, 0x7, ESDHC_SYSTEM_CONTROL); |
323 | /* | ||
324 | * The reset on usdhc fails to clear MIX_CTRL register. | ||
325 | * Do it manually here. | ||
326 | */ | ||
327 | if (is_imx6q_usdhc(imx_data)) | ||
328 | writel(0, host->ioaddr + ESDHC_MIX_CTRL); | ||
329 | } | ||
323 | } | 330 | } |
324 | 331 | ||
325 | static unsigned int esdhc_pltfm_get_max_clock(struct sdhci_host *host) | 332 | static unsigned int esdhc_pltfm_get_max_clock(struct sdhci_host *host) |