s3c24xx: Add support for board IRQs
authorLars-Peter Clausen <lars@metafoo.de>
Sat, 10 Oct 2009 22:33:51 +0000 (00:33 +0200)
committerLars-Peter Clausen <lars@metafoo.de>
Mon, 17 May 2010 17:49:27 +0000 (19:49 +0200)
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>
arch/arm/mach-s3c2410/include/mach/irqs.h

index 6c12c63..04c59ab 100644 (file)
 #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. */
 /* 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 */