input: hacks+updates for mainline twl4030 driver
authorGrazvydas Ignotas <notasas@gmail.com>
Thu, 5 Nov 2009 10:44:01 +0000 (12:44 +0200)
committerGrazvydas Ignotas <notasas@gmail.com>
Thu, 5 Nov 2009 11:16:00 +0000 (13:16 +0200)
This includes some differing #includes and col/row swap
in the KEY() macro.

arch/arm/mach-omap2/board-omap3pandora-input.c
drivers/input/keyboard/twl4030_keypad.c
drivers/mfd/twl4030-core.c
include/linux/i2c/twl4030.h

index 6ca69ce..ce9df0e 100644 (file)
 #include <linux/platform_device.h>
 #include <linux/input.h>
 #include <linux/gpio_keys.h>
+#include <linux/input/matrix_keypad.h>
 
 #include <mach/hardware.h>
-#include <mach/keypad.h>
 #include <mach/gpio.h>
 
 /* hardware debounce, (value + 1) * 31us */
 #define GPIO_DEBOUNCE_TIME 0x7f
 
 static int omap3pandora_keymap[] = {
-       /* col, row, code */
+       /* row, col, code */
        KEY(0, 0, KEY_9),
-       KEY(0, 1, KEY_0),
-       KEY(0, 2, KEY_BACKSPACE),
-       KEY(0, 3, KEY_O),
-       KEY(0, 4, KEY_P),
-       KEY(0, 5, KEY_K),
-       KEY(0, 6, KEY_L),
-       KEY(0, 7, KEY_ENTER),
-       KEY(1, 0, KEY_8),
+       KEY(0, 1, KEY_8),
+       KEY(0, 2, KEY_I),
+       KEY(0, 3, KEY_J),
+       KEY(0, 4, KEY_N),
+       KEY(0, 5, KEY_M),
+       KEY(1, 0, KEY_0),
        KEY(1, 1, KEY_7),
-       KEY(1, 2, KEY_6),
-       KEY(1, 3, KEY_5),
-       KEY(1, 4, KEY_4),
-       KEY(1, 5, KEY_3),
-       KEY(1, 6, KEY_2),
-       KEY(1, 7, KEY_1),
-       KEY(2, 0, KEY_I),
-       KEY(2, 1, KEY_U),
+       KEY(1, 2, KEY_U),
+       KEY(1, 3, KEY_H),
+       KEY(1, 4, KEY_B),
+       KEY(1, 5, KEY_SPACE),
+       KEY(2, 0, KEY_BACKSPACE),
+       KEY(2, 1, KEY_6),
        KEY(2, 2, KEY_Y),
-       KEY(2, 3, KEY_T),
-       KEY(2, 4, KEY_R),
-       KEY(2, 5, KEY_E),
-       KEY(2, 6, KEY_W),
-       KEY(2, 7, KEY_Q),
-       KEY(3, 0, KEY_J),
-       KEY(3, 1, KEY_H),
-       KEY(3, 2, KEY_G),
+       KEY(2, 3, KEY_G),
+       KEY(2, 4, KEY_V),
+       KEY(2, 5, KEY_FN),
+       KEY(3, 0, KEY_O),
+       KEY(3, 1, KEY_5),
+       KEY(3, 2, KEY_T),
        KEY(3, 3, KEY_F),
-       KEY(3, 4, KEY_D),
-       KEY(3, 5, KEY_S),
-       KEY(3, 6, KEY_A),
-       KEY(3, 7, KEY_LEFTSHIFT),
-       KEY(4, 0, KEY_N),
-       KEY(4, 1, KEY_B),
-       KEY(4, 2, KEY_V),
-       KEY(4, 3, KEY_C),
+       KEY(3, 4, KEY_C),
+       KEY(4, 0, KEY_P),
+       KEY(4, 1, KEY_4),
+       KEY(4, 2, KEY_R),
+       KEY(4, 3, KEY_D),
        KEY(4, 4, KEY_X),
-       KEY(4, 5, KEY_Z),
-       KEY(4, 6, KEY_DOT),
-       KEY(4, 7, KEY_COMMA),
-       KEY(5, 0, KEY_M),
-       KEY(5, 1, KEY_SPACE),
-       KEY(5, 2, KEY_FN),
+       KEY(5, 0, KEY_K),
+       KEY(5, 1, KEY_3),
+       KEY(5, 2, KEY_E),
+       KEY(5, 3, KEY_S),
+       KEY(5, 4, KEY_Z),
+       KEY(6, 0, KEY_L),
+       KEY(6, 1, KEY_2),
+       KEY(6, 2, KEY_W),
+       KEY(6, 3, KEY_A),
+       KEY(6, 4, KEY_DOT),
+       KEY(7, 0, KEY_ENTER),
+       KEY(7, 1, KEY_1),
+       KEY(7, 2, KEY_Q),
+       KEY(7, 3, KEY_LEFTSHIFT),
+       KEY(7, 4, KEY_COMMA),
+};
+
+static struct matrix_keymap_data board_map_data = {
+       .keymap         = omap3pandora_keymap,
+       .keymap_size    = ARRAY_SIZE(omap3pandora_keymap),
 };
 
 struct twl4030_keypad_data omap3pandora_kp_data = {
+       .keymap_data    = &board_map_data,
        .rows           = 8,
        .cols           = 6,
-       .keymap         = omap3pandora_keymap,
-       .keymapsize     = ARRAY_SIZE(omap3pandora_keymap),
        .rep            = 1,
-       .irq            = TWL4030_MODIRQ_KEYPAD,
 };
 
 static struct gpio_keys_button gpio_buttons[] = {
index 9a2977c..99bb58d 100644 (file)
@@ -32,6 +32,7 @@
 #include <linux/input.h>
 #include <linux/platform_device.h>
 #include <linux/i2c/twl4030.h>
+#include <linux/input/matrix_keypad.h>
 
 
 /*
index dd843c4..4c502d7 100644 (file)
@@ -468,7 +468,15 @@ static int add_children(struct twl4030_platform_data *pdata)
                                        status);
                                platform_device_put(pdev);
                                goto err;
+                       } else {
+                               struct resource r = {
+                                       .start = pdata->irq_base + 1,
+                                       .flags = IORESOURCE_IRQ,
+                               };
+
+                               status = platform_device_add_resources(pdev, &r, 1);
                        }
+
                        status = platform_device_add(pdev);
                        if (status < 0) {
                                platform_device_put(pdev);
index 3d6321e..4a31016 100644 (file)
@@ -25,9 +25,6 @@
 #ifndef __TWL4030_H_
 #define __TWL4030_H_
 
-#include <linux/types.h>
-#include <linux/input/matrix_keypad.h>
-
 /*
  * Using the twl4030 core we address registers using a pair
  *     { module id, relative register offset }