diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2009-10-11 00:33:51 +0200 |
---|---|---|
committer | Lars-Peter Clausen <lars@metafoo.de> | 2010-05-17 19:49:27 +0200 |
commit | 2536d500962c564120a1e617d536da7af970f1d6 (patch) | |
tree | dae57c2867ddd8a357f8084a9a70d40ae07220b7 | |
parent | 0c254d7564232d0a9f2427d1ff2e3736db28c567 (diff) |
s3c24xx: Add support for board IRQs
Some boards have a need for a set of extra IRQ numbers, for example some
multifunction devices which do irq demultiplexing require them.
This patch adds S3C2410_BOARD_NR_IRQS which specifies the number of extra board
IRQs. Board specific code would use S3C2410_BOARD_IRQ_START to get the number of
it's first irq.
Since it is possible to support a multiple boards with a single kernel and
there is no easy way to set a CONFIG option to multiple values and only use the
maximum each board which needs board IRQs has do be explicitly added to irqs.h
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
-rw-r--r-- | arch/arm/mach-s3c2410/include/mach/irqs.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/arch/arm/mach-s3c2410/include/mach/irqs.h b/arch/arm/mach-s3c2410/include/mach/irqs.h index 6c12c6312ad..04c59ab489f 100644 --- a/arch/arm/mach-s3c2410/include/mach/irqs.h +++ b/arch/arm/mach-s3c2410/include/mach/irqs.h @@ -153,9 +153,9 @@ #define IRQ_S3C2443_AC97 S3C2410_IRQSUB(28) #ifdef CONFIG_CPU_S3C2443 -#define NR_IRQS (IRQ_S3C2443_AC97+1) +#define S3C2410_NR_INTERNAL_IRQS (IRQ_S3C2443_AC97+1) #else -#define NR_IRQS (IRQ_S3C2440_AC97+1) +#define S3C2410_NR_INTERNAL_IRQS (IRQ_S3C2440_AC97+1) #endif /* compatibility define. */ @@ -173,4 +173,22 @@ /* Our FIQs are routable from IRQ_EINT0 to IRQ_ADCPARENT */ #define FIQ_START IRQ_EINT0 +/* Board specific IRQs + * If your board needs a extra set of IRQ numbers add it to the list here. + * Make sure that the numbers are kept in descending order, so if support for + * multiple boards is compiled in the maximum will be used and there are enough + * IRQ numbers available for each board. + */ + +#if 0 +/* Number of board specific irqs go here */ +#else +#define IRQ_BOARD_NR 0 +#endif + +#define IRQ_BOARD_START S3C2410_NR_INTERNAL_IRQS +#define IRQ_BOARD_END (IRQ_BOARD_START + IRQ_BOARD_NR) + +#define NR_IRQS IRQ_BOARD_END + #endif /* __ASM_ARCH_IRQ_H */ |