diff --git a/[refs] b/[refs] index 43527a435772..a4caf6ece91b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9c60debd2a666dc0e8466dee556af30ea68e97d2 +refs/heads/master: 76cb44e1a853f9c438ccf62eb5006f089430da72 diff --git a/trunk/drivers/input/keyboard/pxa27x_keypad.c b/trunk/drivers/input/keyboard/pxa27x_keypad.c index ceaf1e0ab540..6224c2fb3b65 100644 --- a/trunk/drivers/input/keyboard/pxa27x_keypad.c +++ b/trunk/drivers/input/keyboard/pxa27x_keypad.c @@ -357,6 +357,7 @@ static void pxa27x_keypad_config(struct pxa27x_keypad *keypad) keypad_writel(KPC, kpc | KPC_RE_ZERO_DEB); keypad_writel(KPREC, DEFAULT_KPREC); + keypad_writel(KPKDI, pdata->debounce_interval); } static int pxa27x_keypad_open(struct input_dev *dev) diff --git a/trunk/include/asm-arm/arch-pxa/pxa27x_keypad.h b/trunk/include/asm-arm/arch-pxa/pxa27x_keypad.h index 6b832329ebc2..644f7609b523 100644 --- a/trunk/include/asm-arm/arch-pxa/pxa27x_keypad.h +++ b/trunk/include/asm-arm/arch-pxa/pxa27x_keypad.h @@ -19,6 +19,9 @@ * * 3. rotary can be either interpreted as a relative input event (e.g. * REL_WHEEL/REL_HWHEEL) or specific keys (e.g. UP/DOWN/LEFT/RIGHT) + * + * 4. matrix key and direct key will use the same debounce_interval by + * default, which should be sufficient in most cases */ struct pxa27x_keypad_platform_data { @@ -43,6 +46,9 @@ struct pxa27x_keypad_platform_data { int rotary1_rel_code; int rotary1_up_key; int rotary1_down_key; + + /* key debounce interval */ + unsigned int debounce_interval; }; #define KEY(row, col, val) (((row) << 28) | ((col) << 24) | (val))