summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-sa1100/irq.c
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2006-05-06 12:26:30 +0200
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-05-06 12:26:30 +0200
commit19ca5d27e15c10d8529984ecd98dcba2637edcd2 (patch)
treeb4ad4055362306c184a12cdf040b0ce515de25e9 /arch/arm/mach-sa1100/irq.c
parent[TCP]: Fix snd_cwnd adjustments in tcp_highspeed.c (diff)
downloadlinux-19ca5d27e15c10d8529984ecd98dcba2637edcd2.tar.xz
linux-19ca5d27e15c10d8529984ecd98dcba2637edcd2.zip
[ARM] Allow SA1100 RTC alarm to be configured for wakeup
The SA1100 RTC alarm can be configured to wake up the CPU from sleep mode, and the RTC driver has been using the API to configure this mode. Unfortunately, the code was which sets the required bit in the hardware was missing. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-sa1100/irq.c')
-rw-r--r--arch/arm/mach-sa1100/irq.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-sa1100/irq.c b/arch/arm/mach-sa1100/irq.c
index c131a5201b5b..b3a56024182e 100644
--- a/arch/arm/mach-sa1100/irq.c
+++ b/arch/arm/mach-sa1100/irq.c
@@ -199,10 +199,26 @@ static void sa1100_unmask_irq(unsigned int irq)
ICMR |= (1 << irq);
}
+/*
+ * Apart form GPIOs, only the RTC alarm can be a wakeup event.
+ */
+static int sa1100_set_wake(unsigned int irq, unsigned int on)
+{
+ if (irq == IRQ_RTCAlrm) {
+ if (on)
+ PWER |= PWER_RTC;
+ else
+ PWER &= ~PWER_RTC;
+ return 0;
+ }
+ return -EINVAL;
+}
+
static struct irqchip sa1100_normal_chip = {
.ack = sa1100_mask_irq,
.mask = sa1100_mask_irq,
.unmask = sa1100_unmask_irq,
+ .set_wake = sa1100_set_wake,
};
static struct resource irq_resource = {