diff options
author | Ulf Hansson <ulf.hansson@stericsson.com> | 2011-12-13 10:57:55 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-01-19 19:00:56 -0500 |
commit | bc521818e28042bb6018d91c353d24fb01ccb162 (patch) | |
tree | e6ba5c3f5ae30dfb5e227ee92744c7491c8d3135 /drivers | |
parent | 4d1a3a0dc551cfa7304ca46e014231500f3b81a6 (diff) |
ARM: 7219/1: mmc: mmci: Change vdd_handler to a generic ios_handler
The purpose of the vdd_handler does not make sense. We remove it
and use a generic approach instead. A new ios_handler is added, the
purpose of which e.g. can be to control GPIO pins to a levelshifter.
Previously the vdd_handler was also used for making additional
changes to the power register bits. This option is superfluous and is
therefore removed.
Adaptaptions from the old vdd_handler to the new ios_handler is done for
mach-ux500 board, which was the only one using the vdd_handler.
This patch is based upon a patch from Sebastian Rasmussen.
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sebastian Rasmussen <sebastian.rasmussen@stericsson.com>
Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mmc/host/mmci.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index eb11ce61941d..0af1507d15c0 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c | |||
@@ -1026,6 +1026,10 @@ static void mmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
1026 | unsigned long flags; | 1026 | unsigned long flags; |
1027 | int ret; | 1027 | int ret; |
1028 | 1028 | ||
1029 | if (host->plat->ios_handler && | ||
1030 | host->plat->ios_handler(mmc_dev(mmc), ios)) | ||
1031 | dev_err(mmc_dev(mmc), "platform ios_handler failed\n"); | ||
1032 | |||
1029 | switch (ios->power_mode) { | 1033 | switch (ios->power_mode) { |
1030 | case MMC_POWER_OFF: | 1034 | case MMC_POWER_OFF: |
1031 | if (host->vcc) | 1035 | if (host->vcc) |
@@ -1045,10 +1049,6 @@ static void mmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
1045 | return; | 1049 | return; |
1046 | } | 1050 | } |
1047 | } | 1051 | } |
1048 | if (host->plat->vdd_handler) | ||
1049 | pwr |= host->plat->vdd_handler(mmc_dev(mmc), ios->vdd, | ||
1050 | ios->power_mode); | ||
1051 | |||
1052 | /* | 1052 | /* |
1053 | * The ST Micro variant doesn't have the PL180s MCI_PWR_UP | 1053 | * The ST Micro variant doesn't have the PL180s MCI_PWR_UP |
1054 | * and instead uses MCI_PWR_ON so apply whatever value is | 1054 | * and instead uses MCI_PWR_ON so apply whatever value is |