[ARM] Allow SA1100 RTC alarm to be configured for wakeup
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Sat, 6 May 2006 10:26:30 +0000 (11:26 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 6 May 2006 10:26:30 +0000 (11:26 +0100)
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>
arch/arm/mach-sa1100/irq.c

index c131a5201b5ba885ba9448381cfaab27ab345634..b3a56024182ee6ac15cc3e679e815661ee7095f4 100644 (file)
@@ -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 = {