|
@@ -324,61 +324,6 @@ static int omap_hsmmc_4_set_power(struct device *dev, int slot, int power_on,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int omap_hsmmc_1_set_sleep(struct device *dev, int slot, int sleep,
|
|
|
- int vdd, int cardsleep)
|
|
|
-{
|
|
|
- struct omap_hsmmc_host *host =
|
|
|
- platform_get_drvdata(to_platform_device(dev));
|
|
|
- int mode = sleep ? REGULATOR_MODE_STANDBY : REGULATOR_MODE_NORMAL;
|
|
|
-
|
|
|
- return regulator_set_mode(host->vcc, mode);
|
|
|
-}
|
|
|
-
|
|
|
-static int omap_hsmmc_235_set_sleep(struct device *dev, int slot, int sleep,
|
|
|
- int vdd, int cardsleep)
|
|
|
-{
|
|
|
- struct omap_hsmmc_host *host =
|
|
|
- platform_get_drvdata(to_platform_device(dev));
|
|
|
- int err, mode;
|
|
|
-
|
|
|
- /*
|
|
|
- * If we don't see a Vcc regulator, assume it's a fixed
|
|
|
- * voltage always-on regulator.
|
|
|
- */
|
|
|
- if (!host->vcc)
|
|
|
- return 0;
|
|
|
-
|
|
|
- mode = sleep ? REGULATOR_MODE_STANDBY : REGULATOR_MODE_NORMAL;
|
|
|
-
|
|
|
- if (!host->vcc_aux)
|
|
|
- return regulator_set_mode(host->vcc, mode);
|
|
|
-
|
|
|
- if (cardsleep) {
|
|
|
- /* VCC can be turned off if card is asleep */
|
|
|
- if (sleep)
|
|
|
- err = mmc_regulator_set_ocr(host->mmc, host->vcc, 0);
|
|
|
- else
|
|
|
- err = mmc_regulator_set_ocr(host->mmc, host->vcc, vdd);
|
|
|
- } else
|
|
|
- err = regulator_set_mode(host->vcc, mode);
|
|
|
- if (err)
|
|
|
- return err;
|
|
|
-
|
|
|
- if (!mmc_slot(host).vcc_aux_disable_is_sleep)
|
|
|
- return regulator_set_mode(host->vcc_aux, mode);
|
|
|
-
|
|
|
- if (sleep)
|
|
|
- return regulator_disable(host->vcc_aux);
|
|
|
- else
|
|
|
- return regulator_enable(host->vcc_aux);
|
|
|
-}
|
|
|
-
|
|
|
-static int omap_hsmmc_4_set_sleep(struct device *dev, int slot, int sleep,
|
|
|
- int vdd, int cardsleep)
|
|
|
-{
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
|
|
|
{
|
|
|
struct regulator *reg;
|
|
@@ -389,18 +334,15 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
|
|
|
case OMAP_MMC1_DEVID:
|
|
|
/* On-chip level shifting via PBIAS0/PBIAS1 */
|
|
|
mmc_slot(host).set_power = omap_hsmmc_1_set_power;
|
|
|
- mmc_slot(host).set_sleep = omap_hsmmc_1_set_sleep;
|
|
|
break;
|
|
|
case OMAP_MMC2_DEVID:
|
|
|
case OMAP_MMC3_DEVID:
|
|
|
case OMAP_MMC5_DEVID:
|
|
|
/* Off-chip level shifting, or none */
|
|
|
mmc_slot(host).set_power = omap_hsmmc_235_set_power;
|
|
|
- mmc_slot(host).set_sleep = omap_hsmmc_235_set_sleep;
|
|
|
break;
|
|
|
case OMAP_MMC4_DEVID:
|
|
|
mmc_slot(host).set_power = omap_hsmmc_4_set_power;
|
|
|
- mmc_slot(host).set_sleep = omap_hsmmc_4_set_sleep;
|
|
|
default:
|
|
|
pr_err("MMC%d configuration not supported!\n", host->id);
|
|
|
return -EINVAL;
|
|
@@ -462,7 +404,6 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
|
|
|
|
|
|
err:
|
|
|
mmc_slot(host).set_power = NULL;
|
|
|
- mmc_slot(host).set_sleep = NULL;
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -471,7 +412,6 @@ static void omap_hsmmc_reg_put(struct omap_hsmmc_host *host)
|
|
|
regulator_put(host->vcc);
|
|
|
regulator_put(host->vcc_aux);
|
|
|
mmc_slot(host).set_power = NULL;
|
|
|
- mmc_slot(host).set_sleep = NULL;
|
|
|
}
|
|
|
|
|
|
static inline int omap_hsmmc_have_reg(void)
|