2009-09-30 13:26:22

by Amit Kucheria

[permalink] [raw]
Subject: [PATCH] input: fix rx51 board keymap

The original driver was written with the KEY() macro defined as (col, row)
instead of (row, col) as defined by the matrix keypad infrastructure. So the
keymap was defined accordingly.

Since the driver that was merged upstream uses the matrix keypad
infrastructure, modify the keymap accordingly.

While we are at it, fix the comments in twl4030.h and define PERSISTENT_KEY as
(r,c) instead of (c, r)

Tested on a RX51 (N900) device.

Signed-off-by: Amit Kucheria <[email protected]>
Cc: Tony Lindgren <[email protected]>
Cc: Lauri Leukkunen <[email protected]>
Cc: Samuel Ortiz <[email protected]>
---
arch/arm/mach-omap2/board-rx51-peripherals.c | 78 +++++++++++++-------------
include/linux/i2c/twl4030.h | 6 +-
2 files changed, 42 insertions(+), 42 deletions(-)

diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index b45ad31..c1af532 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -38,49 +38,49 @@

static int board_keymap[] = {
KEY(0, 0, KEY_Q),
- KEY(0, 1, KEY_W),
- KEY(0, 2, KEY_E),
- KEY(0, 3, KEY_R),
- KEY(0, 4, KEY_T),
- KEY(0, 5, KEY_Y),
- KEY(0, 6, KEY_U),
- KEY(0, 7, KEY_I),
- KEY(1, 0, KEY_O),
+ KEY(0, 1, KEY_O),
+ KEY(0, 2, KEY_P),
+ KEY(0, 3, KEY_COMMA),
+ KEY(0, 4, KEY_BACKSPACE),
+ KEY(0, 6, KEY_A),
+ KEY(0, 7, KEY_S),
+ KEY(1, 0, KEY_W),
KEY(1, 1, KEY_D),
- KEY(1, 2, KEY_DOT),
- KEY(1, 3, KEY_V),
- KEY(1, 4, KEY_DOWN),
- KEY(2, 0, KEY_P),
- KEY(2, 1, KEY_F),
+ KEY(1, 2, KEY_F),
+ KEY(1, 3, KEY_G),
+ KEY(1, 4, KEY_H),
+ KEY(1, 5, KEY_J),
+ KEY(1, 6, KEY_K),
+ KEY(1, 7, KEY_L),
+ KEY(2, 0, KEY_E),
+ KEY(2, 1, KEY_DOT),
KEY(2, 2, KEY_UP),
- KEY(2, 3, KEY_B),
- KEY(2, 4, KEY_RIGHT),
- KEY(3, 0, KEY_COMMA),
- KEY(3, 1, KEY_G),
- KEY(3, 2, KEY_ENTER),
+ KEY(2, 3, KEY_ENTER),
+ KEY(2, 5, KEY_Z),
+ KEY(2, 6, KEY_X),
+ KEY(2, 7, KEY_C),
+ KEY(3, 0, KEY_R),
+ KEY(3, 1, KEY_V),
+ KEY(3, 2, KEY_B),
KEY(3, 3, KEY_N),
- KEY(4, 0, KEY_BACKSPACE),
- KEY(4, 1, KEY_H),
- KEY(4, 3, KEY_M),
+ KEY(3, 4, KEY_M),
+ KEY(3, 5, KEY_SPACE),
+ KEY(3, 6, KEY_SPACE),
+ KEY(3, 7, KEY_LEFT),
+ KEY(4, 0, KEY_T),
+ KEY(4, 1, KEY_DOWN),
+ KEY(4, 2, KEY_RIGHT),
KEY(4, 4, KEY_LEFTCTRL),
- KEY(5, 1, KEY_J),
- KEY(5, 2, KEY_Z),
- KEY(5, 3, KEY_SPACE),
- KEY(5, 4, KEY_LEFTSHIFT),
- KEY(6, 0, KEY_A),
- KEY(6, 1, KEY_K),
- KEY(6, 2, KEY_X),
- KEY(6, 3, KEY_SPACE),
- KEY(6, 4, KEY_FN),
- KEY(7, 0, KEY_S),
- KEY(7, 1, KEY_L),
- KEY(7, 2, KEY_C),
- KEY(7, 3, KEY_LEFT),
- KEY(0xff, 0, KEY_F6),
- KEY(0xff, 1, KEY_F7),
- KEY(0xff, 2, KEY_F8),
- KEY(0xff, 4, KEY_F9),
- KEY(0xff, 5, KEY_F10),
+ KEY(4, 5, KEY_RIGHTALT),
+ KEY(4, 6, KEY_LEFTSHIFT),
+ KEY(5, 0, KEY_Y),
+ KEY(6, 0, KEY_U),
+ KEY(7, 0, KEY_I),
+ KEY(7, 1, KEY_F7),
+ KEY(7, 2, KEY_F8),
+ KEY(0xff, 2, KEY_F9),
+ KEY(0xff, 4, KEY_F10),
+ KEY(0xff, 5, KEY_F11),
};

