From: Carlos Eduardo Aguiar Date: Thu, 29 Nov 2007 17:52:57 +0000 (-0400) Subject: MMC: OMAP: Make board-sx1.c uses new board-sx1-mmc.c code X-Git-Tag: v2.6.24-omap1~133 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=793fdd0dfecc5471d62b76cb4209e73a9d288de5;p=linux-2.6-omap-h63xx.git MMC: OMAP: Make board-sx1.c uses new board-sx1-mmc.c code 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 Signed-off-by: Tony Lindgren --- diff --git a/arch/arm/configs/sx1_defconfig b/arch/arm/configs/sx1_defconfig index 808dd9920ba..853dcdd9f2e 100644 --- a/arch/arm/configs/sx1_defconfig +++ b/arch/arm/configs/sx1_defconfig @@ -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 diff --git a/arch/arm/mach-omap1/Makefile b/arch/arm/mach-omap1/Makefile index a8d95a1bf3d..6ebf23b57ad 100644 --- a/arch/arm/mach-omap1/Makefile +++ b/arch/arm/mach-omap1/Makefile @@ -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 diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-omap1/board-sx1.c index b4ca20bb08d..4f7d7916251 100644 --- a/arch/arm/mach-omap1/board-sx1.c +++ b/arch/arm/mach-omap1/board-sx1.c @@ -33,6 +33,7 @@ #include #include +#include #include #include #include @@ -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 */