Stanley.Miao wrote:
Add mmc platform data. Besides, the mmc slot on UI board has a pin conflict
with LCD, so add macros to resolve it.

Signed-off-by: Stanley.Miao <stanley.m...@windriver.com>
---
 arch/arm/mach-omap2/Makefile          |    3 +-
 arch/arm/mach-omap2/board-am3517evm.c |   45 +++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 4b9fc57..e94afdd 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -142,7 +142,8 @@ obj-$(CONFIG_MACH_OMAP3_TOUCHBOOK)  += 
board-omap3touchbook.o \
                                           hsmmc.o
 obj-$(CONFIG_MACH_OMAP_4430SDP)                += board-4430sdp.o
-obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o
+obj-$(CONFIG_MACH_OMAP3517EVM)         += board-am3517evm.o \
+                                          hsmmc.o
# Platform specific device init code
 obj-y                                  += usb-musb.o
diff --git a/arch/arm/mach-omap2/board-am3517evm.c 
b/arch/arm/mach-omap2/board-am3517evm.c
index 6a82ac3..8054994 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -26,6 +26,7 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/nand.h>
+#include <linux/mmc/host.h>
#include <mach/hardware.h>
 #include <mach/am35xx.h>
@@ -40,7 +41,9 @@
 #include <plat/display.h>
 #include <plat/nand.h>
 #include <plat/gpmc.h>
+#include <plat/mmc.h>
+#include "hsmmc.h"
 #include "mux.h"
#define LCD_PANEL_PWR 176
@@ -440,6 +443,8 @@ static int __init am3517_evm_i2c_init(void)
 static int lcd_enabled;
 static int dvi_enabled;
+#if defined(CONFIG_PANEL_SHARP_LQ043T1DG01) || \
+                       defined(CONFIG_PANEL_SHARP_LQ043T1DG01_MODULE)
 static void __init am3517_evm_display_init(void)
 {
        int r;
@@ -501,6 +506,20 @@ static void am3517_evm_panel_disable_lcd(struct 
omap_dss_device *dssdev)
        gpio_set_value(LCD_PANEL_PWR, 0);
        lcd_enabled = 0;
 }
+#else
+static inline void __init am3517_evm_display_init(void)
+{
+}
+
+static inline int am3517_evm_panel_enable_lcd(struct omap_dss_device *dssdev)
+{
+       return 0;
+}
+
+static inline void am3517_evm_panel_disable_lcd(struct omap_dss_device *dssdev)
+{
+}
+#endif
static struct omap_dss_device am3517_evm_lcd_device = {
        .type                   = OMAP_DISPLAY_TYPE_DPI,
@@ -613,6 +632,30 @@ static struct omap_board_mux board_mux[] __initdata = {
 #define board_mux      NULL
 #endif
+static struct omap2_hsmmc_info mmc[] = {
+       {
+               .mmc            = 1,
+               .wires          = 4,
+               .gpio_cd        = 127,
+               .gpio_wp        = 126,
+               .ocr_mask       = MMC_VDD_165_195 |
+                               MMC_VDD_26_27 | MMC_VDD_27_28 |
+                               MMC_VDD_29_30 |
+                               MMC_VDD_30_31 | MMC_VDD_31_32,

How can you support 1.8V and 3V cards without controlling power
to the card?

+       },
+#if !defined(CONFIG_PANEL_SHARP_LQ043T1DG01) && \
+                       !defined(CONFIG_PANEL_SHARP_LQ043T1DG01_MODULE)
+       {
+               .mmc            = 2,
+               .wires          = 4,
+               .gpio_cd        = 175,
+               .gpio_wp        = 176,
+               .ocr_mask       = MMC_VDD_165_195,
+       },
+#endif
+       {}      /* Terminator */
+};
+
 static void __init am3517_evm_init(void)
 {
        omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
@@ -636,6 +679,8 @@ static void __init am3517_evm_init(void)
i2c_register_board_info(1, am3517evm_i2c1_boardinfo,
                                ARRAY_SIZE(am3517evm_i2c1_boardinfo));
+       /* MMC init function */
+       omap2_hsmmc_init(mmc);
 }
static void __init am3517_evm_map_io(void)

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to