aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorAdrian Hunter <ext-adrian.hunter@nokia.com>2009-02-24 07:48:16 -0500
committerPierre Ossman <drzeus@drzeus.cx>2009-03-24 16:29:59 -0400
commit9e57d60829f5c00ebf44df65a4b709359e285c20 (patch)
tree5338f14fd61fb8d7f66bf71d7ed3464c5ffb5af4 /drivers/mmc
parent736bb6bb01a2a180b6f062e792bd03658d57ab7e (diff)
omap_hsmmc: do not re-power when powering off MMC
Remove code that turns MMC1 power back on after it has been powered off (when the voltage is 1.8V). The offending code is not necessary because the host controller bus voltage is initialized to 3V when probing or resuming. Note that MMC powers up with the highest voltage available (see mmc_power_up()) which will be 3V also. Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com> Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/omap_hsmmc.c17
1 files changed, 0 insertions, 17 deletions
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index a631c81dce12..303a7970806d 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -485,9 +485,6 @@ static int omap_mmc_switch_opcond(struct mmc_omap_host *host, int vdd)
485 u32 reg_val = 0; 485 u32 reg_val = 0;
486 int ret; 486 int ret;
487 487
488 if (host->id != OMAP_MMC1_DEVID)
489 return 0;
490
491 /* Disable the clocks */ 488 /* Disable the clocks */
492 clk_disable(host->fclk); 489 clk_disable(host->fclk);
493 clk_disable(host->iclk); 490 clk_disable(host->iclk);
@@ -786,20 +783,6 @@ static void omap_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
786 switch (ios->power_mode) { 783 switch (ios->power_mode) {
787 case MMC_POWER_OFF: 784 case MMC_POWER_OFF:
788 mmc_slot(host).set_power(host->dev, host->slot_id, 0, 0); 785 mmc_slot(host).set_power(host->dev, host->slot_id, 0, 0);
789 /*
790 * Reset interface voltage to 3V if it's 1.8V now;
791 * only relevant on MMC-1, the others always use 1.8V.
792 *
793 * REVISIT: If we are able to detect cards after unplugging
794 * a 1.8V card, this code should not be needed.
795 */
796 if (host->id != OMAP_MMC1_DEVID)
797 break;
798 if (!(OMAP_HSMMC_READ(host->base, HCTL) & SDVSDET)) {
799 int vdd = fls(host->mmc->ocr_avail) - 1;
800 if (omap_mmc_switch_opcond(host, vdd) != 0)
801 host->mmc->ios.vdd = vdd;
802 }
803 break; 786 break;
804 case MMC_POWER_UP: 787 case MMC_POWER_UP:
805 mmc_slot(host).set_power(host->dev, host->slot_id, 1, ios->vdd); 788 mmc_slot(host).set_power(host->dev, host->slot_id, 1, ios->vdd);