diff options
-rw-r--r-- | arch/arm/mach-omap2/board-rx51-peripherals.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/hsmmc.c | 21 | ||||
-rw-r--r-- | arch/arm/mach-omap2/hsmmc.h | 2 | ||||
-rw-r--r-- | drivers/mmc/host/omap_hsmmc.c | 65 | ||||
-rw-r--r-- | include/linux/platform_data/hsmmc-omap.h | 14 |
5 files changed, 40 insertions, 64 deletions
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index 0a8ac844b75b..3d5040f82e90 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c | |||
@@ -484,7 +484,7 @@ static struct omap_mux_partition *partition; | |||
484 | * Current flows to eMMC when eMMC is off and the data lines are pulled up, | 484 | * Current flows to eMMC when eMMC is off and the data lines are pulled up, |
485 | * so pull them down. N.B. we pull 8 lines because we are using 8 lines. | 485 | * so pull them down. N.B. we pull 8 lines because we are using 8 lines. |
486 | */ | 486 | */ |
487 | static void rx51_mmc2_remux(struct device *dev, int slot, int power_on) | 487 | static void rx51_mmc2_remux(struct device *dev, int power_on) |
488 | { | 488 | { |
489 | if (power_on) | 489 | if (power_on) |
490 | omap_mux_write_array(partition, rx51_mmc2_on_mux); | 490 | omap_mux_write_array(partition, rx51_mmc2_on_mux); |
diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c index 4e2896ad0119..dc6e79c4484a 100644 --- a/arch/arm/mach-omap2/hsmmc.c +++ b/arch/arm/mach-omap2/hsmmc.c | |||
@@ -33,14 +33,14 @@ static u16 control_devconf1_offset; | |||
33 | 33 | ||
34 | #define HSMMC_NAME_LEN 9 | 34 | #define HSMMC_NAME_LEN 9 |
35 | 35 | ||
36 | static void omap_hsmmc1_before_set_reg(struct device *dev, int slot, | 36 | static void omap_hsmmc1_before_set_reg(struct device *dev, |
37 | int power_on, int vdd) | 37 | int power_on, int vdd) |
38 | { | 38 | { |
39 | u32 reg, prog_io; | 39 | u32 reg, prog_io; |
40 | struct omap_hsmmc_platform_data *mmc = dev->platform_data; | 40 | struct omap_hsmmc_platform_data *mmc = dev->platform_data; |
41 | 41 | ||
42 | if (mmc->remux) | 42 | if (mmc->remux) |
43 | mmc->remux(dev, slot, power_on); | 43 | mmc->remux(dev, power_on); |
44 | 44 | ||
45 | /* | 45 | /* |
46 | * Assume we power both OMAP VMMC1 (for CMD, CLK, DAT0..3) and the | 46 | * Assume we power both OMAP VMMC1 (for CMD, CLK, DAT0..3) and the |
@@ -86,8 +86,7 @@ static void omap_hsmmc1_before_set_reg(struct device *dev, int slot, | |||
86 | } | 86 | } |
87 | } | 87 | } |
88 | 88 | ||
89 | static void omap_hsmmc1_after_set_reg(struct device *dev, int slot, | 89 | static void omap_hsmmc1_after_set_reg(struct device *dev, int power_on, int vdd) |
90 | int power_on, int vdd) | ||
91 | { | 90 | { |
92 | u32 reg; | 91 | u32 reg; |
93 | 92 | ||
@@ -122,20 +121,18 @@ static void hsmmc2_select_input_clk_src(struct omap_hsmmc_platform_data *mmc) | |||
122 | omap_ctrl_writel(reg, control_devconf1_offset); | 121 | omap_ctrl_writel(reg, control_devconf1_offset); |
123 | } | 122 | } |
124 | 123 | ||
125 | static void hsmmc2_before_set_reg(struct device *dev, int slot, | 124 | static void hsmmc2_before_set_reg(struct device *dev, int power_on, int vdd) |
126 | int power_on, int vdd) | ||
127 | { | 125 | { |
128 | struct omap_hsmmc_platform_data *mmc = dev->platform_data; | 126 | struct omap_hsmmc_platform_data *mmc = dev->platform_data; |
129 | 127 | ||
130 | if (mmc->remux) | 128 | if (mmc->remux) |
131 | mmc->remux(dev, slot, power_on); | 129 | mmc->remux(dev, power_on); |
132 | 130 | ||
133 | if (power_on) | 131 | if (power_on) |
134 | hsmmc2_select_input_clk_src(mmc); | 132 | hsmmc2_select_input_clk_src(mmc); |
135 | } | 133 | } |
136 | 134 | ||
137 | static int am35x_hsmmc2_set_power(struct device *dev, int slot, | 135 | static int am35x_hsmmc2_set_power(struct device *dev, int power_on, int vdd) |
138 | int power_on, int vdd) | ||
139 | { | 136 | { |
140 | struct omap_hsmmc_platform_data *mmc = dev->platform_data; | 137 | struct omap_hsmmc_platform_data *mmc = dev->platform_data; |
141 | 138 | ||
@@ -145,8 +142,7 @@ static int am35x_hsmmc2_set_power(struct device *dev, int slot, | |||
145 | return 0; | 142 | return 0; |
146 | } | 143 | } |
147 | 144 | ||
148 | static int nop_mmc_set_power(struct device *dev, int slot, int power_on, | 145 | static int nop_mmc_set_power(struct device *dev, int power_on, int vdd) |
149 | int vdd) | ||
150 | { | 146 | { |
151 | return 0; | 147 | return 0; |
152 | } | 148 | } |
@@ -250,7 +246,6 @@ static int __init omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c, | |||
250 | snprintf(hc_name, (HSMMC_NAME_LEN + 1), "mmc%islot%i", | 246 | snprintf(hc_name, (HSMMC_NAME_LEN + 1), "mmc%islot%i", |
251 | c->mmc, 1); | 247 | c->mmc, 1); |
252 | mmc->name = hc_name; | 248 | mmc->name = hc_name; |
253 | mmc->nr_slots = 1; | ||
254 | mmc->caps = c->caps; | 249 | mmc->caps = c->caps; |
255 | mmc->internal_clock = !c->ext_clock; | 250 | mmc->internal_clock = !c->ext_clock; |
256 | mmc->reg_offset = 0; | 251 | mmc->reg_offset = 0; |
diff --git a/arch/arm/mach-omap2/hsmmc.h b/arch/arm/mach-omap2/hsmmc.h index 30c78c17eb7e..148cd9b15499 100644 --- a/arch/arm/mach-omap2/hsmmc.h +++ b/arch/arm/mach-omap2/hsmmc.h | |||
@@ -23,7 +23,7 @@ struct omap2_hsmmc_info { | |||
23 | struct platform_device *pdev; /* mmc controller instance */ | 23 | struct platform_device *pdev; /* mmc controller instance */ |
24 | int ocr_mask; /* temporary HACK */ | 24 | int ocr_mask; /* temporary HACK */ |
25 | /* Remux (pad configuration) when powering on/off */ | 25 | /* Remux (pad configuration) when powering on/off */ |
26 | void (*remux)(struct device *dev, int slot, int power_on); | 26 | void (*remux)(struct device *dev, int power_on); |
27 | /* init some special card */ | 27 | /* init some special card */ |
28 | void (*init_card)(struct mmc_card *card); | 28 | void (*init_card)(struct mmc_card *card); |
29 | }; | 29 | }; |
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index f4f1bcd632f3..82b40b85293f 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c | |||
@@ -207,7 +207,6 @@ struct omap_hsmmc_host { | |||
207 | int use_dma, dma_ch; | 207 | int use_dma, dma_ch; |
208 | struct dma_chan *tx_chan; | 208 | struct dma_chan *tx_chan; |
209 | struct dma_chan *rx_chan; | 209 | struct dma_chan *rx_chan; |
210 | int slot_id; | ||
211 | int response_busy; | 210 | int response_busy; |
212 | int context_loss; | 211 | int context_loss; |
213 | int protect_card; | 212 | int protect_card; |
@@ -223,8 +222,8 @@ struct omap_hsmmc_host { | |||
223 | struct omap_hsmmc_platform_data *pdata; | 222 | struct omap_hsmmc_platform_data *pdata; |
224 | 223 | ||
225 | /* To handle board related suspend/resume functionality for MMC */ | 224 | /* To handle board related suspend/resume functionality for MMC */ |
226 | int (*suspend)(struct device *dev, int slot); | 225 | int (*suspend)(struct device *dev); |
227 | int (*resume)(struct device *dev, int slot); | 226 | int (*resume)(struct device *dev); |
228 | 227 | ||
229 | /* return MMC cover switch state, can be NULL if not supported. | 228 | /* return MMC cover switch state, can be NULL if not supported. |
230 | * | 229 | * |
@@ -232,13 +231,13 @@ struct omap_hsmmc_host { | |||
232 | * 0 - closed | 231 | * 0 - closed |
233 | * 1 - open | 232 | * 1 - open |
234 | */ | 233 | */ |
235 | int (*get_cover_state)(struct device *dev, int slot); | 234 | int (*get_cover_state)(struct device *dev); |
236 | 235 | ||
237 | /* Card detection IRQs */ | 236 | /* Card detection IRQs */ |
238 | int card_detect_irq; | 237 | int card_detect_irq; |
239 | 238 | ||
240 | int (*card_detect)(struct device *dev, int slot); | 239 | int (*card_detect)(struct device *dev); |
241 | int (*get_ro)(struct device *dev, int slot); | 240 | int (*get_ro)(struct device *dev); |
242 | 241 | ||
243 | }; | 242 | }; |
244 | 243 | ||
@@ -249,7 +248,7 @@ struct omap_mmc_of_data { | |||
249 | 248 | ||
250 | static void omap_hsmmc_start_dma_transfer(struct omap_hsmmc_host *host); | 249 | static void omap_hsmmc_start_dma_transfer(struct omap_hsmmc_host *host); |
251 | 250 | ||
252 | static int omap_hsmmc_card_detect(struct device *dev, int slot) | 251 | static int omap_hsmmc_card_detect(struct device *dev) |
253 | { | 252 | { |
254 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); | 253 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); |
255 | struct omap_hsmmc_platform_data *mmc = host->pdata; | 254 | struct omap_hsmmc_platform_data *mmc = host->pdata; |
@@ -258,7 +257,7 @@ static int omap_hsmmc_card_detect(struct device *dev, int slot) | |||
258 | return !gpio_get_value_cansleep(mmc->switch_pin); | 257 | return !gpio_get_value_cansleep(mmc->switch_pin); |
259 | } | 258 | } |
260 | 259 | ||
261 | static int omap_hsmmc_get_wp(struct device *dev, int slot) | 260 | static int omap_hsmmc_get_wp(struct device *dev) |
262 | { | 261 | { |
263 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); | 262 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); |
264 | struct omap_hsmmc_platform_data *mmc = host->pdata; | 263 | struct omap_hsmmc_platform_data *mmc = host->pdata; |
@@ -267,7 +266,7 @@ static int omap_hsmmc_get_wp(struct device *dev, int slot) | |||
267 | return gpio_get_value_cansleep(mmc->gpio_wp); | 266 | return gpio_get_value_cansleep(mmc->gpio_wp); |
268 | } | 267 | } |
269 | 268 | ||
270 | static int omap_hsmmc_get_cover_state(struct device *dev, int slot) | 269 | static int omap_hsmmc_get_cover_state(struct device *dev) |
271 | { | 270 | { |
272 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); | 271 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); |
273 | struct omap_hsmmc_platform_data *mmc = host->pdata; | 272 | struct omap_hsmmc_platform_data *mmc = host->pdata; |
@@ -278,7 +277,7 @@ static int omap_hsmmc_get_cover_state(struct device *dev, int slot) | |||
278 | 277 | ||
279 | #ifdef CONFIG_PM | 278 | #ifdef CONFIG_PM |
280 | 279 | ||
281 | static int omap_hsmmc_suspend_cdirq(struct device *dev, int slot) | 280 | static int omap_hsmmc_suspend_cdirq(struct device *dev) |
282 | { | 281 | { |
283 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); | 282 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); |
284 | 283 | ||
@@ -286,7 +285,7 @@ static int omap_hsmmc_suspend_cdirq(struct device *dev, int slot) | |||
286 | return 0; | 285 | return 0; |
287 | } | 286 | } |
288 | 287 | ||
289 | static int omap_hsmmc_resume_cdirq(struct device *dev, int slot) | 288 | static int omap_hsmmc_resume_cdirq(struct device *dev) |
290 | { | 289 | { |
291 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); | 290 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); |
292 | 291 | ||
@@ -303,8 +302,7 @@ static int omap_hsmmc_resume_cdirq(struct device *dev, int slot) | |||
303 | 302 | ||
304 | #ifdef CONFIG_REGULATOR | 303 | #ifdef CONFIG_REGULATOR |
305 | 304 | ||
306 | static int omap_hsmmc_set_power(struct device *dev, int slot, int power_on, | 305 | static int omap_hsmmc_set_power(struct device *dev, int power_on, int vdd) |
307 | int vdd) | ||
308 | { | 306 | { |
309 | struct omap_hsmmc_host *host = | 307 | struct omap_hsmmc_host *host = |
310 | platform_get_drvdata(to_platform_device(dev)); | 308 | platform_get_drvdata(to_platform_device(dev)); |
@@ -318,7 +316,7 @@ static int omap_hsmmc_set_power(struct device *dev, int slot, int power_on, | |||
318 | return 0; | 316 | return 0; |
319 | 317 | ||
320 | if (mmc_pdata(host)->before_set_reg) | 318 | if (mmc_pdata(host)->before_set_reg) |
321 | mmc_pdata(host)->before_set_reg(dev, slot, power_on, vdd); | 319 | mmc_pdata(host)->before_set_reg(dev, power_on, vdd); |
322 | 320 | ||
323 | if (host->pbias) { | 321 | if (host->pbias) { |
324 | if (host->pbias_enabled == 1) { | 322 | if (host->pbias_enabled == 1) { |
@@ -381,7 +379,7 @@ static int omap_hsmmc_set_power(struct device *dev, int slot, int power_on, | |||
381 | } | 379 | } |
382 | 380 | ||
383 | if (mmc_pdata(host)->after_set_reg) | 381 | if (mmc_pdata(host)->after_set_reg) |
384 | mmc_pdata(host)->after_set_reg(dev, slot, power_on, vdd); | 382 | mmc_pdata(host)->after_set_reg(dev, power_on, vdd); |
385 | 383 | ||
386 | error_set_power: | 384 | error_set_power: |
387 | return ret; | 385 | return ret; |
@@ -431,8 +429,8 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host) | |||
431 | (host->vcc_aux && regulator_is_enabled(host->vcc_aux))) { | 429 | (host->vcc_aux && regulator_is_enabled(host->vcc_aux))) { |
432 | int vdd = ffs(mmc_pdata(host)->ocr_mask) - 1; | 430 | int vdd = ffs(mmc_pdata(host)->ocr_mask) - 1; |
433 | 431 | ||
434 | mmc_pdata(host)->set_power(host->dev, host->slot_id, 1, vdd); | 432 | mmc_pdata(host)->set_power(host->dev, 1, vdd); |
435 | mmc_pdata(host)->set_power(host->dev, host->slot_id, 0, 0); | 433 | mmc_pdata(host)->set_power(host->dev, 0, 0); |
436 | } | 434 | } |
437 | 435 | ||
438 | return 0; | 436 | return 0; |
@@ -813,7 +811,7 @@ int omap_hsmmc_cover_is_closed(struct omap_hsmmc_host *host) | |||
813 | int r = 1; | 811 | int r = 1; |
814 | 812 | ||
815 | if (host->get_cover_state) | 813 | if (host->get_cover_state) |
816 | r = host->get_cover_state(host->dev, host->slot_id); | 814 | r = host->get_cover_state(host->dev); |
817 | return r; | 815 | return r; |
818 | } | 816 | } |
819 | 817 | ||
@@ -1231,12 +1229,11 @@ static int omap_hsmmc_switch_opcond(struct omap_hsmmc_host *host, int vdd) | |||
1231 | clk_disable_unprepare(host->dbclk); | 1229 | clk_disable_unprepare(host->dbclk); |
1232 | 1230 | ||
1233 | /* Turn the power off */ | 1231 | /* Turn the power off */ |
1234 | ret = mmc_pdata(host)->set_power(host->dev, host->slot_id, 0, 0); | 1232 | ret = mmc_pdata(host)->set_power(host->dev, 0, 0); |
1235 | 1233 | ||
1236 | /* Turn the power ON with given VDD 1.8 or 3.0v */ | 1234 | /* Turn the power ON with given VDD 1.8 or 3.0v */ |
1237 | if (!ret) | 1235 | if (!ret) |
1238 | ret = mmc_pdata(host)->set_power(host->dev, host->slot_id, 1, | 1236 | ret = mmc_pdata(host)->set_power(host->dev, 1, vdd); |
1239 | vdd); | ||
1240 | pm_runtime_get_sync(host->dev); | 1237 | pm_runtime_get_sync(host->dev); |
1241 | if (host->dbclk) | 1238 | if (host->dbclk) |
1242 | clk_prepare_enable(host->dbclk); | 1239 | clk_prepare_enable(host->dbclk); |
@@ -1284,7 +1281,7 @@ static void omap_hsmmc_protect_card(struct omap_hsmmc_host *host) | |||
1284 | return; | 1281 | return; |
1285 | 1282 | ||
1286 | host->reqs_blocked = 0; | 1283 | host->reqs_blocked = 0; |
1287 | if (host->get_cover_state(host->dev, host->slot_id)) { | 1284 | if (host->get_cover_state(host->dev)) { |
1288 | if (host->protect_card) { | 1285 | if (host->protect_card) { |
1289 | dev_info(host->dev, "%s: cover is closed, " | 1286 | dev_info(host->dev, "%s: cover is closed, " |
1290 | "card is now accessible\n", | 1287 | "card is now accessible\n", |
@@ -1312,7 +1309,7 @@ static irqreturn_t omap_hsmmc_detect(int irq, void *dev_id) | |||
1312 | sysfs_notify(&host->mmc->class_dev.kobj, NULL, "cover_switch"); | 1309 | sysfs_notify(&host->mmc->class_dev.kobj, NULL, "cover_switch"); |
1313 | 1310 | ||
1314 | if (host->card_detect) | 1311 | if (host->card_detect) |
1315 | carddetect = host->card_detect(host->dev, host->slot_id); | 1312 | carddetect = host->card_detect(host->dev); |
1316 | else { | 1313 | else { |
1317 | omap_hsmmc_protect_card(host); | 1314 | omap_hsmmc_protect_card(host); |
1318 | carddetect = -ENOSYS; | 1315 | carddetect = -ENOSYS; |
@@ -1638,12 +1635,10 @@ static void omap_hsmmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
1638 | if (ios->power_mode != host->power_mode) { | 1635 | if (ios->power_mode != host->power_mode) { |
1639 | switch (ios->power_mode) { | 1636 | switch (ios->power_mode) { |
1640 | case MMC_POWER_OFF: | 1637 | case MMC_POWER_OFF: |
1641 | mmc_pdata(host)->set_power(host->dev, host->slot_id, | 1638 | mmc_pdata(host)->set_power(host->dev, 0, 0); |
1642 | 0, 0); | ||
1643 | break; | 1639 | break; |
1644 | case MMC_POWER_UP: | 1640 | case MMC_POWER_UP: |
1645 | mmc_pdata(host)->set_power(host->dev, host->slot_id, | 1641 | mmc_pdata(host)->set_power(host->dev, 1, ios->vdd); |
1646 | 1, ios->vdd); | ||
1647 | break; | 1642 | break; |
1648 | case MMC_POWER_ON: | 1643 | case MMC_POWER_ON: |
1649 | do_send_init_stream = 1; | 1644 | do_send_init_stream = 1; |
@@ -1690,7 +1685,7 @@ static int omap_hsmmc_get_cd(struct mmc_host *mmc) | |||
1690 | 1685 | ||
1691 | if (!host->card_detect) | 1686 | if (!host->card_detect) |
1692 | return -ENOSYS; | 1687 | return -ENOSYS; |
1693 | return host->card_detect(host->dev, host->slot_id); | 1688 | return host->card_detect(host->dev); |
1694 | } | 1689 | } |
1695 | 1690 | ||
1696 | static int omap_hsmmc_get_ro(struct mmc_host *mmc) | 1691 | static int omap_hsmmc_get_ro(struct mmc_host *mmc) |
@@ -1699,7 +1694,7 @@ static int omap_hsmmc_get_ro(struct mmc_host *mmc) | |||
1699 | 1694 | ||
1700 | if (!host->get_ro) | 1695 | if (!host->get_ro) |
1701 | return -ENOSYS; | 1696 | return -ENOSYS; |
1702 | return host->get_ro(host->dev, 0); | 1697 | return host->get_ro(host->dev); |
1703 | } | 1698 | } |
1704 | 1699 | ||
1705 | static void omap_hsmmc_init_card(struct mmc_host *mmc, struct mmc_card *card) | 1700 | static void omap_hsmmc_init_card(struct mmc_host *mmc, struct mmc_card *card) |
@@ -1996,8 +1991,6 @@ static struct omap_hsmmc_platform_data *of_get_hsmmc_pdata(struct device *dev) | |||
1996 | if (of_find_property(np, "ti,dual-volt", NULL)) | 1991 | if (of_find_property(np, "ti,dual-volt", NULL)) |
1997 | pdata->controller_flags |= OMAP_HSMMC_SUPPORTS_DUAL_VOLT; | 1992 | pdata->controller_flags |= OMAP_HSMMC_SUPPORTS_DUAL_VOLT; |
1998 | 1993 | ||
1999 | /* This driver only supports 1 slot */ | ||
2000 | pdata->nr_slots = 1; | ||
2001 | pdata->switch_pin = cd_gpio; | 1994 | pdata->switch_pin = cd_gpio; |
2002 | pdata->gpio_wp = wp_gpio; | 1995 | pdata->gpio_wp = wp_gpio; |
2003 | 1996 | ||
@@ -2068,11 +2061,6 @@ static int omap_hsmmc_probe(struct platform_device *pdev) | |||
2068 | return -ENXIO; | 2061 | return -ENXIO; |
2069 | } | 2062 | } |
2070 | 2063 | ||
2071 | if (pdata->nr_slots == 0) { | ||
2072 | dev_err(&pdev->dev, "No Slots\n"); | ||
2073 | return -ENXIO; | ||
2074 | } | ||
2075 | |||
2076 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 2064 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
2077 | irq = platform_get_irq(pdev, 0); | 2065 | irq = platform_get_irq(pdev, 0); |
2078 | if (res == NULL || irq < 0) | 2066 | if (res == NULL || irq < 0) |
@@ -2095,7 +2083,6 @@ static int omap_hsmmc_probe(struct platform_device *pdev) | |||
2095 | host->use_dma = 1; | 2083 | host->use_dma = 1; |
2096 | host->dma_ch = -1; | 2084 | host->dma_ch = -1; |
2097 | host->irq = irq; | 2085 | host->irq = irq; |
2098 | host->slot_id = 0; | ||
2099 | host->mapbase = res->start + pdata->reg_offset; | 2086 | host->mapbase = res->start + pdata->reg_offset; |
2100 | host->base = base + pdata->reg_offset; | 2087 | host->base = base + pdata->reg_offset; |
2101 | host->power_mode = MMC_POWER_OFF; | 2088 | host->power_mode = MMC_POWER_OFF; |
@@ -2338,7 +2325,7 @@ static int omap_hsmmc_prepare(struct device *dev) | |||
2338 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); | 2325 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); |
2339 | 2326 | ||
2340 | if (host->suspend) | 2327 | if (host->suspend) |
2341 | return host->suspend(dev, host->slot_id); | 2328 | return host->suspend(dev); |
2342 | 2329 | ||
2343 | return 0; | 2330 | return 0; |
2344 | } | 2331 | } |
@@ -2348,7 +2335,7 @@ static void omap_hsmmc_complete(struct device *dev) | |||
2348 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); | 2335 | struct omap_hsmmc_host *host = dev_get_drvdata(dev); |
2349 | 2336 | ||
2350 | if (host->resume) | 2337 | if (host->resume) |
2351 | host->resume(dev, host->slot_id); | 2338 | host->resume(dev); |
2352 | 2339 | ||
2353 | } | 2340 | } |
2354 | 2341 | ||
diff --git a/include/linux/platform_data/hsmmc-omap.h b/include/linux/platform_data/hsmmc-omap.h index 68ffec14b56a..67bbcf0785f6 100644 --- a/include/linux/platform_data/hsmmc-omap.h +++ b/include/linux/platform_data/hsmmc-omap.h | |||
@@ -38,9 +38,6 @@ struct omap_hsmmc_platform_data { | |||
38 | /* back-link to device */ | 38 | /* back-link to device */ |
39 | struct device *dev; | 39 | struct device *dev; |
40 | 40 | ||
41 | /* number of slots per controller */ | ||
42 | unsigned nr_slots:2; | ||
43 | |||
44 | /* set if your board has components or wiring that limits the | 41 | /* set if your board has components or wiring that limits the |
45 | * maximum frequency on the MMC bus */ | 42 | * maximum frequency on the MMC bus */ |
46 | unsigned int max_freq; | 43 | unsigned int max_freq; |
@@ -79,15 +76,12 @@ struct omap_hsmmc_platform_data { | |||
79 | int switch_pin; /* gpio (card detect) */ | 76 | int switch_pin; /* gpio (card detect) */ |
80 | int gpio_wp; /* gpio (write protect) */ | 77 | int gpio_wp; /* gpio (write protect) */ |
81 | 78 | ||
82 | int (*set_power)(struct device *dev, int slot, | 79 | int (*set_power)(struct device *dev, int power_on, int vdd); |
83 | int power_on, int vdd); | 80 | void (*remux)(struct device *dev, int power_on); |
84 | void (*remux)(struct device *dev, int slot, int power_on); | ||
85 | /* Call back before enabling / disabling regulators */ | 81 | /* Call back before enabling / disabling regulators */ |
86 | void (*before_set_reg)(struct device *dev, int slot, | 82 | void (*before_set_reg)(struct device *dev, int power_on, int vdd); |
87 | int power_on, int vdd); | ||
88 | /* Call back after enabling / disabling regulators */ | 83 | /* Call back after enabling / disabling regulators */ |
89 | void (*after_set_reg)(struct device *dev, int slot, | 84 | void (*after_set_reg)(struct device *dev, int power_on, int vdd); |
90 | int power_on, int vdd); | ||
91 | /* if we have special card, init it using this callback */ | 85 | /* if we have special card, init it using this callback */ |
92 | void (*init_card)(struct mmc_card *card); | 86 | void (*init_card)(struct mmc_card *card); |
93 | 87 | ||