@@ -1,5 +1,6 @@
config S3C24XX_IRQ
bool
+ select IRQ_DOMAIN
config VERSATILE_FPGA_IRQ
bool
@@ -25,6 +25,8 @@
#include <linux/device.h>
#include <linux/syscore_ops.h>
+#include <linux/irqdomain.h>
+
#include <asm/irq.h>
#include <asm/mach/irq.h>
@@ -667,6 +669,18 @@ void __init s3c24xx_init_irq(void)
set_irq_flags(irqno, IRQF_VALID);
}
+ /* basic interrupt register */
+ irq_domain_add_legacy(NULL, 32, IRQ_EINT0, 0, &irq_domain_simple_ops,
+ NULL);
+
+ /* extint register, irqs begin at bit4 */
+ irq_domain_add_legacy(NULL, 20, IRQ_EINT4, 4, &irq_domain_simple_ops,
+ NULL);
+
+ /* subint register, 29 to fit subints of all SoCs */
+ irq_domain_add_legacy(NULL, 29, IRQ_S3CUART_RX0, 0,
+ &irq_domain_simple_ops, NULL);
+
irqdbf("s3c2410: registered interrupt handlers\n");
}
Add irqdomains for the three register sets in use for base, external and sub-interrupts. This also pouplates the hwirq value for further improvements. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- drivers/irqchip/Kconfig | 1 + drivers/irqchip/irq-s3c24xx.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 0 deletions(-)