xref: /linux/drivers/irqchip/Kconfig (revision 7fc2cd2e4b398c57c9cf961cfea05eadbf34c05c)
1# SPDX-License-Identifier: GPL-2.0-only
2menu "IRQ chip support"
3
4config IRQCHIP
5	def_bool y
6	depends on (OF_IRQ || ACPI_GENERIC_GSI)
7
8config ARM_GIC
9	bool
10	depends on OF
11	select IRQ_DOMAIN_HIERARCHY
12	select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
13
14config ARM_GIC_PM
15	bool
16	depends on PM
17	select ARM_GIC
18
19config ARM_GIC_MAX_NR
20	int
21	depends on ARM_GIC
22	default 2 if ARCH_REALVIEW
23	default 1
24
25config ARM_GIC_V2M
26	bool
27	depends on PCI
28	select ARM_GIC
29	select IRQ_MSI_LIB
30	select PCI_MSI
31	select IRQ_MSI_IOMMU
32
33config GIC_NON_BANKED
34	bool
35
36config ARM_GIC_V3
37	bool
38	select IRQ_DOMAIN_HIERARCHY
39	select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
40	select HAVE_ARM_SMCCC_DISCOVERY
41	select IRQ_MSI_IOMMU
42
43config ARM_GIC_ITS_PARENT
44	bool
45
46config ARM_GIC_V3_ITS
47	bool
48	select GENERIC_MSI_IRQ
49	select IRQ_MSI_LIB
50	select ARM_GIC_ITS_PARENT
51	default ARM_GIC_V3
52	select IRQ_MSI_IOMMU
53
54config ARM_GIC_V3_ITS_FSL_MC
55	bool
56	depends on ARM_GIC_V3_ITS
57	depends on FSL_MC_BUS
58	default ARM_GIC_V3_ITS
59
60config ARM_GIC_V5
61	bool
62	select IRQ_DOMAIN_HIERARCHY
63	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
64	select GENERIC_MSI_IRQ
65	select IRQ_MSI_LIB
66	select ARM_GIC_ITS_PARENT
67
68config ARM_NVIC
69	bool
70	select IRQ_DOMAIN_HIERARCHY
71	select GENERIC_IRQ_CHIP
72
73config ARM_VIC
74	bool
75	select IRQ_DOMAIN
76
77config ARM_VIC_NR
78	int
79	default 4 if ARCH_S5PV210
80	default 2
81	depends on ARM_VIC
82	help
83	  The maximum number of VICs available in the system, for
84	  power management.
85
86config IRQ_MSI_LIB
87	bool
88	select GENERIC_MSI_IRQ
89
90config ARMADA_370_XP_IRQ
91	bool
92	select GENERIC_IRQ_CHIP
93	select PCI_MSI if PCI
94	select IRQ_MSI_LIB if PCI
95	select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
96
97config ALPINE_MSI
98	bool
99	depends on PCI
100	select PCI_MSI
101	select IRQ_MSI_LIB
102	select GENERIC_IRQ_CHIP
103
104config AL_FIC
105	bool "Amazon's Annapurna Labs Fabric Interrupt Controller"
106	depends on OF
107	depends on HAS_IOMEM
108	select GENERIC_IRQ_CHIP
109	select IRQ_DOMAIN
110	help
111	  Support Amazon's Annapurna Labs Fabric Interrupt Controller.
112
113config ATMEL_AIC_IRQ
114	bool
115	select GENERIC_IRQ_CHIP
116	select IRQ_DOMAIN
117	select SPARSE_IRQ
118
119config ATMEL_AIC5_IRQ
120	bool
121	select GENERIC_IRQ_CHIP
122	select IRQ_DOMAIN
123	select SPARSE_IRQ
124
125config I8259
126	bool
127	select IRQ_DOMAIN
128
129config BCM2712_MIP
130	tristate "Broadcom BCM2712 MSI-X Interrupt Peripheral support"
131	depends on ARCH_BRCMSTB || ARCH_BCM2835 || COMPILE_TEST
132	default m if ARCH_BRCMSTB || ARCH_BCM2835
133	depends on ARM_GIC
134	select GENERIC_IRQ_CHIP
135	select IRQ_DOMAIN_HIERARCHY
136	select GENERIC_MSI_IRQ
137	select IRQ_MSI_LIB
138	help
139	  Enable support for the Broadcom BCM2712 MSI-X target peripheral
140	  (MIP) needed by brcmstb PCIe to handle MSI-X interrupts on
141	  Raspberry Pi 5.
142
143	  If unsure say n.
144
145config BCM6345_L1_IRQ
146	bool
147	select GENERIC_IRQ_CHIP
148	select IRQ_DOMAIN
149	select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
150
151config BCM7038_L1_IRQ
152	tristate "Broadcom STB 7038-style L1/L2 interrupt controller driver"
153	depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
154	default ARCH_BRCMSTB || BMIPS_GENERIC
155	select GENERIC_IRQ_CHIP
156	select IRQ_DOMAIN
157	select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
158
159config BCM7120_L2_IRQ
160	tristate "Broadcom STB 7120-style L2 interrupt controller driver"
161	depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
162	default ARCH_BRCMSTB || BMIPS_GENERIC
163	select GENERIC_IRQ_CHIP
164	select IRQ_DOMAIN
165
166config BRCMSTB_L2_IRQ
167	tristate "Broadcom STB generic L2 interrupt controller driver"
168	depends on ARCH_BCM2835 || ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
169	default ARCH_BCM2835 || ARCH_BRCMSTB || BMIPS_GENERIC
170	select GENERIC_IRQ_CHIP
171	select IRQ_DOMAIN
172
173config DAVINCI_CP_INTC
174	bool
175	select GENERIC_IRQ_CHIP
176	select IRQ_DOMAIN
177
178config DW_APB_ICTL
179	bool
180	select GENERIC_IRQ_CHIP
181	select IRQ_DOMAIN_HIERARCHY
182
183config ECONET_EN751221_INTC
184	bool
185	select GENERIC_IRQ_CHIP
186	select IRQ_DOMAIN
187
188config FARADAY_FTINTC010
189	bool
190	select IRQ_DOMAIN
191	select SPARSE_IRQ
192
193config HISILICON_IRQ_MBIGEN
194	bool
195	select ARM_GIC_V3
196	select ARM_GIC_V3_ITS
197
198config IMGPDC_IRQ
199	bool
200	select GENERIC_IRQ_CHIP
201	select IRQ_DOMAIN
202
203config IXP4XX_IRQ
204	bool
205	select IRQ_DOMAIN
206	select SPARSE_IRQ
207
208config LAN966X_OIC
209	tristate "Microchip LAN966x OIC Support"
210	depends on MCHP_LAN966X_PCI || COMPILE_TEST
211	select GENERIC_IRQ_CHIP
212	select IRQ_DOMAIN
213	help
214	  Enable support for the LAN966x Outbound Interrupt Controller.
215	  This controller is present on the Microchip LAN966x PCI device and
216	  maps the internal interrupts sources to PCIe interrupt.
217
218	  To compile this driver as a module, choose M here: the module
219	  will be called irq-lan966x-oic.
220
221config MADERA_IRQ
222	tristate
223
224config IRQ_MIPS_CPU
225	bool
226	select GENERIC_IRQ_CHIP
227	select GENERIC_IRQ_IPI if SMP && SYS_SUPPORTS_MULTITHREADING
228	select IRQ_DOMAIN
229	select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
230
231config CLPS711X_IRQCHIP
232	bool
233	depends on ARCH_CLPS711X
234	select IRQ_DOMAIN
235	select SPARSE_IRQ
236	default y
237
238config OMPIC
239	bool
240
241config OR1K_PIC
242	bool
243	select IRQ_DOMAIN
244
245config OMAP_IRQCHIP
246	bool
247	select GENERIC_IRQ_CHIP
248	select IRQ_DOMAIN
249
250config ORION_IRQCHIP
251	bool
252	select IRQ_DOMAIN
253
254config PIC32_EVIC
255	bool
256	select GENERIC_IRQ_CHIP
257	select IRQ_DOMAIN
258
259config JCORE_AIC
260	bool "J-Core integrated AIC" if COMPILE_TEST
261	depends on OF
262	select IRQ_DOMAIN
263	help
264	  Support for the J-Core integrated AIC.
265
266config RDA_INTC
267	bool
268	select IRQ_DOMAIN
269
270config RENESAS_INTC_IRQPIN
271	bool "Renesas INTC External IRQ Pin Support" if COMPILE_TEST
272	select IRQ_DOMAIN
273	help
274	  Enable support for the Renesas Interrupt Controller for external
275	  interrupt pins, as found on SH/R-Mobile and R-Car Gen1 SoCs.
276
277config RENESAS_IRQC
278	bool "Renesas R-Mobile APE6, R-Car Gen{2,3} and RZ/G{1,2} IRQC support" if COMPILE_TEST
279	select GENERIC_IRQ_CHIP
280	select IRQ_DOMAIN
281	help
282	  Enable support for the Renesas Interrupt Controller for external
283	  devices, as found on R-Mobile APE6, R-Car Gen{2,3} and RZ/G{1,2} SoCs.
284
285config RENESAS_RZA1_IRQC
286	bool "Renesas RZ/A1 IRQC support" if COMPILE_TEST
287	select IRQ_DOMAIN_HIERARCHY
288	help
289	  Enable support for the Renesas RZ/A1 Interrupt Controller, to use up
290	  to 8 external interrupts with configurable sense select.
291
292config RENESAS_RZG2L_IRQC
293	bool "Renesas RZ/G2L (and alike SoC) IRQC support" if COMPILE_TEST
294	select GENERIC_IRQ_CHIP
295	select IRQ_DOMAIN_HIERARCHY
296	help
297	  Enable support for the Renesas RZ/G2L (and alike SoC) Interrupt Controller
298	  for external devices.
299
300config RENESAS_RZV2H_ICU
301	bool "Renesas RZ/V2H(P) ICU support" if COMPILE_TEST
302	select GENERIC_IRQ_CHIP
303	select IRQ_DOMAIN_HIERARCHY
304	help
305	  Enable support for the Renesas RZ/V2H(P) Interrupt Control Unit (ICU)
306
307config SL28CPLD_INTC
308	bool "Kontron sl28cpld IRQ controller"
309	depends on MFD_SL28CPLD=y || COMPILE_TEST
310	select REGMAP_IRQ
311	help
312	  Interrupt controller driver for the board management controller
313	  found on the Kontron sl28 CPLD.
314
315config ST_IRQCHIP
316	bool
317	select REGMAP
318	select MFD_SYSCON
319	help
320	  Enables SysCfg Controlled IRQs on STi based platforms.
321
322config SUN4I_INTC
323	bool
324
325config SUN6I_R_INTC
326	bool
327	select IRQ_DOMAIN_HIERARCHY
328	select IRQ_FASTEOI_HIERARCHY_HANDLERS
329
330config SUNXI_NMI_INTC
331	bool
332	select GENERIC_IRQ_CHIP
333
334config TB10X_IRQC
335	bool
336	select IRQ_DOMAIN
337	select GENERIC_IRQ_CHIP
338
339config TS4800_IRQ
340	tristate "TS-4800 IRQ controller"
341	select IRQ_DOMAIN
342	depends on HAS_IOMEM
343	depends on SOC_IMX51 || COMPILE_TEST
344	help
345	  Support for the TS-4800 FPGA IRQ controller
346
347config VERSATILE_FPGA_IRQ
348	bool
349	select IRQ_DOMAIN
350
351config VERSATILE_FPGA_IRQ_NR
352       int
353       default 4
354       depends on VERSATILE_FPGA_IRQ
355
356config XTENSA_MX
357	bool
358	select IRQ_DOMAIN
359	select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
360
361config XILINX_INTC
362	bool "Xilinx Interrupt Controller IP"
363	depends on OF_ADDRESS
364	select IRQ_DOMAIN
365	help
366	  Support for the Xilinx Interrupt Controller IP core.
367	  This is used as a primary controller with MicroBlaze and can also
368	  be used as a secondary chained controller on other platforms.
369
370config IRQ_CROSSBAR
371	bool
372	help
373	  Support for a CROSSBAR ip that precedes the main interrupt controller.
374	  The primary irqchip invokes the crossbar's callback which inturn allocates
375	  a free irq and configures the IP. Thus the peripheral interrupts are
376	  routed to one of the free irqchip interrupt lines.
377
378config KEYSTONE_IRQ
379	tristate "Keystone 2 IRQ controller IP"
380	depends on ARCH_KEYSTONE
381	help
382		Support for Texas Instruments Keystone 2 IRQ controller IP which
383		is part of the Keystone 2 IPC mechanism
384
385config MIPS_GIC
386	bool
387	select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
388	select GENERIC_IRQ_IPI if SMP
389	select IRQ_DOMAIN_HIERARCHY
390	select MIPS_CM
391
392config INGENIC_IRQ
393	bool
394	depends on MACH_INGENIC
395	default y
396
397config INGENIC_TCU_IRQ
398	bool "Ingenic JZ47xx TCU interrupt controller"
399	default MACH_INGENIC
400	depends on MIPS || COMPILE_TEST
401	select MFD_SYSCON
402	select GENERIC_IRQ_CHIP
403	help
404	  Support for interrupts in the Timer/Counter Unit (TCU) of the Ingenic
405	  JZ47xx SoCs.
406
407	  If unsure, say N.
408
409config IMX_GPCV2
410	bool
411	select IRQ_DOMAIN
412	help
413	  Enables the wakeup IRQs for IMX platforms with GPCv2 block
414
415config IRQ_MXS
416	def_bool y if MACH_ASM9260 || ARCH_MXS
417	select IRQ_DOMAIN
418	select STMP_DEVICE
419
420config MSCC_OCELOT_IRQ
421	bool
422	select IRQ_DOMAIN
423	select GENERIC_IRQ_CHIP
424
425config MVEBU_GICP
426	select IRQ_MSI_LIB
427	bool
428
429config MVEBU_ICU
430	bool
431
432config MVEBU_ODMI
433	bool
434	select IRQ_MSI_LIB
435	select GENERIC_MSI_IRQ
436
437config MVEBU_PIC
438	bool
439
440config MVEBU_SEI
441        bool
442
443config LS_EXTIRQ
444	def_bool y if SOC_LS1021A || ARCH_LAYERSCAPE
445	select MFD_SYSCON
446
447config LS_SCFG_MSI
448	def_bool y if SOC_LS1021A || ARCH_LAYERSCAPE
449	select IRQ_MSI_IOMMU
450	depends on PCI_MSI
451	select IRQ_MSI_LIB
452
453config STM32MP_EXTI
454	tristate "STM32MP extended interrupts and event controller"
455	depends on (ARCH_STM32 && !ARM_SINGLE_ARMV7M) || COMPILE_TEST
456	default ARCH_STM32 && !ARM_SINGLE_ARMV7M
457	select IRQ_DOMAIN_HIERARCHY
458	select GENERIC_IRQ_CHIP
459	help
460	  Support STM32MP EXTI (extended interrupts and event) controller.
461
462config STM32_EXTI
463	bool
464	select IRQ_DOMAIN
465	select GENERIC_IRQ_CHIP
466
467config QCOM_IRQ_COMBINER
468	bool "QCOM IRQ combiner support"
469	depends on ARCH_QCOM && ACPI
470	select IRQ_DOMAIN_HIERARCHY
471	help
472	  Say yes here to add support for the IRQ combiner devices embedded
473	  in Qualcomm Technologies chips.
474
475config IRQ_UNIPHIER_AIDET
476	bool "UniPhier AIDET support" if COMPILE_TEST
477	depends on ARCH_UNIPHIER || COMPILE_TEST
478	default ARCH_UNIPHIER
479	select IRQ_DOMAIN_HIERARCHY
480	help
481	  Support for the UniPhier AIDET (ARM Interrupt Detector).
482
483config MESON_IRQ_GPIO
484       tristate "Meson GPIO Interrupt Multiplexer"
485       depends on ARCH_MESON || COMPILE_TEST
486       default ARCH_MESON
487       select IRQ_DOMAIN_HIERARCHY
488       help
489         Support Meson SoC Family GPIO Interrupt Multiplexer
490
491config GOLDFISH_PIC
492       bool "Goldfish programmable interrupt controller"
493       depends on MIPS && (GOLDFISH || COMPILE_TEST)
494       select GENERIC_IRQ_CHIP
495       select IRQ_DOMAIN
496       help
497         Say yes here to enable Goldfish interrupt controller driver used
498         for Goldfish based virtual platforms.
499
500config QCOM_PDC
501	tristate "QCOM PDC"
502	depends on ARCH_QCOM
503	select IRQ_DOMAIN_HIERARCHY
504	help
505	  Power Domain Controller driver to manage and configure wakeup
506	  IRQs for Qualcomm Technologies Inc (QTI) mobile chips.
507
508config QCOM_MPM
509	tristate "QCOM MPM"
510	depends on ARCH_QCOM
511	depends on MAILBOX
512	select IRQ_DOMAIN_HIERARCHY
513	help
514	  MSM Power Manager driver to manage and configure wakeup
515	  IRQs for Qualcomm Technologies Inc (QTI) mobile chips.
516
517config CSKY_MPINTC
518	bool
519	depends on CSKY
520	help
521	  Say yes here to enable C-SKY SMP interrupt controller driver used
522	  for C-SKY SMP system.
523	  In fact it's not mmio map in hardware and it uses ld/st to visit the
524	  controller's register inside CPU.
525
526config CSKY_APB_INTC
527	bool "C-SKY APB Interrupt Controller"
528	depends on CSKY
529	help
530	  Say yes here to enable C-SKY APB interrupt controller driver used
531	  by C-SKY single core SOC system. It uses mmio map apb-bus to visit
532	  the controller's register.
533
534config IMX_IRQSTEER
535	bool "i.MX IRQSTEER support"
536	depends on ARCH_MXC || COMPILE_TEST
537	default ARCH_MXC
538	select IRQ_DOMAIN
539	help
540	  Support for the i.MX IRQSTEER interrupt multiplexer/remapper.
541
542config IMX_INTMUX
543	bool "i.MX INTMUX support" if COMPILE_TEST
544	default y if ARCH_MXC
545	select IRQ_DOMAIN
546	help
547	  Support for the i.MX INTMUX interrupt multiplexer.
548
549config IMX_MU_MSI
550	tristate "i.MX MU used as MSI controller"
551	depends on OF && HAS_IOMEM
552	depends on ARCH_MXC || COMPILE_TEST
553	depends on ARM || ARM64
554	default m if ARCH_MXC
555	select IRQ_DOMAIN
556	select IRQ_DOMAIN_HIERARCHY
557	select GENERIC_MSI_IRQ
558	select IRQ_MSI_LIB
559	help
560	  Provide a driver for the i.MX Messaging Unit block used as a
561	  CPU-to-CPU MSI controller. This requires a specially crafted DT
562	  to make use of this driver.
563
564	  If unsure, say N
565
566config LS1X_IRQ
567	bool "Loongson-1 Interrupt Controller"
568	depends on MACH_LOONGSON32
569	default y
570	select IRQ_DOMAIN
571	select GENERIC_IRQ_CHIP
572	help
573	  Support for the Loongson-1 platform Interrupt Controller.
574
575config TI_SCI_INTR_IRQCHIP
576	tristate "TI SCI INTR Interrupt Controller"
577	depends on TI_SCI_PROTOCOL
578	depends on ARCH_K3 || COMPILE_TEST
579	select IRQ_DOMAIN_HIERARCHY
580	help
581	  This enables the irqchip driver support for K3 Interrupt router
582	  over TI System Control Interface available on some new TI's SoCs.
583	  If you wish to use interrupt router irq resources managed by the
584	  TI System Controller, say Y here. Otherwise, say N.
585
586config TI_SCI_INTA_IRQCHIP
587	tristate "TI SCI INTA Interrupt Controller"
588	depends on TI_SCI_PROTOCOL
589	depends on ARCH_K3 || (COMPILE_TEST && ARM64)
590	select IRQ_DOMAIN_HIERARCHY
591	select TI_SCI_INTA_MSI_DOMAIN
592	help
593	  This enables the irqchip driver support for K3 Interrupt aggregator
594	  over TI System Control Interface available on some new TI's SoCs.
595	  If you wish to use interrupt aggregator irq resources managed by the
596	  TI System Controller, say Y here. Otherwise, say N.
597
598config TI_PRUSS_INTC
599	tristate
600	depends on TI_PRUSS
601	default TI_PRUSS
602	select IRQ_DOMAIN
603	help
604	  This enables support for the PRU-ICSS Local Interrupt Controller
605	  present within a PRU-ICSS subsystem present on various TI SoCs.
606	  The PRUSS INTC enables various interrupts to be routed to multiple
607	  different processors within the SoC.
608
609config RISCV_INTC
610	bool
611	depends on RISCV
612	select IRQ_DOMAIN_HIERARCHY
613
614config RISCV_APLIC
615	bool
616	depends on RISCV
617	select IRQ_DOMAIN_HIERARCHY
618
619config RISCV_APLIC_MSI
620	bool
621	depends on RISCV_APLIC
622	select GENERIC_MSI_IRQ
623	default RISCV_APLIC
624
625config RISCV_IMSIC
626	bool
627	depends on RISCV
628	select IRQ_DOMAIN_HIERARCHY
629	select GENERIC_IRQ_MATRIX_ALLOCATOR
630	select GENERIC_MSI_IRQ
631	select IRQ_MSI_LIB
632
633config RISCV_RPMI_SYSMSI
634	bool
635	depends on RISCV && MAILBOX
636	select IRQ_DOMAIN_HIERARCHY
637	select GENERIC_MSI_IRQ
638	default RISCV
639
640config SIFIVE_PLIC
641	bool
642	depends on RISCV
643	select IRQ_DOMAIN_HIERARCHY
644	select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
645
646config STARFIVE_JH8100_INTC
647	bool "StarFive JH8100 External Interrupt Controller"
648	depends on ARCH_STARFIVE || COMPILE_TEST
649	default ARCH_STARFIVE
650	select IRQ_DOMAIN_HIERARCHY
651	help
652	  This enables support for the INTC chip found in StarFive JH8100
653	  SoC.
654
655	  If you don't know what to do here, say Y.
656
657config ACLINT_SSWI
658	bool "RISC-V ACLINT S-mode IPI Interrupt Controller"
659	depends on RISCV
660	depends on SMP
661	select IRQ_DOMAIN_HIERARCHY
662	select GENERIC_IRQ_IPI_MUX
663	help
664	  This enables support for variants of the RISC-V ACLINT-SSWI device.
665	  Supported variants are:
666	  - T-HEAD, with compatible "thead,c900-aclint-sswi"
667	  - MIPS P8700, with compatible "mips,p8700-aclint-sswi"
668
669	  If you don't know what to do here, say Y.
670
671# Backwards compatibility so oldconfig does not drop it.
672config THEAD_C900_ACLINT_SSWI
673	bool
674	select ACLINT_SSWI
675
676config EXYNOS_IRQ_COMBINER
677	bool "Samsung Exynos IRQ combiner support" if COMPILE_TEST
678	depends on (ARCH_EXYNOS && ARM) || COMPILE_TEST
679	help
680	  Say yes here to add support for the IRQ combiner devices embedded
681	  in Samsung Exynos chips.
682
683config IRQ_LOONGARCH_CPU
684	bool
685	select GENERIC_IRQ_CHIP
686	select IRQ_DOMAIN
687	select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
688	select LOONGSON_HTVEC
689	select LOONGSON_LIOINTC
690	select LOONGSON_EIOINTC
691	select LOONGSON_PCH_PIC
692	select LOONGSON_PCH_MSI
693	select LOONGSON_PCH_LPC
694	help
695	  Support for the LoongArch CPU Interrupt Controller. For details of
696	  irq chip hierarchy on LoongArch platforms please read the document
697	  Documentation/arch/loongarch/irq-chip-model.rst.
698
699config LOONGSON_LIOINTC
700	bool "Loongson Local I/O Interrupt Controller"
701	depends on MACH_LOONGSON64
702	default y
703	select IRQ_DOMAIN
704	select GENERIC_IRQ_CHIP
705	help
706	  Support for the Loongson Local I/O Interrupt Controller.
707
708config LOONGSON_EIOINTC
709	bool "Loongson Extend I/O Interrupt Controller"
710	depends on LOONGARCH
711	depends on MACH_LOONGSON64
712	default MACH_LOONGSON64
713	select IRQ_DOMAIN_HIERARCHY
714	select GENERIC_IRQ_CHIP
715	help
716	  Support for the Loongson3 Extend I/O Interrupt Vector Controller.
717
718config LOONGSON_HTPIC
719	bool "Loongson3 HyperTransport PIC Controller"
720	depends on MACH_LOONGSON64 && MIPS
721	default y
722	select IRQ_DOMAIN
723	select GENERIC_IRQ_CHIP
724	help
725	  Support for the Loongson-3 HyperTransport PIC Controller.
726
727config LOONGSON_HTVEC
728	bool "Loongson HyperTransport Interrupt Vector Controller"
729	depends on MACH_LOONGSON64
730	default MACH_LOONGSON64
731	select IRQ_DOMAIN_HIERARCHY
732	help
733	  Support for the Loongson HyperTransport Interrupt Vector Controller.
734
735config LOONGSON_PCH_PIC
736	bool "Loongson PCH PIC Controller"
737	depends on MACH_LOONGSON64
738	default MACH_LOONGSON64
739	select IRQ_DOMAIN_HIERARCHY
740	select IRQ_FASTEOI_HIERARCHY_HANDLERS
741	help
742	  Support for the Loongson PCH PIC Controller.
743
744config LOONGSON_PCH_MSI
745	bool "Loongson PCH MSI Controller"
746	depends on MACH_LOONGSON64
747	depends on PCI
748	default MACH_LOONGSON64
749	select IRQ_DOMAIN_HIERARCHY
750	select IRQ_MSI_LIB
751	select PCI_MSI
752	help
753	  Support for the Loongson PCH MSI Controller.
754
755config LOONGSON_PCH_LPC
756	bool "Loongson PCH LPC Controller"
757	depends on LOONGARCH
758	depends on MACH_LOONGSON64
759	default MACH_LOONGSON64
760	select IRQ_DOMAIN_HIERARCHY
761	help
762	  Support for the Loongson PCH LPC Controller.
763
764config MST_IRQ
765	bool "MStar Interrupt Controller"
766	depends on ARCH_MEDIATEK || ARCH_MSTARV7 || COMPILE_TEST
767	default ARCH_MEDIATEK
768	select IRQ_DOMAIN
769	select IRQ_DOMAIN_HIERARCHY
770	help
771	  Support MStar Interrupt Controller.
772
773config WPCM450_AIC
774	bool "Nuvoton WPCM450 Advanced Interrupt Controller"
775	depends on ARCH_WPCM450
776	help
777	  Support for the interrupt controller in the Nuvoton WPCM450 BMC SoC.
778
779config IRQ_IDT3243X
780	bool
781	select GENERIC_IRQ_CHIP
782	select IRQ_DOMAIN
783
784config APPLE_AIC
785	bool "Apple Interrupt Controller (AIC)"
786	depends on ARM64
787	depends on ARCH_APPLE || COMPILE_TEST
788	select GENERIC_IRQ_IPI_MUX
789	help
790	  Support for the Apple Interrupt Controller found on Apple Silicon SoCs,
791	  such as the M1.
792
793config MCHP_EIC
794	bool "Microchip External Interrupt Controller"
795	depends on ARCH_AT91 || COMPILE_TEST
796	select IRQ_DOMAIN
797	select IRQ_DOMAIN_HIERARCHY
798	help
799	  Support for Microchip External Interrupt Controller.
800
801config SOPHGO_SG2042_MSI
802	bool "Sophgo SG2042 MSI Controller"
803	depends on ARCH_SOPHGO || COMPILE_TEST
804	depends on PCI
805	select IRQ_DOMAIN_HIERARCHY
806	select IRQ_MSI_LIB
807	select PCI_MSI
808	help
809	  Support for the Sophgo SG2042 MSI Controller.
810	  This on-chip interrupt controller enables MSI sources to be
811	  routed to the primary PLIC controller on SoC.
812
813config SUNPLUS_SP7021_INTC
814	bool "Sunplus SP7021 interrupt controller" if COMPILE_TEST
815	default SOC_SP7021
816	help
817	  Support for the Sunplus SP7021 Interrupt Controller IP core.
818	  SP7021 SoC has 2 Chips: C-Chip & P-Chip. This is used as a
819	  chained controller, routing all interrupt source in P-Chip to
820	  the primary controller on C-Chip.
821
822endmenu
823