]> err.no Git - linux-2.6/commitdiff
Input: pxa27x_keypad - add debounce_interval to the keypad platform data
authorEric Miao <eric.y.miao@gmail.com>
Thu, 31 Jan 2008 05:59:23 +0000 (00:59 -0500)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 31 Jan 2008 05:59:23 +0000 (00:59 -0500)
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>
drivers/input/keyboard/pxa27x_keypad.c
include/asm-arm/arch-pxa/pxa27x_keypad.h

index ceaf1e0ab5407886cf4c3e391c81ec6be34964d4..6224c2fb3b65981aec7e6e8386b587d19ebfaf18 100644 (file)
@@ -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)
index 6b832329ebc27c167f595ddedc815f9b7d6f8a5f..644f7609b523f7fd617cbf291054e2aae5a991fe 100644 (file)
@@ -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))