aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mmc/host/omap_hsmmc.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index e0808d4a7681..47adb161d3ad 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -244,6 +244,13 @@ static int omap_hsmmc_set_power(struct device *dev, int slot, int power_on,
244 */ 244 */
245 if (!host->vcc) 245 if (!host->vcc)
246 return 0; 246 return 0;
247 /*
248 * With DT, never turn OFF the regulator. This is because
249 * the pbias cell programming support is still missing when
250 * booting with Device tree
251 */
252 if (of_have_populated_dt() && !vdd)
253 return 0;
247 254
248 if (mmc_slot(host).before_set_reg) 255 if (mmc_slot(host).before_set_reg)
249 mmc_slot(host).before_set_reg(dev, slot, power_on, vdd); 256 mmc_slot(host).before_set_reg(dev, slot, power_on, vdd);
@@ -1536,7 +1543,13 @@ static void omap_hsmmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
1536 * of external transceiver; but they all handle 1.8V. 1543 * of external transceiver; but they all handle 1.8V.
1537 */ 1544 */
1538 if ((OMAP_HSMMC_READ(host->base, HCTL) & SDVSDET) && 1545 if ((OMAP_HSMMC_READ(host->base, HCTL) & SDVSDET) &&
1539 (ios->vdd == DUAL_VOLT_OCR_BIT)) { 1546 (ios->vdd == DUAL_VOLT_OCR_BIT) &&
1547 /*
1548 * With pbias cell programming missing, this
1549 * can't be allowed when booting with device
1550 * tree.
1551 */
1552 (!of_have_populated_dt())) {
1540 /* 1553 /*
1541 * The mmc_select_voltage fn of the core does 1554 * The mmc_select_voltage fn of the core does
1542 * not seem to set the power_mode to 1555 * not seem to set the power_mode to