diff options
author | Martin Blumenstingl <martin.blumenstingl@googlemail.com> | 2021-01-09 20:53:51 +0100 |
---|---|---|
committer | Thomas Bogendoerfer <tsbogend@alpha.franken.de> | 2021-01-13 11:06:12 +0100 |
commit | e91fd6ddb72b2652177c0e015b415fbe2839cf6a (patch) | |
tree | 2336ed5f6f5061353f7bef141dc18e7c8e1605c4 /arch/mips/lantiq | |
parent | 6b5ea5b7a7fa35582b1a28bd8853427fb03e1e29 (diff) | |
download | linux-e91fd6ddb72b2652177c0e015b415fbe2839cf6a.tar.gz linux-e91fd6ddb72b2652177c0e015b415fbe2839cf6a.tar.bz2 linux-e91fd6ddb72b2652177c0e015b415fbe2839cf6a.zip |
MIPS: lantiq: irq: register the interrupt controllers with irqchip_init
Add support for more interrupt controllers by switching from
of_irq_init() to irqchip_init() in Lantiq's arch_init_irq(). This
requires switching the ICU interrupt controller to use
IRQCHIP_DECLARE(), like a real irqchip driver would do.
This is needed for future changes when new irqchip drivers are
implemented:
- a dedicated driver for the EIU interrupt controller
- a driver for the MSI PIC (Programmable Interrupt Controller) found on
VRX200 and newer SoCs
- ..or any other driver which uses IRQCHIP_DECLARE
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Diffstat (limited to 'arch/mips/lantiq')
-rw-r--r-- | arch/mips/lantiq/irq.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/mips/lantiq/irq.c b/arch/mips/lantiq/irq.c index 43c2f271e6ab..acfbdc01b0ac 100644 --- a/arch/mips/lantiq/irq.c +++ b/arch/mips/lantiq/irq.c @@ -8,6 +8,7 @@ #include <linux/interrupt.h> #include <linux/ioport.h> #include <linux/sched.h> +#include <linux/irqchip.h> #include <linux/irqdomain.h> #include <linux/of_platform.h> #include <linux/of_address.h> @@ -422,12 +423,9 @@ unsigned int get_c0_compare_int(void) return CP0_LEGACY_COMPARE_IRQ; } -static const struct of_device_id of_irq_ids[] __initconst = { - { .compatible = "lantiq,icu", .data = icu_of_init }, - {}, -}; +IRQCHIP_DECLARE(lantiq_icu, "lantiq,icu", icu_of_init); void __init arch_init_irq(void) { - of_irq_init(of_irq_ids); + irqchip_init(); } |