mirror of https://gitee.com/openkylin/linux.git
71 lines
1.7 KiB
C
71 lines
1.7 KiB
C
|
#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);
|
||
|
#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_ */
|