#ifndef _H8300_IRQ_H_ #define _H8300_IRQ_H_ #include #if defined(__H8300H__) #define NR_IRQS 64 #define EXT_IRQ0 12 #define EXT_IRQ1 13 #define EXT_IRQ2 14 #define EXT_IRQ3 15 #define EXT_IRQ4 16 #define EXT_IRQ5 17 #define EXT_IRQ6 18 #define EXT_IRQ7 19 #define EXT_IRQS 5 #include #define h8300_clear_isr(irq) \ do { \ if (irq >= EXT_IRQ0 && irq <= EXT_IRQ5) \ *(volatile unsigned char *)ISR &= ~(1 << (irq - EXT_IRQ0)); \ } while(0) #define IER_REGS *(volatile unsigned char *)IER #endif #if defined(CONFIG_CPU_H8S) #define NR_IRQS 128 #define EXT_IRQ0 16 #define EXT_IRQ1 17 #define EXT_IRQ2 18 #define EXT_IRQ3 19 #define EXT_IRQ4 20 #define EXT_IRQ5 21 #define EXT_IRQ6 22 #define EXT_IRQ7 23 #define EXT_IRQ8 24 #define EXT_IRQ9 25 #define EXT_IRQ10 26 #define EXT_IRQ11 27 #define EXT_IRQ12 28 #define EXT_IRQ13 29 #define EXT_IRQ14 30 #define EXT_IRQ15 31 #define EXT_IRQS 15 #include #define h8300_clear_isr(irq) \ do { \ if (irq >= EXT_IRQ0 && irq <= EXT_IRQ15) \ *(volatile unsigned short *)ISR &= ~(1 << (irq - EXT_IRQ0)); \ } while(0) #define IER_REGS *(volatile unsigned short *)IER #endif static __inline__ int irq_canonicalize(int irq) { return irq; } extern void enable_irq(unsigned int); extern void disable_irq(unsigned int); /* * Some drivers want these entry points */ #define enable_irq_nosync(x) enable_irq(x) #define disable_irq_nosync(x) disable_irq(x) struct irqaction; struct pt_regs; int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); #endif /* _H8300_IRQ_H_ */