aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Miao <eric.y.miao@gmail.com>2008-01-31 00:59:23 -0500
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2008-01-31 00:59:23 -0500
commit76cb44e1a853f9c438ccf62eb5006f089430da72 (patch)
treeb3b53e6145c2a08c7819a4e5f1022cd491d79a80
parent9c60debd2a666dc0e8466dee556af30ea68e97d2 (diff)
Input: pxa27x_keypad - add debounce_interval to the keypad platform data
Currently, only one debounce_interval is introduced for both direct and matrix keys. This is true in most cases, although the keypad controller supports different debounce for direct/matrix keys. Some platforms do require this to be tuned, instead of the default reset value of 100ms. Rotary encoder will always use zero debounce time for now to achieve certain sensitivity. Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
-rw-r--r--drivers/input/keyboard/pxa27x_keypad.c1
-rw-r--r--include/asm-arm/arch-pxa/pxa27x_keypad.h6
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/input/keyboard/pxa27x_keypad.c b/drivers/input/keyboard/pxa27x_keypad.c
index ceaf1e0ab540..6224c2fb3b65 100644
--- a/drivers/input/keyboard/pxa27x_keypad.c
+++ b/drivers/input/keyboard/pxa27x_keypad.c
@@ -357,6 +357,7 @@ static void pxa27x_keypad_config(struct pxa27x_keypad *keypad)
357 357
358 keypad_writel(KPC, kpc | KPC_RE_ZERO_DEB); 358 keypad_writel(KPC, kpc | KPC_RE_ZERO_DEB);
359 keypad_writel(KPREC, DEFAULT_KPREC); 359 keypad_writel(KPREC, DEFAULT_KPREC);
360 keypad_writel(KPKDI, pdata->debounce_interval);
360} 361}
361 362
362static int pxa27x_keypad_open(struct input_dev *dev) 363static int pxa27x_keypad_open(struct input_dev *dev)
diff --git a/include/asm-arm/arch-pxa/pxa27x_keypad.h b/include/asm-arm/arch-pxa/pxa27x_keypad.h
index 6b832329ebc2..644f7609b523 100644
--- a/include/asm-arm/arch-pxa/pxa27x_keypad.h
+++ b/include/asm-arm/arch-pxa/pxa27x_keypad.h
@@ -19,6 +19,9 @@
19 * 19 *
20 * 3. rotary can be either interpreted as a relative input event (e.g. 20 * 3. rotary can be either interpreted as a relative input event (e.g.
21 * REL_WHEEL/REL_HWHEEL) or specific keys (e.g. UP/DOWN/LEFT/RIGHT) 21 * REL_WHEEL/REL_HWHEEL) or specific keys (e.g. UP/DOWN/LEFT/RIGHT)
22 *
23 * 4. matrix key and direct key will use the same debounce_interval by
24 * default, which should be sufficient in most cases
22 */ 25 */
23struct pxa27x_keypad_platform_data { 26struct pxa27x_keypad_platform_data {
24 27
@@ -43,6 +46,9 @@ struct pxa27x_keypad_platform_data {
43 int rotary1_rel_code; 46 int rotary1_rel_code;
44 int rotary1_up_key; 47 int rotary1_up_key;
45 int rotary1_down_key; 48 int rotary1_down_key;
49
50 /* key debounce interval */
51 unsigned int debounce_interval;
46}; 52};
47 53
48#define KEY(row, col, val) (((row) << 28) | ((col) << 24) | (val)) 54#define KEY(row, col, val) (((row) << 28) | ((col) << 24) | (val))