linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / arm / mach-sa1100 / irq.c
index b55b90a..c131a52 100644 (file)
  */
 #include <linux/init.h>
 #include <linux/module.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
 #include <linux/ioport.h>
 #include <linux/ptrace.h>
 #include <linux/sysdev.h>
 
 #include <asm/hardware.h>
+#include <asm/irq.h>
 #include <asm/mach/irq.h>
 
 #include "generic.h"
@@ -95,8 +94,7 @@ static int sa1100_low_gpio_wake(unsigned int irq, unsigned int on)
        return 0;
 }
 
-static struct irq_chip sa1100_low_gpio_chip = {
-       .name           = "GPIO-l",
+static struct irqchip sa1100_low_gpio_chip = {
        .ack            = sa1100_low_gpio_ack,
        .mask           = sa1100_low_gpio_mask,
        .unmask         = sa1100_low_gpio_unmask,
@@ -179,8 +177,7 @@ static int sa1100_high_gpio_wake(unsigned int irq, unsigned int on)
        return 0;
 }
 
-static struct irq_chip sa1100_high_gpio_chip = {
-       .name           = "GPIO-h",
+static struct irqchip sa1100_high_gpio_chip = {
        .ack            = sa1100_high_gpio_ack,
        .mask           = sa1100_high_gpio_mask,
        .unmask         = sa1100_high_gpio_unmask,
@@ -202,27 +199,10 @@ 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 irq_chip sa1100_normal_chip = {
-       .name           = "SC",
+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 = {