23 #include <linux/module.h>
26 #include <linux/device.h>
29 #include <mach/hardware.h>
34 #include <mach/regs-irq.h>
35 #include <mach/regs-gpio.h>
37 static void ks8695_irq_mask(
struct irq_data *
d)
42 inten &= ~(1 << d->
irq);
47 static void ks8695_irq_unmask(
struct irq_data *
d)
52 inten |= (1 << d->
irq);
57 static void ks8695_irq_ack(
struct irq_data *
d)
63 static struct irq_chip ks8695_irq_level_chip;
64 static struct irq_chip ks8695_irq_edge_chip;
67 static int ks8695_irq_set_type(
struct irq_data *d,
unsigned int type)
70 unsigned short level_triggered = 0;
117 if (level_triggered) {
118 irq_set_chip_and_handler(d->
irq, &ks8695_irq_level_chip,
122 irq_set_chip_and_handler(d->
irq, &ks8695_irq_edge_chip,
130 static struct irq_chip ks8695_irq_level_chip = {
131 .irq_ack = ks8695_irq_mask,
132 .irq_mask = ks8695_irq_mask,
133 .irq_unmask = ks8695_irq_unmask,
134 .irq_set_type = ks8695_irq_set_type,
137 static struct irq_chip ks8695_irq_edge_chip = {
138 .irq_ack = ks8695_irq_ack,
139 .irq_mask = ks8695_irq_mask,
140 .irq_unmask = ks8695_irq_unmask,
141 .irq_set_type = ks8695_irq_set_type,
152 for (irq = 0; irq <
NR_IRQS; irq++) {
161 irq_set_chip_and_handler(irq,
162 &ks8695_irq_level_chip,
170 irq_set_chip_and_handler(irq,
171 &ks8695_irq_edge_chip,