]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/mach-omap2/board-2430sdp.c
ARM: OMAP: Fix gpio by switching to generic gpio calls
[linux-2.6-omap-h63xx.git] / arch / arm / mach-omap2 / board-2430sdp.c
index e3a3131e698109b46b60e3120e444fd0f151fa0f..5d2933d7a75dcceeb7d8a8367837d698a196ddd8 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/i2c/twl4030.h>
 #include <linux/err.h>
 #include <linux/clk.h>
+#include <linux/io.h>
 #include <linux/spi/spi.h>
 #include <linux/spi/ads7846.h>
 
 #include <mach/mux.h>
 #include <mach/board.h>
 #include <mach/usb-musb.h>
-#include <mach/mmc.h>
 #include <mach/common.h>
 #include <mach/keypad.h>
 #include <mach/gpmc.h>
 #include <mach/mcspi.h>
 
-#include <asm/io.h>
+
+#include "mmc-twl4030.h"
+
 
 #define        SDP2430_FLASH_CS        0
 #define        SDP2430_SMC91X_CS       5
@@ -179,7 +181,6 @@ static struct twl4030_keypad_data sdp2430_kp_data = {
        .keymap         = sdp2430_keymap,
        .keymapsize     = ARRAY_SIZE(sdp2430_keymap),
        .rep            = 1,
-       .irq            = TWL4030_MODIRQ_KEYPAD,
 };
 
 static int __init msecure_init(void)
@@ -213,10 +214,10 @@ static struct platform_device *sdp2430_devices[] __initdata = {
 
 static void ads7846_dev_init(void)
 {
-       if (omap_request_gpio(TS_GPIO) < 0)
+       if (gpio_request(TS_GPIO, "ads7846 irq") < 0)
                printk(KERN_ERR "can't get ads746 pen down GPIO\n");
 
-       omap_set_gpio_direction(TS_GPIO, 1);
+       gpio_direction_input(TS_GPIO);
 
        omap_set_gpio_debounce(TS_GPIO, 1);
        omap_set_gpio_debounce_time(TS_GPIO, 0xa);
@@ -224,7 +225,7 @@ static void ads7846_dev_init(void)
 
 static int ads7846_get_pendown_state(void)
 {
-       return !omap_get_gpio_datain(TS_GPIO);
+       return !gpio_get_value(TS_GPIO);
 }
 
 static struct ads7846_platform_data tsc2046_config __initdata = {
@@ -307,13 +308,13 @@ static inline void __init sdp2430_init_smc91x(void)
        sdp2430_smc91x_resources[0].end = cs_mem_base + 0x30f;
        udelay(100);
 
-       if (omap_request_gpio(OMAP24XX_ETHR_GPIO_IRQ) < 0) {
+       if (gpio_request(OMAP24XX_ETHR_GPIO_IRQ, "SMC91x irq") < 0) {
                printk(KERN_ERR "Failed to request GPIO%d for smc91x IRQ\n",
                        OMAP24XX_ETHR_GPIO_IRQ);
                gpmc_cs_free(eth_cs);
                goto out;
        }
-       omap_set_gpio_direction(OMAP24XX_ETHR_GPIO_IRQ, 1);
+       gpio_direction_input(OMAP24XX_ETHR_GPIO_IRQ);
 
 out:
        clk_disable(gpmc_fck);
@@ -392,6 +393,8 @@ static struct twl4030_hsmmc_info mmc[] __initdata = {
                .mmc            = 1,
                .wires          = 4,
                .gpio_cd        = -EINVAL,
+               .gpio_wp        = -EINVAL,
+               .ext_clock      = 1,
        },
        {}      /* Terminator */
 };
@@ -413,11 +416,10 @@ static void __init omap_2430sdp_init(void)
        spi_register_board_info(sdp2430_spi_board_info,
                                ARRAY_SIZE(sdp2430_spi_board_info));
        ads7846_dev_init();
-       hsmmc_init(mmc);
+       twl4030_mmc_init(mmc);
 
        /* turn off secondary LCD backlight */
-       omap_set_gpio_direction(SECONDARY_LCD_GPIO, 0);
-       omap_set_gpio_dataout(SECONDARY_LCD_GPIO, 0);
+       gpio_direction_output(SECONDARY_LCD_GPIO, 0);
 }
 
 static void __init omap_2430sdp_map_io(void)