aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ux500/board-mop500-sdi.c
diff options
context:
space:
mode:
authorLee Jones <lee.jones@linaro.org>2012-12-07 09:00:51 -0500
committerLinus Walleij <linus.walleij@linaro.org>2013-03-01 17:30:20 -0500
commitfcab564e2fd3c9048e457fb699c253db9a169c67 (patch)
treef0682dfed5d1ad3640824d060f844d000d0292bf /arch/arm/mach-ux500/board-mop500-sdi.c
parentcd2fa6d6035adb92b49ef04cbd1950c59f592cf6 (diff)
ARM: ux500: Remove traces of the ios_handler from platform code
Now MMCI on/off functionality is using the regulator framework from the MMCI driver, there is no need to keep the ios_handler laying around, duplicating functionality. So we're removing it. Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'arch/arm/mach-ux500/board-mop500-sdi.c')
-rw-r--r--arch/arm/mach-ux500/board-mop500-sdi.c52
1 files changed, 0 insertions, 52 deletions
diff --git a/arch/arm/mach-ux500/board-mop500-sdi.c b/arch/arm/mach-ux500/board-mop500-sdi.c
index 051b62c27102..6db0740128de 100644
--- a/arch/arm/mach-ux500/board-mop500-sdi.c
+++ b/arch/arm/mach-ux500/board-mop500-sdi.c
@@ -31,35 +31,6 @@
31 * SDI 0 (MicroSD slot) 31 * SDI 0 (MicroSD slot)
32 */ 32 */
33 33
34/* GPIO pins used by the sdi0 level shifter */
35static int sdi0_en = -1;
36static int sdi0_vsel = -1;
37
38static int mop500_sdi0_ios_handler(struct device *dev, struct mmc_ios *ios)
39{
40 switch (ios->power_mode) {
41 case MMC_POWER_UP:
42 case MMC_POWER_ON:
43 /*
44 * Level shifter voltage should depend on vdd to when deciding
45 * on either 1.8V or 2.9V. Once the decision has been made the
46 * level shifter must be disabled and re-enabled with a changed
47 * select signal in order to switch the voltage. Since there is
48 * no framework support yet for indicating 1.8V in vdd, use the
49 * default 2.9V.
50 */
51 gpio_direction_output(sdi0_vsel, 0);
52 gpio_direction_output(sdi0_en, 1);
53 break;
54 case MMC_POWER_OFF:
55 gpio_direction_output(sdi0_vsel, 0);
56 gpio_direction_output(sdi0_en, 0);
57 break;
58 }
59
60 return 0;
61}
62
63#ifdef CONFIG_STE_DMA40 34#ifdef CONFIG_STE_DMA40
64struct stedma40_chan_cfg mop500_sdi0_dma_cfg_rx = { 35struct stedma40_chan_cfg mop500_sdi0_dma_cfg_rx = {
65 .mode = STEDMA40_MODE_LOGICAL, 36 .mode = STEDMA40_MODE_LOGICAL,
@@ -81,7 +52,6 @@ static struct stedma40_chan_cfg mop500_sdi0_dma_cfg_tx = {
81#endif 52#endif
82 53
83struct mmci_platform_data mop500_sdi0_data = { 54struct mmci_platform_data mop500_sdi0_data = {
84 .ios_handler = mop500_sdi0_ios_handler,
85 .ocr_mask = MMC_VDD_29_30, 55 .ocr_mask = MMC_VDD_29_30,
86 .f_max = 50000000, 56 .f_max = 50000000,
87 .capabilities = MMC_CAP_4_BIT_DATA | 57 .capabilities = MMC_CAP_4_BIT_DATA |
@@ -101,22 +71,6 @@ struct mmci_platform_data mop500_sdi0_data = {
101 71
102static void sdi0_configure(struct device *parent) 72static void sdi0_configure(struct device *parent)
103{ 73{
104 int ret;
105
106 ret = gpio_request(sdi0_en, "level shifter enable");
107 if (!ret)
108 ret = gpio_request(sdi0_vsel,
109 "level shifter 1v8-3v select");
110
111 if (ret) {
112 pr_warning("unable to config sdi0 gpios for level shifter.\n");
113 return;
114 }
115
116 /* Select the default 2.9V and enable level shifter */
117 gpio_direction_output(sdi0_vsel, 0);
118 gpio_direction_output(sdi0_en, 1);
119
120 /* Add the device, force v2 to subrevision 1 */ 74 /* Add the device, force v2 to subrevision 1 */
121 db8500_add_sdi0(parent, &mop500_sdi0_data, U8500_SDI_V2_PERIPHID); 75 db8500_add_sdi0(parent, &mop500_sdi0_data, U8500_SDI_V2_PERIPHID);
122} 76}
@@ -124,8 +78,6 @@ static void sdi0_configure(struct device *parent)
124void mop500_sdi_tc35892_init(struct device *parent) 78void mop500_sdi_tc35892_init(struct device *parent)
125{ 79{
126 mop500_sdi0_data.gpio_cd = GPIO_SDMMC_CD; 80 mop500_sdi0_data.gpio_cd = GPIO_SDMMC_CD;
127 sdi0_en = GPIO_SDMMC_EN;
128 sdi0_vsel = GPIO_SDMMC_1V8_3V_SEL;
129 sdi0_configure(parent); 81 sdi0_configure(parent);
130} 82}
131 83
@@ -264,8 +216,6 @@ void __init snowball_sdi_init(struct device *parent)
264 /* External Micro SD slot */ 216 /* External Micro SD slot */
265 mop500_sdi0_data.gpio_cd = SNOWBALL_SDMMC_CD_GPIO; 217 mop500_sdi0_data.gpio_cd = SNOWBALL_SDMMC_CD_GPIO;
266 mop500_sdi0_data.cd_invert = true; 218 mop500_sdi0_data.cd_invert = true;
267 sdi0_en = SNOWBALL_SDMMC_EN_GPIO;
268 sdi0_vsel = SNOWBALL_SDMMC_1V8_3V_GPIO;
269 sdi0_configure(parent); 219 sdi0_configure(parent);
270} 220}
271 221
@@ -277,8 +227,6 @@ void __init hrefv60_sdi_init(struct device *parent)
277 db8500_add_sdi4(parent, &mop500_sdi4_data, U8500_SDI_V2_PERIPHID); 227 db8500_add_sdi4(parent, &mop500_sdi4_data, U8500_SDI_V2_PERIPHID);
278 /* External Micro SD slot */ 228 /* External Micro SD slot */
279 mop500_sdi0_data.gpio_cd = HREFV60_SDMMC_CD_GPIO; 229 mop500_sdi0_data.gpio_cd = HREFV60_SDMMC_CD_GPIO;
280 sdi0_en = HREFV60_SDMMC_EN_GPIO;
281 sdi0_vsel = HREFV60_SDMMC_1V8_3V_GPIO;
282 sdi0_configure(parent); 230 sdi0_configure(parent);
283 /* WLAN SDIO channel */ 231 /* WLAN SDIO channel */
284 db8500_add_sdi1(parent, &mop500_sdi1_data, U8500_SDI_V2_PERIPHID); 232 db8500_add_sdi1(parent, &mop500_sdi1_data, U8500_SDI_V2_PERIPHID);