static struct matrix_keymap_data board_map_data = {
diff --git a/include/linux/i2c/twl4030.h b/include/linux/i2c/twl4030.h
index 2d02dfd..508824e 100644
--- a/include/linux/i2c/twl4030.h
+++ b/include/linux/i2c/twl4030.h
@@ -349,11 +349,11 @@ struct twl4030_madc_platform_data {
int irq_line;
};

-/* Boards have uniqe mappings of {col, row} --> keycode.
- * Column and row are 4 bits, but range only from 0..7.
+/* Boards have uniqe mappings of {row, col} --> keycode.
+ * Column and row are 8 bits each, but range only from 0..7.
* a PERSISTENT_KEY is "always on" and never reported.
*/
-#define PERSISTENT_KEY(c, r) KEY((c), (r), KEY_RESERVED)
+#define PERSISTENT_KEY(r, c) KEY((r), (c), KEY_RESERVED)

struct twl4030_keypad_data {
const struct matrix_keymap_data *keymap_data;
--
1.6.3.3


2009-09-30 18:48:49

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH] input: fix rx51 board keymap

* Amit Kucheria <[email protected]> [090930 06:26]:
> The original driver was written with the KEY() macro defined as (col, row)
> instead of (row, col) as defined by the matrix keypad infrastructure. So the
> keymap was defined accordingly.
>
> Since the driver that was merged upstream uses the matrix keypad
> infrastructure, modify the keymap accordingly.
>
> While we are at it, fix the comments in twl4030.h and define PERSISTENT_KEY as
> (r,c) instead of (c, r)
>
> Tested on a RX51 (N900) device.
>
> Signed-off-by: Amit Kucheria <[email protected]>
> Cc: Tony Lindgren <[email protected]>
> Cc: Lauri Leukkunen <[email protected]>
> Cc: Samuel Ortiz <[email protected]>

Acked-by: Tony Lindgren <[email protected]>

Dimitry, will you queue this one?

I'll also add it into omap-fixes-testing while waiting for it
to go to mainline.

Regards,

Tony


> ---
> arch/arm/mach-omap2/board-rx51-peripherals.c | 78 +++++++++++++-------------
> include/linux/i2c/twl4030.h | 6 +-
> 2 files changed, 42 insertions(+), 42 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
> index b45ad31..c1af532 100644
> --- a/arch/arm/mach-omap2/board-rx51-peripherals.c
> +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
> @@ -38,49 +38,49 @@
>
> static int board_keymap[] = {
> KEY(0, 0, KEY_Q),
> - KEY(0, 1, KEY_W),
> - KEY(0, 2, KEY_E),
> - KEY(0, 3, KEY_R),
> - KEY(0, 4, KEY_T),
> - KEY(0, 5, KEY_Y),
> - KEY(0, 6, KEY_U),
> - KEY(0, 7, KEY_I),
> - KEY(1, 0, KEY_O),
> + KEY(0, 1, KEY_O),
> + KEY(0, 2, KEY_P),
> + KEY(0, 3, KEY_COMMA),
> + KEY(0, 4, KEY_BACKSPACE),
> + KEY(0, 6, KEY_A),
> + KEY(0, 7, KEY_S),
> + KEY(1, 0, KEY_W),
> KEY(1, 1, KEY_D),
> - KEY(1, 2, KEY_DOT),
> - KEY(1, 3, KEY_V),
> - KEY(1, 4, KEY_DOWN),
> - KEY(2, 0, KEY_P),
> - KEY(2, 1, KEY_F),
> + KEY(1, 2, KEY_F),
> + KEY(1, 3, KEY_G),
> + KEY(1, 4, KEY_H),
> + KEY(1, 5, KEY_J),
> + KEY(1, 6, KEY_K),
> + KEY(1, 7, KEY_L),
> + KEY(2, 0, KEY_E),
> + KEY(2, 1, KEY_DOT),
> KEY(2, 2, KEY_UP),
> - KEY(2, 3, KEY_B),
> - KEY(2, 4, KEY_RIGHT),
> - KEY(3, 0, KEY_COMMA),
> - KEY(3, 1, KEY_G),
> - KEY(3, 2, KEY_ENTER),
> + KEY(2, 3, KEY_ENTER),
> + KEY(2, 5, KEY_Z),
> + KEY(2, 6, KEY_X),
> + KEY(2, 7, KEY_C),
> + KEY(3, 0, KEY_R),
> + KEY(3, 1, KEY_V),
> + KEY(3, 2, KEY_B),
> KEY(3, 3, KEY_N),
> - KEY(4, 0, KEY_BACKSPACE),
> - KEY(4, 1, KEY_H),
> - KEY(4, 3, KEY_M),
> + KEY(3, 4, KEY_M),
> + KEY(3, 5, KEY_SPACE),
> + KEY(3, 6, KEY_SPACE),
> + KEY(3, 7, KEY_LEFT),
> + KEY(4, 0, KEY_T),
> + KEY(4, 1, KEY_DOWN),
> + KEY(4, 2, KEY_RIGHT),
> KEY(4, 4, KEY_LEFTCTRL),
> - KEY(5, 1, KEY_J),
> - KEY(5, 2, KEY_Z),
> - KEY(5, 3, KEY_SPACE),
> - KEY(5, 4, KEY_LEFTSHIFT),
> - KEY(6, 0, KEY_A),
> - KEY(6, 1, KEY_K),
> - KEY(6, 2, KEY_X),
> - KEY(6, 3, KEY_SPACE),
> - KEY(6, 4, KEY_FN),
> - KEY(7, 0, KEY_S),
> - KEY(7, 1, KEY_L),
> - KEY(7, 2, KEY_C),
> - KEY(7, 3, KEY_LEFT),
> - KEY(0xff, 0, KEY_F6),
> - KEY(0xff, 1, KEY_F7),
> - KEY(0xff, 2, KEY_F8),
> - KEY(0xff, 4, KEY_F9),
> - KEY(0xff, 5, KEY_F10),
> + KEY(4, 5, KEY_RIGHTALT),
> + KEY(4, 6, KEY_LEFTSHIFT),
> + KEY(5, 0, KEY_Y),
> + KEY(6, 0, KEY_U),
> + KEY(7, 0, KEY_I),
> + KEY(7, 1, KEY_F7),
> + KEY(7, 2, KEY_F8),
> + KEY(0xff, 2, KEY_F9),
> + KEY(0xff, 4, KEY_F10),
> + KEY(0xff, 5, KEY_F11),
> };
>
> static struct matrix_keymap_data board_map_data = {
> diff --git a/include/linux/i2c/twl4030.h b/include/linux/i2c/twl4030.h
> index 2d02dfd..508824e 100644
> --- a/include/linux/i2c/twl4030.h
> +++ b/include/linux/i2c/twl4030.h
> @@ -349,11 +349,11 @@ struct twl4030_madc_platform_data {
> int irq_line;
> };
>
> -/* Boards have uniqe mappings of {col, row} --> keycode.
> - * Column and row are 4 bits, but range only from 0..7.
> +/* Boards have uniqe mappings of {row, col} --> keycode.
> + * Column and row are 8 bits each, but range only from 0..7.
> * a PERSISTENT_KEY is "always on" and never reported.
> */
> -#define PERSISTENT_KEY(c, r) KEY((c), (r), KEY_RESERVED)
> +#define PERSISTENT_KEY(r, c) KEY((r), (c), KEY_RESERVED)
>
> struct twl4030_keypad_data {
> const struct matrix_keymap_data *keymap_data;
> --
> 1.6.3.3
>

2009-10-06 05:07:41

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [PATCH] input: fix rx51 board keymap

On Wed, Sep 30, 2009 at 11:48:44AM -0700, Tony Lindgren wrote:
> * Amit Kucheria <[email protected]> [090930 06:26]:
> > The original driver was written with the KEY() macro defined as (col, row)
> > instead of (row, col) as defined by the matrix keypad infrastructure. So the
> > keymap was defined accordingly.
> >
> > Since the driver that was merged upstream uses the matrix keypad
> > infrastructure, modify the keymap accordingly.
> >
> > While we are at it, fix the comments in twl4030.h and define PERSISTENT_KEY as
> > (r,c) instead of (c, r)
> >
> > Tested on a RX51 (N900) device.
> >
> > Signed-off-by: Amit Kucheria <[email protected]>
> > Cc: Tony Lindgren <[email protected]>
> > Cc: Lauri Leukkunen <[email protected]>
> > Cc: Samuel Ortiz <[email protected]>
>
> Acked-by: Tony Lindgren <[email protected]>
>
> Dimitry, will you queue this one?
>
> I'll also add it into omap-fixes-testing while waiting for it
> to go to mainline.
>

Applied to the 'for-linus' branch.

--
Dmitry