]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
MMC: OMAP: Make board-sx1.c uses new board-sx1-mmc.c code
authorCarlos Eduardo Aguiar <carlos.aguiar@indt.org.br>
Thu, 29 Nov 2007 17:52:57 +0000 (13:52 -0400)
committerTony Lindgren <tony@atomide.com>
Sat, 1 Dec 2007 00:08:46 +0000 (16:08 -0800)
Make board-sx1.c file uses new board-sx1-mmc.c code.

This patch also:
- Introduces a new gpio_switch to get events when inserting and removing
  MMC/SD/SDIO cards to/from the slot.
- Enables the GPIO switch support option on sx1_defconfig to use
  multislot support:

Signed-off-by: Carlos Eduardo Aguiar <carlos.aguiar@indt.org.br>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/configs/sx1_defconfig
arch/arm/mach-omap1/Makefile
arch/arm/mach-omap1/board-sx1.c

index 808dd9920bab74fde4c49e4e5f22b0b67b0dd853..853dcdd9f2e0ac23ba812ed29376ff32f7483bc7 100644 (file)
@@ -159,7 +159,7 @@ CONFIG_ARCH_OMAP1=y
 CONFIG_OMAP_BOOT_TAG=y
 # CONFIG_OMAP_BOOT_REASON is not set
 # CONFIG_OMAP_COMPONENT_VERSION is not set
-# CONFIG_OMAP_GPIO_SWITCH is not set
+CONFIG_OMAP_GPIO_SWITCH=y
 CONFIG_OMAP_MUX=y
 # CONFIG_OMAP_MUX_DEBUG is not set
 CONFIG_OMAP_MUX_WARNINGS=y
index a8d95a1bf3d7077784b929d21da1c24973c650fb..6ebf23b57adee62cef2f09853acca6c8d8e1a0ac 100644 (file)
@@ -33,7 +33,7 @@ obj-$(CONFIG_MACH_OMAP_PALMZ71)               += board-palmz71.o
 obj-$(CONFIG_MACH_OMAP_PALMTT)         += board-palmtt.o
 obj-$(CONFIG_MACH_NOKIA770)            += board-nokia770.o
 obj-$(CONFIG_MACH_AMS_DELTA)           += board-ams-delta.o
-obj-$(CONFIG_MACH_SX1)                 += board-sx1.o
+obj-$(CONFIG_MACH_SX1)                 += board-sx1.o board-sx1-mmc.o
 
 ifeq ($(CONFIG_ARCH_OMAP15XX),y)
 # Innovator-1510 FPGA
index b4ca20bb08dfd94d933f68c6a33b973fa65e7358..4f7d7916251dc808b4b7a6a7fc38cbb7c19aaff3 100644 (file)
@@ -33,6 +33,7 @@
 #include <asm/mach/map.h>
 
 #include <asm/arch/gpio.h>
+#include <asm/arch/gpio-switch.h>
 #include <asm/arch/mux.h>
 #include <asm/arch/irda.h>
 #include <asm/arch/usb.h>
@@ -378,11 +379,8 @@ static struct omap_usb_config sx1_usb_config __initdata = {
 
 static struct omap_mmc_config sx1_mmc_config __initdata = {
        .mmc [0] = {
-               .enabled        = 1,
+               .enabled        = 1,
                .wire4          = 0,
-               .wp_pin         = -1,
-               .power_pin      = -1, /* power is in Sofia */
-               .switch_pin     = OMAP_MPUIO(3),
        },
 };
 
@@ -417,6 +415,19 @@ static struct omap_board_config_kernel sx1_config[] __initdata = {
        { OMAP_TAG_LCD, &sx1_lcd_config },
        { OMAP_TAG_UART,        &sx1_uart_config },
 };
+
+static struct omap_gpio_switch sx1_gpio_switches[] __initdata = {
+       {
+               .name                   = "mmc_slot",
+               .gpio                   = OMAP_MPUIO(3),
+               .type                   = OMAP_GPIO_SWITCH_TYPE_COVER,
+               .debounce_rising        = 100,
+               .debounce_falling       = 0,
+               .notify                 = sx1_mmc_slot_cover_handler,
+               .notify_data            = NULL,
+       },
+};
+
 /*-----------------------------------------*/
 
 extern void __init sx1_mmc_init(void);
@@ -429,6 +440,9 @@ static void __init omap_sx1_init(void)
        omap_board_config_size = ARRAY_SIZE(sx1_config);
        omap_serial_init();
        omap_register_i2c_bus(1, 100, NULL, 0);
+       sx1_mmc_init();
+       omap_register_gpio_switches(sx1_gpio_switches,
+                                   ARRAY_SIZE(sx1_gpio_switches));
 
        /* turn on USB power */
        /* sx1_setusbpower(1); cant do it here because i2c is not ready */