1 From 9416a510c6939bc6da62cf12de665fd11b89a9f6 Mon Sep 17 00:00:00 2001
2 From: Grazvydas Ignotas <notasas@gmail.com>
3 Date: Thu, 5 Nov 2009 12:44:01 +0200
4 Subject: [PATCH 6/7] input: hacks+updates for mainline twl4030 driver
6 This includes some differing #includes and col/row swap
9 arch/arm/mach-omap2/board-omap3pandora-input.c | 89 ++++++++++++-----------
10 drivers/input/keyboard/twl4030_keypad.c | 1 +
11 drivers/mfd/twl4030-core.c | 8 ++
12 include/linux/i2c/twl4030.h | 3 -
13 4 files changed, 55 insertions(+), 46 deletions(-)
15 diff --git a/arch/arm/mach-omap2/board-omap3pandora-input.c b/arch/arm/mach-omap2/board-omap3pandora-input.c
16 index 6ca69ce..ce9df0e 100644
17 --- a/arch/arm/mach-omap2/board-omap3pandora-input.c
18 +++ b/arch/arm/mach-omap2/board-omap3pandora-input.c
20 #include <linux/platform_device.h>
21 #include <linux/input.h>
22 #include <linux/gpio_keys.h>
23 +#include <linux/input/matrix_keypad.h>
25 #include <mach/hardware.h>
26 -#include <mach/keypad.h>
27 #include <mach/gpio.h>
29 /* hardware debounce, (value + 1) * 31us */
30 #define GPIO_DEBOUNCE_TIME 0x7f
32 static int omap3pandora_keymap[] = {
33 - /* col, row, code */
34 + /* row, col, code */
37 - KEY(0, 2, KEY_BACKSPACE),
42 - KEY(0, 7, KEY_ENTER),
62 + KEY(1, 5, KEY_SPACE),
63 + KEY(2, 0, KEY_BACKSPACE),
84 - KEY(3, 7, KEY_LEFTSHIFT),
97 - KEY(4, 7, KEY_COMMA),
99 - KEY(5, 1, KEY_SPACE),
110 + KEY(6, 4, KEY_DOT),
111 + KEY(7, 0, KEY_ENTER),
114 + KEY(7, 3, KEY_LEFTSHIFT),
115 + KEY(7, 4, KEY_COMMA),
118 +static struct matrix_keymap_data board_map_data = {
119 + .keymap = omap3pandora_keymap,
120 + .keymap_size = ARRAY_SIZE(omap3pandora_keymap),
123 struct twl4030_keypad_data omap3pandora_kp_data = {
124 + .keymap_data = &board_map_data,
127 - .keymap = omap3pandora_keymap,
128 - .keymapsize = ARRAY_SIZE(omap3pandora_keymap),
130 - .irq = TWL4030_MODIRQ_KEYPAD,
133 static struct gpio_keys_button gpio_buttons[] = {
134 diff --git a/drivers/input/keyboard/twl4030_keypad.c b/drivers/input/keyboard/twl4030_keypad.c
135 index 9a2977c..99bb58d 100644
136 --- a/drivers/input/keyboard/twl4030_keypad.c
137 +++ b/drivers/input/keyboard/twl4030_keypad.c
139 #include <linux/input.h>
140 #include <linux/platform_device.h>
141 #include <linux/i2c/twl4030.h>
142 +#include <linux/input/matrix_keypad.h>
146 diff --git a/drivers/mfd/twl4030-core.c b/drivers/mfd/twl4030-core.c
147 index dd843c4..4c502d7 100644
148 --- a/drivers/mfd/twl4030-core.c
149 +++ b/drivers/mfd/twl4030-core.c
150 @@ -468,7 +468,15 @@ static int add_children(struct twl4030_platform_data *pdata)
152 platform_device_put(pdev);
155 + struct resource r = {
156 + .start = pdata->irq_base + 1,
157 + .flags = IORESOURCE_IRQ,
160 + status = platform_device_add_resources(pdev, &r, 1);
163 status = platform_device_add(pdev);
165 platform_device_put(pdev);
166 diff --git a/include/linux/i2c/twl4030.h b/include/linux/i2c/twl4030.h
167 index 3d6321e..4a31016 100644
168 --- a/include/linux/i2c/twl4030.h
169 +++ b/include/linux/i2c/twl4030.h
174 -#include <linux/types.h>
175 -#include <linux/input/matrix_keypad.h>
178 * Using the twl4030 core we address registers using a pair
179 * { module id, relative register offset }