Linux-2.6.12-rc2
[linux-2.6.git] / include / asm-arm / irq.h
1 #ifndef __ASM_ARM_IRQ_H
2 #define __ASM_ARM_IRQ_H
3
4 #include <asm/arch/irqs.h>
5
6 #ifndef irq_canonicalize
7 #define irq_canonicalize(i)     (i)
8 #endif
9
10 #ifndef NR_IRQS
11 #define NR_IRQS 128
12 #endif
13
14 /*
15  * Use this value to indicate lack of interrupt
16  * capability
17  */
18 #ifndef NO_IRQ
19 #define NO_IRQ  ((unsigned int)(-1))
20 #endif
21
22 struct irqaction;
23
24 extern void disable_irq_nosync(unsigned int);
25 extern void disable_irq(unsigned int);
26 extern void enable_irq(unsigned int);
27
28 #define __IRQT_FALEDGE  (1 << 0)
29 #define __IRQT_RISEDGE  (1 << 1)
30 #define __IRQT_LOWLVL   (1 << 2)
31 #define __IRQT_HIGHLVL  (1 << 3)
32
33 #define IRQT_NOEDGE     (0)
34 #define IRQT_RISING     (__IRQT_RISEDGE)
35 #define IRQT_FALLING    (__IRQT_FALEDGE)
36 #define IRQT_BOTHEDGE   (__IRQT_RISEDGE|__IRQT_FALEDGE)
37 #define IRQT_LOW        (__IRQT_LOWLVL)
38 #define IRQT_HIGH       (__IRQT_HIGHLVL)
39 #define IRQT_PROBE      (1 << 4)
40
41 int set_irq_type(unsigned int irq, unsigned int type);
42 void disable_irq_wake(unsigned int irq);
43 void enable_irq_wake(unsigned int irq);
44 int setup_irq(unsigned int, struct irqaction *);
45
46 struct irqaction;
47 struct pt_regs;
48 int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *);
49
50 #endif
51