[PATCH] IRQ type flags
[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 /*
29  * These correspond with the SA_TRIGGER_* defines, and therefore the
30  * IRQRESOURCE_IRQ_* defines.
31  */
32 #define __IRQT_RISEDGE  (1 << 0)
33 #define __IRQT_FALEDGE  (1 << 1)
34 #define __IRQT_HIGHLVL  (1 << 2)
35 #define __IRQT_LOWLVL   (1 << 3)
36
37 #define IRQT_NOEDGE     (0)
38 #define IRQT_RISING     (__IRQT_RISEDGE)
39 #define IRQT_FALLING    (__IRQT_FALEDGE)
40 #define IRQT_BOTHEDGE   (__IRQT_RISEDGE|__IRQT_FALEDGE)
41 #define IRQT_LOW        (__IRQT_LOWLVL)
42 #define IRQT_HIGH       (__IRQT_HIGHLVL)
43 #define IRQT_PROBE      (1 << 4)
44
45 int set_irq_type(unsigned int irq, unsigned int type);
46 void disable_irq_wake(unsigned int irq);
47 void enable_irq_wake(unsigned int irq);
48 int setup_irq(unsigned int, struct irqaction *);
49
50 struct irqaction;
51 struct pt_regs;
52 int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *);
53
54 extern void migrate_irqs(void);
55 #endif
56