aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/omap_hsmmc.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index d2fad587f371..af374771bed0 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -347,7 +347,14 @@ static int omap_hsmmc_23_set_sleep(struct device *dev, int slot, int sleep,
347 err = regulator_set_mode(host->vcc, mode); 347 err = regulator_set_mode(host->vcc, mode);
348 if (err) 348 if (err)
349 return err; 349 return err;
350 return regulator_set_mode(host->vcc_aux, mode); 350
351 if (!mmc_slot(host).vcc_aux_disable_is_sleep)
352 return regulator_set_mode(host->vcc_aux, mode);
353
354 if (sleep)
355 return regulator_disable(host->vcc_aux);
356 else
357 return regulator_enable(host->vcc_aux);
351} 358}
352 359
353static int omap_hsmmc_gpio_init(struct omap_mmc_platform_data *pdata) 360static int omap_hsmmc_gpio_init(struct omap_mmc_platform_data *pdata)
@@ -1982,6 +1989,13 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)
1982 else 1989 else
1983 mmc->ops = &omap_hsmmc_ops; 1990 mmc->ops = &omap_hsmmc_ops;
1984 1991
1992 /*
1993 * If regulator_disable can only put vcc_aux to sleep then there is
1994 * no off state.
1995 */
1996 if (mmc_slot(host).vcc_aux_disable_is_sleep)
1997 mmc_slot(host).no_off = 1;
1998
1985 mmc->f_min = 400000; 1999 mmc->f_min = 400000;
1986 mmc->f_max = 52000000; 2000 mmc->f_max = 52000000;
1987 2001