]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/arm/mach-omap1/board-innovator.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / arch / arm / mach-omap1 / board-innovator.c
index dc2b86fd66c12312119ab3d9770667030886fe30..a36e6742bf9b9879e649cb49d91251c504a7f7f4 100644 (file)
 /* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */
 #define INNOVATOR1610_ETHR_START       0x04000300
 
-static int innovator_keymap[] = {
+static const unsigned int innovator_keymap[] = {
        KEY(0, 0, KEY_F1),
-       KEY(0, 3, KEY_DOWN),
+       KEY(3, 0, KEY_DOWN),
        KEY(1, 1, KEY_F2),
-       KEY(1, 2, KEY_RIGHT),
-       KEY(2, 0, KEY_F3),
-       KEY(2, 1, KEY_F4),
+       KEY(2, 1, KEY_RIGHT),
+       KEY(0, 2, KEY_F3),
+       KEY(1, 2, KEY_F4),
        KEY(2, 2, KEY_UP),
-       KEY(3, 2, KEY_ENTER),
+       KEY(2, 3, KEY_ENTER),
        KEY(3, 3, KEY_LEFT),
-       0
 };
 
 static struct mtd_partition innovator_partitions[] = {
@@ -126,11 +125,15 @@ static struct resource innovator_kp_resources[] = {
        },
 };
 
+static const struct matrix_keymap_data innovator_keymap_data = {
+       .keymap         = innovator_keymap,
+       .keymap_size    = ARRAY_SIZE(innovator_keymap),
+};
+
 static struct omap_kp_platform_data innovator_kp_data = {
        .rows           = 8,
        .cols           = 8,
-       .keymap         = innovator_keymap,
-       .keymapsize     = ARRAY_SIZE(innovator_keymap),
+       .keymap_data    = &innovator_keymap_data,
        .delay          = 4,
 };
 
@@ -290,13 +293,6 @@ static void __init innovator_init_irq(void)
 {
        omap1_init_common_hw();
        omap_init_irq();
-       omap_gpio_init();
-#ifdef CONFIG_ARCH_OMAP15XX
-       if (cpu_is_omap1510()) {
-               omap1510_fpga_init_irq();
-       }
-#endif
-       innovator_init_smc91x();
 }
 
 #ifdef CONFIG_ARCH_OMAP15XX
@@ -387,6 +383,10 @@ static struct omap_board_config_kernel innovator_config[] = {
 
 static void __init innovator_init(void)
 {
+       if (cpu_is_omap1510())
+               omap1510_fpga_init_irq();
+       innovator_init_smc91x();
+
 #ifdef CONFIG_ARCH_OMAP15XX
        if (cpu_is_omap1510()) {
                unsigned char reg;