]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - drivers/mmc/fsl_esdhc.c
mmc: fsl_esdhc: Fix eMMC 1.8v setting issue
[people/ms/u-boot.git] / drivers / mmc / fsl_esdhc.c
index cca57f8a79dbc48b75f0b5063751fd65465aec8d..71c62f42337b01073ca100b43a5e8fd4631b1249 100644 (file)
@@ -647,7 +647,11 @@ static int esdhc_init_common(struct fsl_esdhc_priv *priv, struct mmc *mmc)
        esdhc_write32(&regs->clktunectrlstatus, 0x0);
 
        /* Put VEND_SPEC to default value */
-       esdhc_write32(&regs->vendorspec, VENDORSPEC_INIT);
+       if (priv->vs18_enable)
+               esdhc_write32(&regs->vendorspec, (VENDORSPEC_INIT |
+                             ESDHC_VENDORSPEC_VSELECT));
+       else
+               esdhc_write32(&regs->vendorspec, VENDORSPEC_INIT);
 
        /* Disable DLL_CTRL delay line */
        esdhc_write32(&regs->dllctrl, 0x0);
@@ -676,9 +680,6 @@ static int esdhc_init_common(struct fsl_esdhc_priv *priv, struct mmc *mmc)
        /* Set timout to the maximum value */
        esdhc_clrsetbits32(&regs->sysctl, SYSCTL_TIMEOUT_MASK, 14 << 16);
 
-       if (priv->vs18_enable)
-               esdhc_setbits32(&regs->vendorspec, ESDHC_VENDORSPEC_VSELECT);
-
        return 0;
 }