diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 15:20:36 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 15:20:36 -0700 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /include/asm-h8300/irq.h |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'include/asm-h8300/irq.h')
-rw-r--r-- | include/asm-h8300/irq.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/include/asm-h8300/irq.h b/include/asm-h8300/irq.h new file mode 100644 index 00000000000..5027181ed06 --- /dev/null +++ b/include/asm-h8300/irq.h @@ -0,0 +1,75 @@ +#ifndef _H8300_IRQ_H_ +#define _H8300_IRQ_H_ + +#include <asm/ptrace.h> + +#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 <asm/regs306x.h> +#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 <asm/regs267x.h> +#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_ */ |