From 8bebfed5d0c6ee60bdd87d9ab5e7972ace7e6d68 Mon Sep 17 00:00:00 2001 From: Rajendra Nayak Date: Mon, 12 Mar 2012 20:32:38 +0530 Subject: [PATCH] --- yaml --- r: 297351 b: refs/heads/master c: 1f84b71b3fa834faa87e14c8dc5d5a7c1fa084e8 h: refs/heads/master i: 297349: aa26320ad555abde9912dd6a5391060761a7972a 297347: 29c49deda9445d6eb538e435ccfeb97bf9fb9e4c 297343: 33b1e8f43d69bf00e5411f4d4a2a177883995322 v: v3 --- [refs] | 2 +- trunk/drivers/mmc/host/omap_hsmmc.c | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index e5e9afa716bb..7130b2eb522a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 46856a68dcb5f67c779d211fd6bcb5d7a2a7f19b +refs/heads/master: 1f84b71b3fa834faa87e14c8dc5d5a7c1fa084e8 diff --git a/trunk/drivers/mmc/host/omap_hsmmc.c b/trunk/drivers/mmc/host/omap_hsmmc.c index e0808d4a7681..47adb161d3ad 100644 --- a/trunk/drivers/mmc/host/omap_hsmmc.c +++ b/trunk/drivers/mmc/host/omap_hsmmc.c @@ -244,6 +244,13 @@ static int omap_hsmmc_set_power(struct device *dev, int slot, int power_on, */ if (!host->vcc) return 0; + /* + * With DT, never turn OFF the regulator. This is because + * the pbias cell programming support is still missing when + * booting with Device tree + */ + if (of_have_populated_dt() && !vdd) + return 0; if (mmc_slot(host).before_set_reg) 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) * of external transceiver; but they all handle 1.8V. */ if ((OMAP_HSMMC_READ(host->base, HCTL) & SDVSDET) && - (ios->vdd == DUAL_VOLT_OCR_BIT)) { + (ios->vdd == DUAL_VOLT_OCR_BIT) && + /* + * With pbias cell programming missing, this + * can't be allowed when booting with device + * tree. + */ + (!of_have_populated_dt())) { /* * The mmc_select_voltage fn of the core does * not seem to set the power_mode to