On Fri, Nov 07, 2008 at 09:41:27PM +0800, Stanley.Miao wrote:
> Support twl4030 keypad and gpio keys on ZOOM SDK.

Again, split defconfig changes out of this patch.

> +static struct twl4030_keypad_data ldp_kp_twl4030_data = {
> +     .rows           = 6,
> +     .cols           = 6,
> +     .keymap         = ldp_twl4030_keymap,
> +     .keymapsize     = ARRAY_SIZE(ldp_twl4030_keymap),
> +     .rep            = 1,
> +     .irq            = TWL4030_MODIRQ_KEYPAD,
> +};
> +
> +

one blank line is enough.

> +static struct gpio_keys_button ldp_gpio_keys_buttons[] = {
> +     [0] = {
> +             .code           = KEY_ENTER,
> +             .gpio           = 101,
> +             .desc           = "enter sw",
> +             .active_low = 1,
> +             .debounce_interval = 30,

tabify here

> +     },
> +     [1] = {
> +             .code           = KEY_F1,
> +             .gpio           = 102,
> +             .desc           = "func 1",
> +             .active_low = 1,
> +             .debounce_interval = 30,

tabify here

> +     },
> +     [2] = {
> +             .code           = KEY_F2,
> +             .gpio           = 103,
> +             .desc           = "func 2",
> +             .active_low = 1,
> +             .debounce_interval = 30,

tabify here

> +     },
> +     [3] = {
> +             .code           = KEY_F3,
> +             .gpio           = 104,
> +             .desc           = "func 3",
> +             .active_low = 1,
> +             .debounce_interval = 30,

tabify here

> +     },
> +     [4] = {
> +             .code           = KEY_F4,
> +             .gpio           = 105,
> +             .desc           = "func 4",
> +             .active_low = 1,
> +             .debounce_interval = 30,

tabify here

> +     },
> +     [5] = {
> +             .code           = KEY_LEFT,
> +             .gpio           = 106,
> +             .desc           = "left sw",
> +             .active_low = 1,
> +             .debounce_interval = 30,

tabify here

> +     },
> +     [6] = {
> +             .code           = KEY_RIGHT,
> +             .gpio           = 107,
> +             .desc           = "right sw",
> +             .active_low = 1,
> +             .debounce_interval = 30,

tabify here

> +     },
> +     [7] = {
> +             .code           = KEY_UP,
> +             .gpio           = 108,
> +             .desc           = "up sw",
> +             .active_low = 1,
> +             .debounce_interval = 30,

tabify here

> +     },
> +     [8] = {
> +             .code           = KEY_DOWN,
> +             .gpio           = 109,
> +             .desc           = "down sw",
> +             .active_low = 1,
> +             .debounce_interval = 30,

tabify here

> diff --git a/drivers/input/keyboard/omap-twl4030keypad.c 
> b/drivers/input/keyboard/omap-twl4030keypad.c
> index d3e1d20..f0a0ea9 100644
> --- a/drivers/input/keyboard/omap-twl4030keypad.c
> +++ b/drivers/input/keyboard/omap-twl4030keypad.c
> @@ -174,7 +174,7 @@ static void twl4030_kp_scan(struct omap_keypad *kp, int 
> release_all)
>               if (!changed)
>                       continue;
>  
> -             for (col = 0; col < kp->n_cols + 1; col++) {
> +             for (col = 0; col < kp->n_cols; col++) {

this is a bug fix, should be in a separated patch.

> @@ -185,11 +185,20 @@ static void twl4030_kp_scan(struct omap_keypad *kp, int 
> release_all)
>                               "press" : "release");
>  
>                       key = omap_kp_find_key(kp, col, row);
> -                     if (key < 0)
> +                     if (key < 0) {
> +#ifdef CONFIG_MACH_OMAP_LDP
> +                             /* OMAP LDP has a TWL4030 GPIO
> +                              * (KBR5/KBC4) that is set to a persistent
> +                              * state and should be ignored.
> +                              */
> +                             if (row == 5 && col == 4)
> +                                     continue;
> +#endif

this should be avoided in the driver as much as possible. You should
probably add a persistent flag to the keymap data and match that flag here.

Something like, "if (key[i].persistent) continue;"

> +
>                               dev_warn(kp->dbg_dev,
>                                       "Spurious key event %d-%d\n",
>                                        col, row);
> -                     else
> +                     } else

if one arm has {}, put on both

-- 
balbi
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to