Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 76cb44e1 authored by Eric Miao's avatar Eric Miao Committed by Dmitry Torokhov
Browse files

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: default avatarEric Miao <eric.miao@marvell.com>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent 9c60debd
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -357,6 +357,7 @@ static void pxa27x_keypad_config(struct pxa27x_keypad *keypad)


	keypad_writel(KPC, kpc | KPC_RE_ZERO_DEB);
	keypad_writel(KPC, kpc | KPC_RE_ZERO_DEB);
	keypad_writel(KPREC, DEFAULT_KPREC);
	keypad_writel(KPREC, DEFAULT_KPREC);
	keypad_writel(KPKDI, pdata->debounce_interval);
}
}


static int pxa27x_keypad_open(struct input_dev *dev)
static int pxa27x_keypad_open(struct input_dev *dev)
+6 −0
Original line number Original line Diff line number Diff line
@@ -19,6 +19,9 @@
 *
 *
 * 3. rotary can be either interpreted as a relative input event (e.g.
 * 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)
 *    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 {
struct pxa27x_keypad_platform_data {


@@ -43,6 +46,9 @@ struct pxa27x_keypad_platform_data {
	int		rotary1_rel_code;
	int		rotary1_rel_code;
	int		rotary1_up_key;
	int		rotary1_up_key;
	int		rotary1_down_key;
	int		rotary1_down_key;

	/* key debounce interval */
	unsigned int	debounce_interval;
};
};


#define KEY(row, col, val)	(((row) << 28) | ((col) << 24) | (val))
#define KEY(row, col, val)	(((row) << 28) | ((col) << 24) | (val))