mmc: omap: don't set wrong voltage select for mmc2 master pandora-2013.01 sz_175u1
authorGrazvydas Ignotas <notasas@gmail.com>
Tue, 19 Jul 2016 23:19:38 +0000 (02:19 +0300)
committerGrazvydas Ignotas <notasas@gmail.com>
Wed, 20 Jul 2016 00:19:09 +0000 (03:19 +0300)
causes compatibility issues with older kernels, but somehow still works
in uboot itself?

drivers/mmc/omap_hsmmc.c

index b6903d2..ab243c5 100644 (file)
@@ -203,9 +203,17 @@ static int mmc_init_setup(struct mmc *mmc)
                        return TIMEOUT;
                }
        }
                        return TIMEOUT;
                }
        }
-       writel(DTW_1_BITMODE | SDBP_PWROFF | SDVS_3V0, &mmc_base->hctl);
-       writel(readl(&mmc_base->capa) | VS30_3V0SUP | VS18_1V8SUP,
-               &mmc_base->capa);
+       reg_val = DTW_1_BITMODE | SDBP_PWROFF;
+       if (mmc->block_dev.dev == 0)
+               reg_val |= SDVS_3V0;
+       else
+               reg_val |= SDVS_1V8;
+       writel(reg_val, &mmc_base->hctl);
+
+       reg_val = readl(&mmc_base->capa) | VS18_1V8SUP;
+       if (mmc->block_dev.dev == 0)
+               reg_val |= VS30_3V0SUP;
+       writel(reg_val, &mmc_base->capa);
 
        reg_val = readl(&mmc_base->con) & RESERVED_MASK;
 
 
        reg_val = readl(&mmc_base->con) & RESERVED_MASK;