orig_reg |= (val & SDHCI_CTRL_TUNED_CLK)
? 0 : SDHCI_MIX_CTRL_SMPCLK_SEL;
- orig_reg |= (val & SDHCI_CTRL_UHS_DDR50)
- ? SDHCI_MIX_CTRL_DDREN : 0;
+ if (val & SDHCI_CTRL_UHS_DDR50) {
+ orig_reg |= SDHCI_MIX_CTRL_DDREN;
+ imx_data->scratchpad |= SDHCI_MIX_CTRL_DDREN;
+ } else {
+ orig_reg &= ~SDHCI_MIX_CTRL_DDREN;
+ imx_data->scratchpad &= ~SDHCI_MIX_CTRL_DDREN;
+ }
writel(orig_reg, host->ioaddr + SDHCI_MIX_CTRL);
/* set clock frequency again */
reg |= SDHCI_PROT_CTRL_8BIT;
else if (width == MMC_BUS_WIDTH_4)
reg |= SDHCI_PROT_CTRL_4BIT;
- else if (width == MMC_BUS_WIDTH_1)
- host->mmc->ios.ddr = 0;
writel(reg, host->ioaddr + SDHCI_HOST_CONTROL);
return 0;