diff options
-rw-r--r-- | include/asm-arm/arch-omap/mmc.h | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/include/asm-arm/arch-omap/mmc.h b/include/asm-arm/arch-omap/mmc.h index c9588f49eb52..7cfc5f258560 100644 --- a/include/asm-arm/arch-omap/mmc.h +++ b/include/asm-arm/arch-omap/mmc.h | |||
@@ -15,21 +15,16 @@ | |||
15 | #include <linux/device.h> | 15 | #include <linux/device.h> |
16 | #include <linux/mmc/host.h> | 16 | #include <linux/mmc/host.h> |
17 | 17 | ||
18 | #include <asm/arch/board.h> | ||
19 | |||
18 | #define OMAP_MMC_MAX_SLOTS 2 | 20 | #define OMAP_MMC_MAX_SLOTS 2 |
19 | 21 | ||
20 | struct omap_mmc_platform_data { | 22 | struct omap_mmc_platform_data { |
21 | struct omap_mmc_conf conf; | 23 | struct omap_mmc_conf conf; |
22 | 24 | ||
23 | unsigned enabled:1; | ||
24 | /* number of slots on board */ | 25 | /* number of slots on board */ |
25 | unsigned nr_slots:2; | 26 | unsigned nr_slots:2; |
26 | /* nomux means "standard" muxing is wrong on this board, and that | 27 | |
27 | * board-specific code handled it before common init logic. | ||
28 | */ | ||
29 | unsigned nomux:1; | ||
30 | /* 4 wire signaling is optional, and is only used for SD/SDIO and | ||
31 | * MMCv4 */ | ||
32 | unsigned wire4:1; | ||
33 | /* set if your board has components or wiring that limits the | 28 | /* set if your board has components or wiring that limits the |
34 | * maximum frequency on the MMC bus */ | 29 | * maximum frequency on the MMC bus */ |
35 | unsigned int max_freq; | 30 | unsigned int max_freq; |
@@ -40,6 +35,11 @@ struct omap_mmc_platform_data { | |||
40 | * not supported */ | 35 | * not supported */ |
41 | int (* init)(struct device *dev); | 36 | int (* init)(struct device *dev); |
42 | void (* cleanup)(struct device *dev); | 37 | void (* cleanup)(struct device *dev); |
38 | void (* shutdown)(struct device *dev); | ||
39 | |||
40 | /* To handle board related suspend/resume functionality for MMC */ | ||
41 | int (*suspend)(struct device *dev, int slot); | ||
42 | int (*resume)(struct device *dev, int slot); | ||
43 | 43 | ||
44 | struct omap_mmc_slot_data { | 44 | struct omap_mmc_slot_data { |
45 | int (* set_bus_mode)(struct device *dev, int slot, int bus_mode); | 45 | int (* set_bus_mode)(struct device *dev, int slot, int bus_mode); |
@@ -56,13 +56,19 @@ struct omap_mmc_platform_data { | |||
56 | 56 | ||
57 | const char *name; | 57 | const char *name; |
58 | u32 ocr_mask; | 58 | u32 ocr_mask; |
59 | |||
60 | /* Card detection IRQs */ | ||
61 | int card_detect_irq; | ||
62 | int (* card_detect)(int irq); | ||
63 | |||
64 | unsigned int ban_openended:1; | ||
65 | |||
59 | } slots[OMAP_MMC_MAX_SLOTS]; | 66 | } slots[OMAP_MMC_MAX_SLOTS]; |
60 | }; | 67 | }; |
61 | 68 | ||
62 | extern void omap_set_mmc_info(int host, const struct omap_mmc_platform_data *info); | 69 | extern void omap_set_mmc_info(int host, const struct omap_mmc_platform_data *info); |
63 | 70 | ||
64 | /* called from board-specific card detection service routine */ | 71 | /* called from board-specific card detection service routine */ |
65 | extern void omap_mmc_notify_card_detect(struct device *dev, int slot, int detected); | ||
66 | extern void omap_mmc_notify_cover_event(struct device *dev, int slot, int is_closed); | 72 | extern void omap_mmc_notify_cover_event(struct device *dev, int slot, int is_closed); |
67 | 73 | ||
68 | #endif | 74 | #endif |