aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Turquette <mturquette@ti.com>2010-09-30 02:38:01 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2010-10-13 10:49:26 -0400
commit9a34bc61160167319fcfa59842cc0373487d533b (patch)
tree9f49f555ab0e0f3d5081e404ff91ab110db82a4b
parentf8038c425148ddd50c7e7223a9a6e71ce5f7e42d (diff)
Input: omap4-keypad - wake-up on events & long presses
Program keyboard controller to generate a wake-up request on events and on long key presses. It will not generate wake-up requests on timeouts since driver code does not handle them. This allows keyboard to wake-up OMAP from suspend. Signed-off-by: Mike Turquette <mturquette@ti.com> Signed-off-by: Abraham Arce <x0066660@ti.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
-rw-r--r--drivers/input/keyboard/omap4-keypad.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/input/keyboard/omap4-keypad.c b/drivers/input/keyboard/omap4-keypad.c
index 07e792e960f1..45bd0977d006 100644
--- a/drivers/input/keyboard/omap4-keypad.c
+++ b/drivers/input/keyboard/omap4-keypad.c
@@ -54,6 +54,8 @@
54#define OMAP4_DEF_IRQENABLE_EVENTEN (1 << 0) 54#define OMAP4_DEF_IRQENABLE_EVENTEN (1 << 0)
55#define OMAP4_DEF_IRQENABLE_LONGKEY (1 << 1) 55#define OMAP4_DEF_IRQENABLE_LONGKEY (1 << 1)
56#define OMAP4_DEF_IRQENABLE_TIMEOUTEN (1 << 2) 56#define OMAP4_DEF_IRQENABLE_TIMEOUTEN (1 << 2)
57#define OMAP4_DEF_WUP_EVENT_ENA (1 << 0)
58#define OMAP4_DEF_WUP_LONG_KEY_ENA (1 << 1)
57#define OMAP4_DEF_CTRL_NOSOFTMODE (1 << 1) 59#define OMAP4_DEF_CTRL_NOSOFTMODE (1 << 1)
58#define OMAP4_DEF_CTRLPTVVALUE (1 << 2) 60#define OMAP4_DEF_CTRLPTVVALUE (1 << 2)
59#define OMAP4_DEF_CTRLPTV (1 << 1) 61#define OMAP4_DEF_CTRLPTV (1 << 1)
@@ -88,6 +90,8 @@ static void __devinit omap4_keypad_config(struct omap4_keypad *keypad_data)
88 keypad_data->base + OMAP4_KBD_IRQSTATUS); 90 keypad_data->base + OMAP4_KBD_IRQSTATUS);
89 __raw_writel(OMAP4_DEF_IRQENABLE_EVENTEN | OMAP4_DEF_IRQENABLE_LONGKEY, 91 __raw_writel(OMAP4_DEF_IRQENABLE_EVENTEN | OMAP4_DEF_IRQENABLE_LONGKEY,
90 keypad_data->base + OMAP4_KBD_IRQENABLE); 92 keypad_data->base + OMAP4_KBD_IRQENABLE);
93 __raw_writel(OMAP4_DEF_WUP_EVENT_ENA | OMAP4_DEF_WUP_LONG_KEY_ENA,
94 keypad_data->base + OMAP4_KBD_WAKEUPENABLE);
91} 95}
92 96
93/* Interrupt handler */ 97/* Interrupt handler */