mmc: sdhci-omap: Get IODelay values for 3.3v DDR mode
authorKishon Vijay Abraham I <kishon@ti.com>
Fri, 27 Apr 2018 11:47:23 +0000 (17:17 +0530)
committerUlf Hansson <ulf.hansson@linaro.org>
Thu, 3 May 2018 07:37:13 +0000 (09:37 +0200)
commit 8d20b2eae6c47b095523 ("mmc: sdhci_omap: Add support to set
IODELAY values") stored IODelay values for all MM/SD modes
in pinctrl_state structure member of sdhci_omap_host. However for
DDR mode it gets IODelay values only for 1.8v DDR mode. Since some of
the platforms which uses sdhci-omap has IO lines connected to 3.3v,
get IODelay values for 3.3v DDR mode.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-omap.c

index bd5e03d..f3a7c8e 100644 (file)
@@ -842,8 +842,15 @@ static int sdhci_omap_config_iodelay_pinctrl_state(struct sdhci_omap_host
 
        state = sdhci_omap_iodelay_pinctrl_state(omap_host, "ddr_1_8v", caps,
                                                 MMC_CAP_1_8V_DDR);
-       if (!IS_ERR(state))
+       if (!IS_ERR(state)) {
                pinctrl_state[MMC_TIMING_MMC_DDR52] = state;
+       } else {
+               state = sdhci_omap_iodelay_pinctrl_state(omap_host, "ddr_3_3v",
+                                                        caps,
+                                                        MMC_CAP_3_3V_DDR);
+               if (!IS_ERR(state))
+                       pinctrl_state[MMC_TIMING_MMC_DDR52] = state;
+       }
 
        state = sdhci_omap_iodelay_pinctrl_state(omap_host, "hs", caps,
                                                 MMC_CAP_SD_HIGHSPEED);