Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzi...
[pandora-kernel.git] / arch / arm / mach-omap1 / board-ams-delta.c
index 1d4163b..bd0495a 100644 (file)
@@ -28,6 +28,7 @@
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
+#include <plat/io.h>
 #include <plat/board-ams-delta.h>
 #include <mach/gpio.h>
 #include <plat/keypad.h>
 static u8 ams_delta_latch1_reg;
 static u16 ams_delta_latch2_reg;
 
-static int ams_delta_keymap[] = {
+static const unsigned int ams_delta_keymap[] = {
        KEY(0, 0, KEY_F1),              /* Advert    */
 
-       KEY(3, 0, KEY_COFFEE),          /* Games     */
-       KEY(2, 0, KEY_QUESTION),        /* Directory */
-       KEY(3, 2, KEY_CONNECT),         /* Internet  */
-       KEY(2, 1, KEY_SHOP),            /* Services  */
+       KEY(0, 3, KEY_COFFEE),          /* Games     */
+       KEY(0, 2, KEY_QUESTION),        /* Directory */
+       KEY(2, 3, KEY_CONNECT),         /* Internet  */
+       KEY(1, 2, KEY_SHOP),            /* Services  */
        KEY(1, 1, KEY_PHONE),           /* VoiceMail */
 
-       KEY(1, 0, KEY_DELETE),          /* Delete    */
+       KEY(0, 1, KEY_DELETE),          /* Delete    */
        KEY(2, 2, KEY_PLAY),            /* Play      */
-       KEY(0, 1, KEY_PAGEUP),          /* Up        */
-       KEY(3, 1, KEY_PAGEDOWN),        /* Down      */
-       KEY(0, 2, KEY_EMAIL),           /* ReadEmail */
-       KEY(1, 2, KEY_STOP),            /* Stop      */
+       KEY(1, 0, KEY_PAGEUP),          /* Up        */
+       KEY(1, 3, KEY_PAGEDOWN),        /* Down      */
+       KEY(2, 0, KEY_EMAIL),           /* ReadEmail */
+       KEY(2, 1, KEY_STOP),            /* Stop      */
 
        /* Numeric keypad portion */
-       KEY(7, 0, KEY_KP1),
-       KEY(6, 0, KEY_KP2),
-       KEY(5, 0, KEY_KP3),
-       KEY(7, 1, KEY_KP4),
-       KEY(6, 1, KEY_KP5),
-       KEY(5, 1, KEY_KP6),
-       KEY(7, 2, KEY_KP7),
-       KEY(6, 2, KEY_KP8),
-       KEY(5, 2, KEY_KP9),
-       KEY(6, 3, KEY_KP0),
-       KEY(7, 3, KEY_KPASTERISK),
-       KEY(5, 3, KEY_KPDOT),           /* # key     */
-       KEY(2, 7, KEY_NUMLOCK),         /* Mute      */
-       KEY(1, 7, KEY_KPMINUS),         /* Recall    */
-       KEY(1, 6, KEY_KPPLUS),          /* Redial    */
-       KEY(6, 7, KEY_KPSLASH),         /* Handsfree */
-       KEY(0, 6, KEY_ENTER),           /* Video     */
-
-       KEY(4, 7, KEY_CAMERA),          /* Photo     */
-
-       KEY(4, 0, KEY_F2),              /* Home      */
-       KEY(4, 1, KEY_F3),              /* Office    */
-       KEY(4, 2, KEY_F4),              /* Mobile    */
+       KEY(0, 7, KEY_KP1),
+       KEY(0, 6, KEY_KP2),
+       KEY(0, 5, KEY_KP3),
+       KEY(1, 7, KEY_KP4),
+       KEY(1, 6, KEY_KP5),
+       KEY(1, 5, KEY_KP6),
+       KEY(2, 7, KEY_KP7),
+       KEY(2, 6, KEY_KP8),
+       KEY(2, 5, KEY_KP9),
+       KEY(3, 6, KEY_KP0),
+       KEY(3, 7, KEY_KPASTERISK),
+       KEY(3, 5, KEY_KPDOT),           /* # key     */
+       KEY(7, 2, KEY_NUMLOCK),         /* Mute      */
+       KEY(7, 1, KEY_KPMINUS),         /* Recall    */
+       KEY(6, 1, KEY_KPPLUS),          /* Redial    */
+       KEY(7, 6, KEY_KPSLASH),         /* Handsfree */
+       KEY(6, 0, KEY_ENTER),           /* Video     */
+
+       KEY(7, 4, KEY_CAMERA),          /* Photo     */
+
+       KEY(0, 4, KEY_F2),              /* Home      */
+       KEY(1, 4, KEY_F3),              /* Office    */
+       KEY(2, 4, KEY_F4),              /* Mobile    */
        KEY(7, 7, KEY_F5),              /* SMS       */
-       KEY(5, 7, KEY_F6),              /* Email     */
+       KEY(7, 5, KEY_F6),              /* Email     */
 
        /* QWERTY portion of keypad */
-       KEY(4, 3, KEY_Q),
+       KEY(3, 4, KEY_Q),
        KEY(3, 3, KEY_W),
-       KEY(2, 3, KEY_E),
-       KEY(1, 3, KEY_R),
-       KEY(0, 3, KEY_T),
-       KEY(7, 4, KEY_Y),
-       KEY(6, 4, KEY_U),
-       KEY(5, 4, KEY_I),
+       KEY(3, 2, KEY_E),
+       KEY(3, 1, KEY_R),
+       KEY(3, 0, KEY_T),
+       KEY(4, 7, KEY_Y),
+       KEY(4, 6, KEY_U),
+       KEY(4, 5, KEY_I),
        KEY(4, 4, KEY_O),
-       KEY(3, 4, KEY_P),
+       KEY(4, 3, KEY_P),
 
-       KEY(2, 4, KEY_A),
-       KEY(1, 4, KEY_S),
-       KEY(0, 4, KEY_D),
-       KEY(7, 5, KEY_F),
-       KEY(6, 5, KEY_G),
+       KEY(4, 2, KEY_A),
+       KEY(4, 1, KEY_S),
+       KEY(4, 0, KEY_D),
+       KEY(5, 7, KEY_F),
+       KEY(5, 6, KEY_G),
        KEY(5, 5, KEY_H),
-       KEY(4, 5, KEY_J),
-       KEY(3, 5, KEY_K),
-       KEY(2, 5, KEY_L),
+       KEY(5, 4, KEY_J),
+       KEY(5, 3, KEY_K),
+       KEY(5, 2, KEY_L),
 
-       KEY(1, 5, KEY_Z),
-       KEY(0, 5, KEY_X),
-       KEY(7, 6, KEY_C),
+       KEY(5, 1, KEY_Z),
+       KEY(5, 0, KEY_X),
+       KEY(6, 7, KEY_C),
        KEY(6, 6, KEY_V),
-       KEY(5, 6, KEY_B),
-       KEY(4, 6, KEY_N),
-       KEY(3, 6, KEY_M),
-       KEY(2, 6, KEY_SPACE),
+       KEY(6, 5, KEY_B),
+       KEY(6, 4, KEY_N),
+       KEY(6, 3, KEY_M),
+       KEY(6, 2, KEY_SPACE),
 
-       KEY(0, 7, KEY_LEFTSHIFT),       /* Vol up    */
-       KEY(3, 7, KEY_LEFTCTRL),        /* Vol down  */
-
-       0
+       KEY(7, 0, KEY_LEFTSHIFT),       /* Vol up    */
+       KEY(7, 3, KEY_LEFTCTRL),        /* Vol down  */
 };
 
 void ams_delta_latch1_write(u8 mask, u8 value)
@@ -140,7 +139,6 @@ static void __init ams_delta_init_irq(void)
 {
        omap1_init_common_hw();
        omap_init_irq();
-       omap_gpio_init();
 }
 
 static struct map_desc ams_delta_io_desc[] __initdata = {
@@ -189,11 +187,15 @@ static struct resource ams_delta_kp_resources[] = {
        },
 };
 
+static const struct matrix_keymap_data ams_delta_keymap_data = {
+       .keymap         = ams_delta_keymap,
+       .keymap_size    = ARRAY_SIZE(ams_delta_keymap),
+};
+
 static struct omap_kp_platform_data ams_delta_kp_data = {
        .rows           = 8,
        .cols           = 8,
-       .keymap         = ams_delta_keymap,
-       .keymapsize     = ARRAY_SIZE(ams_delta_keymap),
+       .keymap_data    = &ams_delta_keymap_data,
        .delay          = 9,
 };
 
@@ -307,16 +309,14 @@ static void __init ams_delta_init(void)
 #endif
        platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices));
 
-#ifdef CONFIG_AMS_DELTA_FIQ
        ams_delta_init_fiq();
-#endif
 
        omap_writew(omap_readw(ARM_RSTCT1) | 0x0004, ARM_RSTCT1);
 }
 
 static struct plat_serial8250_port ams_delta_modem_ports[] = {
        {
-               .membase        = (void *) AMS_DELTA_MODEM_VIRT,
+               .membase        = IOMEM(AMS_DELTA_MODEM_VIRT),
                .mapbase        = AMS_DELTA_MODEM_PHYS,
                .irq            = -EINVAL, /* changed later */
                .flags          = UPF_BOOT_AUTOCONF,
@@ -340,6 +340,9 @@ static int __init ams_delta_modem_init(void)
 {
        int err;
 
+       if (!machine_is_ams_delta())
+               return -ENODEV;
+
        omap_cfg_reg(M14_1510_GPIO2);
        ams_delta_modem_ports[0].irq =
                        gpio_to_irq(AMS_DELTA_GPIO_PIN_MODEM_IRQ);