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 /include/linux/amba/mmci.h | |
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 'include/linux/amba/mmci.h')
-rw-r--r-- | include/linux/amba/mmci.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/amba/mmci.h b/include/linux/amba/mmci.h index b51bf5fa85f8..32a89cf5ec45 100644 --- a/include/linux/amba/mmci.h +++ b/include/linux/amba/mmci.h | |||
@@ -31,7 +31,8 @@ struct dma_chan; | |||
31 | * @ocr_mask: available voltages on the 4 pins from the block, this | 31 | * @ocr_mask: available voltages on the 4 pins from the block, this |
32 | * is ignored if a regulator is used, see the MMC_VDD_* masks in | 32 | * is ignored if a regulator is used, see the MMC_VDD_* masks in |
33 | * mmc/host.h | 33 | * mmc/host.h |
34 | * @vdd_handler: a callback function to translate a MMC_VDD_* | 34 | * @ios_handler: a callback function to act on specfic ios changes, |
35 | * used for example to control a levelshifter | ||
35 | * mask into a value to be binary (or set some other custom bits | 36 | * mask into a value to be binary (or set some other custom bits |
36 | * in MMCIPWR) or:ed and written into the MMCIPWR register of the | 37 | * in MMCIPWR) or:ed and written into the MMCIPWR register of the |
37 | * block. May also control external power based on the power_mode. | 38 | * block. May also control external power based on the power_mode. |
@@ -61,8 +62,7 @@ struct dma_chan; | |||
61 | struct mmci_platform_data { | 62 | struct mmci_platform_data { |
62 | unsigned int f_max; | 63 | unsigned int f_max; |
63 | unsigned int ocr_mask; | 64 | unsigned int ocr_mask; |
64 | u32 (*vdd_handler)(struct device *, unsigned int vdd, | 65 | int (*ios_handler)(struct device *, struct mmc_ios *); |
65 | unsigned char power_mode); | ||
66 | unsigned int (*status)(struct device *); | 66 | unsigned int (*status)(struct device *); |
67 | int gpio_wp; | 67 | int gpio_wp; |
68 | int gpio_cd; | 68 | int gpio_cd; |