aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2009-10-11 00:33:51 +0200
committerLars-Peter Clausen <lars@metafoo.de>2010-05-17 19:49:27 +0200
commit2536d500962c564120a1e617d536da7af970f1d6 (patch)
treedae57c2867ddd8a357f8084a9a70d40ae07220b7 /arch
parent0c254d7564232d0a9f2427d1ff2e3736db28c567 (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>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-s3c2410/include/mach/irqs.h22
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 */