diff options
author | Mike Turquette <mturquette@ti.com> | 2010-09-30 02:38:01 -0400 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2010-10-13 10:49:26 -0400 |
commit | 9a34bc61160167319fcfa59842cc0373487d533b (patch) | |
tree | 9f49f555ab0e0f3d5081e404ff91ab110db82a4b | |
parent | f8038c425148ddd50c7e7223a9a6e71ce5f7e42d (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.c | 4 |
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 */ |