summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mmp/pxa168.c
diff options
context:
space:
mode:
authorMark F. Brown <mark.brown314@gmail.com>2010-09-04 00:28:10 +0200
committerEric Miao <eric.y.miao@gmail.com>2010-10-09 11:07:20 +0200
commitab5739a17953b22480dc7caf6603380d563c53fc (patch)
tree6ff08440ce7e9c03e2b102943e928249c9d58eb4 /arch/arm/mach-mmp/pxa168.c
parentARM: pxa27x_keypad: added wakeup event handler for keypad interrupts (diff)
downloadlinux-ab5739a17953b22480dc7caf6603380d563c53fc.tar.xz
linux-ab5739a17953b22480dc7caf6603380d563c53fc.zip
ARM: pxa168: added keypad wake clear event support for platform
Signed-off-by: Mark F. Brown <mark.brown314@gmail.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Diffstat (limited to 'arch/arm/mach-mmp/pxa168.c')
-rw-r--r--arch/arm/mach-mmp/pxa168.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-mmp/pxa168.c b/arch/arm/mach-mmp/pxa168.c
index 2fa16fb4503c..72b4e7631583 100644
--- a/arch/arm/mach-mmp/pxa168.c
+++ b/arch/arm/mach-mmp/pxa168.c
@@ -136,6 +136,16 @@ struct sys_timer pxa168_timer = {
.init = pxa168_timer_init,
};
+void pxa168_clear_keypad_wakeup(void)
+{
+ uint32_t val;
+ uint32_t mask = APMU_PXA168_KP_WAKE_CLR;
+
+ /* wake event clear is needed in order to clear keypad interrupt */
+ val = __raw_readl(APMU_WAKE_CLR);
+ __raw_writel(val | mask, APMU_WAKE_CLR);
+}
+
/* on-chip devices */
PXA168_DEVICE(uart1, "pxa2xx-uart", 0, UART1, 0xd4017000, 0x30, 21, 22);
PXA168_DEVICE(uart2, "pxa2xx-uart", 1, UART2, 0xd4018000, 0x30, 23, 24);