xref: /linux/drivers/irqchip/Kconfig (revision 908fc4c2)
1# SPDX-License-Identifier: GPL-2.0-only
2menu "IRQ chip support"
3
4config IRQCHIP
5	def_bool y
6	depends on OF_IRQ
7
8config ARM_GIC
9	bool
10	select IRQ_DOMAIN_HIERARCHY
11	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
12
13config ARM_GIC_PM
14	bool
15	depends on PM
16	select ARM_GIC
17
18config ARM_GIC_MAX_NR
19	int
20	depends on ARM_GIC
21	default 2 if ARCH_REALVIEW
22	default 1
23
24config ARM_GIC_V2M
25	bool
26	depends on PCI
27	select ARM_GIC
28	select PCI_MSI
29
30config GIC_NON_BANKED
31	bool
32
33config ARM_GIC_V3
34	bool
35	select IRQ_DOMAIN_HIERARCHY
36	select PARTITION_PERCPU
37	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
38
39config ARM_GIC_V3_ITS
40	bool
41	select GENERIC_MSI_IRQ_DOMAIN
42	default ARM_GIC_V3
43
44config ARM_GIC_V3_ITS_PCI
45	bool
46	depends on ARM_GIC_V3_ITS
47	depends on PCI
48	depends on PCI_MSI
49	default ARM_GIC_V3_ITS
50
51config ARM_GIC_V3_ITS_FSL_MC
52	bool
53	depends on ARM_GIC_V3_ITS
54	depends on FSL_MC_BUS
55	default ARM_GIC_V3_ITS
56
57config ARM_NVIC
58	bool
59	select IRQ_DOMAIN_HIERARCHY
60	select GENERIC_IRQ_CHIP
61
62config ARM_VIC
63	bool
64	select IRQ_DOMAIN
65
66config ARM_VIC_NR
67	int
68	default 4 if ARCH_S5PV210
69	default 2
70	depends on ARM_VIC
71	help
72	  The maximum number of VICs available in the system, for
73	  power management.
74
75config ARMADA_370_XP_IRQ
76	bool
77	select GENERIC_IRQ_CHIP
78	select PCI_MSI if PCI
79	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
80
81config ALPINE_MSI
82	bool
83	depends on PCI
84	select PCI_MSI
85	select GENERIC_IRQ_CHIP
86
87config AL_FIC
88	bool "Amazon's Annapurna Labs Fabric Interrupt Controller"
89	depends on OF || COMPILE_TEST
90	select GENERIC_IRQ_CHIP
91	select IRQ_DOMAIN
92	help
93	  Support Amazon's Annapurna Labs Fabric Interrupt Controller.
94
95config ATMEL_AIC_IRQ
96	bool
97	select GENERIC_IRQ_CHIP
98	select IRQ_DOMAIN
99	select SPARSE_IRQ
100
101config ATMEL_AIC5_IRQ
102	bool
103	select GENERIC_IRQ_CHIP
104	select IRQ_DOMAIN
105	select SPARSE_IRQ
106
107config I8259
108	bool
109	select IRQ_DOMAIN
110
111config BCM6345_L1_IRQ
112	bool
113	select GENERIC_IRQ_CHIP
114	select IRQ_DOMAIN
115	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
116
117config BCM7038_L1_IRQ
118	tristate "Broadcom STB 7038-style L1/L2 interrupt controller driver"
119	depends on ARCH_BRCMSTB || BMIPS_GENERIC
120	default ARCH_BRCMSTB || BMIPS_GENERIC
121	select GENERIC_IRQ_CHIP
122	select IRQ_DOMAIN
123	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
124
125config BCM7120_L2_IRQ
126	tristate "Broadcom STB 7120-style L2 interrupt controller driver"
127	depends on ARCH_BRCMSTB || BMIPS_GENERIC
128	default ARCH_BRCMSTB || BMIPS_GENERIC
129	select GENERIC_IRQ_CHIP
130	select IRQ_DOMAIN
131
132config BRCMSTB_L2_IRQ
133	tristate "Broadcom STB generic L2 interrupt controller driver"
134	depends on ARCH_BCM2835 || ARCH_BRCMSTB || BMIPS_GENERIC
135	default ARCH_BCM2835 || ARCH_BRCMSTB || BMIPS_GENERIC
136	select GENERIC_IRQ_CHIP
137	select IRQ_DOMAIN
138
139config DAVINCI_AINTC
140	bool
141	select GENERIC_IRQ_CHIP
142	select IRQ_DOMAIN
143
144config DAVINCI_CP_INTC
145	bool
146	select GENERIC_IRQ_CHIP
147	select IRQ_DOMAIN
148
149config DW_APB_ICTL
150	bool
151	select GENERIC_IRQ_CHIP
152	select IRQ_DOMAIN_HIERARCHY
153
154config FARADAY_FTINTC010
155	bool
156	select IRQ_DOMAIN
157	select SPARSE_IRQ
158
159config HISILICON_IRQ_MBIGEN
160	bool
161	select ARM_GIC_V3
162	select ARM_GIC_V3_ITS
163
164config IMGPDC_IRQ
165	bool
166	select GENERIC_IRQ_CHIP
167	select IRQ_DOMAIN
168
169config IXP4XX_IRQ
170	bool
171	select IRQ_DOMAIN
172	select SPARSE_IRQ
173
174config MADERA_IRQ
175	tristate
176
177config IRQ_MIPS_CPU
178	bool
179	select GENERIC_IRQ_CHIP
180	select GENERIC_IRQ_IPI if SYS_SUPPORTS_MULTITHREADING
181	select IRQ_DOMAIN
182	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
183
184config CLPS711X_IRQCHIP
185	bool
186	depends on ARCH_CLPS711X
187	select IRQ_DOMAIN
188	select SPARSE_IRQ
189	default y
190
191config OMPIC
192	bool
193
194config OR1K_PIC
195	bool
196	select IRQ_DOMAIN
197
198config OMAP_IRQCHIP
199	bool
200	select GENERIC_IRQ_CHIP
201	select IRQ_DOMAIN
202
203config ORION_IRQCHIP
204	bool
205	select IRQ_DOMAIN
206
207config PIC32_EVIC
208	bool
209	select GENERIC_IRQ_CHIP
210	select IRQ_DOMAIN
211
212config JCORE_AIC
213	bool "J-Core integrated AIC" if COMPILE_TEST
214	depends on OF
215	select IRQ_DOMAIN
216	help
217	  Support for the J-Core integrated AIC.
218
219config RDA_INTC
220	bool
221	select IRQ_DOMAIN
222
223config RENESAS_INTC_IRQPIN
224	bool "Renesas INTC External IRQ Pin Support" if COMPILE_TEST
225	select IRQ_DOMAIN
226	help
227	  Enable support for the Renesas Interrupt Controller for external
228	  interrupt pins, as found on SH/R-Mobile and R-Car Gen1 SoCs.
229
230config RENESAS_IRQC
231	bool "Renesas R-Mobile APE6, R-Car Gen{2,3} and RZ/G{1,2} IRQC support" if COMPILE_TEST
232	select GENERIC_IRQ_CHIP
233	select IRQ_DOMAIN
234	help
235	  Enable support for the Renesas Interrupt Controller for external
236	  devices, as found on R-Mobile APE6, R-Car Gen{2,3} and RZ/G{1,2} SoCs.
237
238config RENESAS_RZA1_IRQC
239	bool "Renesas RZ/A1 IRQC support" if COMPILE_TEST
240	select IRQ_DOMAIN_HIERARCHY
241	help
242	  Enable support for the Renesas RZ/A1 Interrupt Controller, to use up
243	  to 8 external interrupts with configurable sense select.
244
245config SL28CPLD_INTC
246	bool "Kontron sl28cpld IRQ controller"
247	depends on MFD_SL28CPLD=y || COMPILE_TEST
248	select REGMAP_IRQ
249	help
250	  Interrupt controller driver for the board management controller
251	  found on the Kontron sl28 CPLD.
252
253config ST_IRQCHIP
254	bool
255	select REGMAP
256	select MFD_SYSCON
257	help
258	  Enables SysCfg Controlled IRQs on STi based platforms.
259
260config SUN4I_INTC
261	bool
262
263config SUN6I_R_INTC
264	bool
265	select IRQ_DOMAIN_HIERARCHY
266	select IRQ_FASTEOI_HIERARCHY_HANDLERS
267
268config SUNXI_NMI_INTC
269	bool
270	select GENERIC_IRQ_CHIP
271
272config TB10X_IRQC
273	bool
274	select IRQ_DOMAIN
275	select GENERIC_IRQ_CHIP
276
277config TS4800_IRQ
278	tristate "TS-4800 IRQ controller"
279	select IRQ_DOMAIN
280	depends on HAS_IOMEM
281	depends on SOC_IMX51 || COMPILE_TEST
282	help
283	  Support for the TS-4800 FPGA IRQ controller
284
285config VERSATILE_FPGA_IRQ
286	bool
287	select IRQ_DOMAIN
288
289config VERSATILE_FPGA_IRQ_NR
290       int
291       default 4
292       depends on VERSATILE_FPGA_IRQ
293
294config XTENSA_MX
295	bool
296	select IRQ_DOMAIN
297	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
298
299config XILINX_INTC
300	bool "Xilinx Interrupt Controller IP"
301	depends on OF_ADDRESS
302	select IRQ_DOMAIN
303	help
304	  Support for the Xilinx Interrupt Controller IP core.
305	  This is used as a primary controller with MicroBlaze and can also
306	  be used as a secondary chained controller on other platforms.
307
308config IRQ_CROSSBAR
309	bool
310	help
311	  Support for a CROSSBAR ip that precedes the main interrupt controller.
312	  The primary irqchip invokes the crossbar's callback which inturn allocates
313	  a free irq and configures the IP. Thus the peripheral interrupts are
314	  routed to one of the free irqchip interrupt lines.
315
316config KEYSTONE_IRQ
317	tristate "Keystone 2 IRQ controller IP"
318	depends on ARCH_KEYSTONE
319	help
320		Support for Texas Instruments Keystone 2 IRQ controller IP which
321		is part of the Keystone 2 IPC mechanism
322
323config MIPS_GIC
324	bool
325	select GENERIC_IRQ_IPI
326	select MIPS_CM
327
328config INGENIC_IRQ
329	bool
330	depends on MACH_INGENIC
331	default y
332
333config INGENIC_TCU_IRQ
334	bool "Ingenic JZ47xx TCU interrupt controller"
335	default MACH_INGENIC
336	depends on MIPS || COMPILE_TEST
337	select MFD_SYSCON
338	select GENERIC_IRQ_CHIP
339	help
340	  Support for interrupts in the Timer/Counter Unit (TCU) of the Ingenic
341	  JZ47xx SoCs.
342
343	  If unsure, say N.
344
345config IMX_GPCV2
346	bool
347	select IRQ_DOMAIN
348	help
349	  Enables the wakeup IRQs for IMX platforms with GPCv2 block
350
351config IRQ_MXS
352	def_bool y if MACH_ASM9260 || ARCH_MXS
353	select IRQ_DOMAIN
354	select STMP_DEVICE
355
356config MSCC_OCELOT_IRQ
357	bool
358	select IRQ_DOMAIN
359	select GENERIC_IRQ_CHIP
360
361config MVEBU_GICP
362	bool
363
364config MVEBU_ICU
365	bool
366
367config MVEBU_ODMI
368	bool
369	select GENERIC_MSI_IRQ_DOMAIN
370
371config MVEBU_PIC
372	bool
373
374config MVEBU_SEI
375        bool
376
377config LS_EXTIRQ
378	def_bool y if SOC_LS1021A || ARCH_LAYERSCAPE
379	select MFD_SYSCON
380
381config LS_SCFG_MSI
382	def_bool y if SOC_LS1021A || ARCH_LAYERSCAPE
383	depends on PCI && PCI_MSI
384
385config PARTITION_PERCPU
386	bool
387
388config STM32_EXTI
389	bool
390	select IRQ_DOMAIN
391	select GENERIC_IRQ_CHIP
392
393config QCOM_IRQ_COMBINER
394	bool "QCOM IRQ combiner support"
395	depends on ARCH_QCOM && ACPI
396	select IRQ_DOMAIN_HIERARCHY
397	help
398	  Say yes here to add support for the IRQ combiner devices embedded
399	  in Qualcomm Technologies chips.
400
401config IRQ_UNIPHIER_AIDET
402	bool "UniPhier AIDET support" if COMPILE_TEST
403	depends on ARCH_UNIPHIER || COMPILE_TEST
404	default ARCH_UNIPHIER
405	select IRQ_DOMAIN_HIERARCHY
406	help
407	  Support for the UniPhier AIDET (ARM Interrupt Detector).
408
409config MESON_IRQ_GPIO
410       tristate "Meson GPIO Interrupt Multiplexer"
411       depends on ARCH_MESON || COMPILE_TEST
412       default ARCH_MESON
413       select IRQ_DOMAIN_HIERARCHY
414       help
415         Support Meson SoC Family GPIO Interrupt Multiplexer
416
417config GOLDFISH_PIC
418       bool "Goldfish programmable interrupt controller"
419       depends on MIPS && (GOLDFISH || COMPILE_TEST)
420       select GENERIC_IRQ_CHIP
421       select IRQ_DOMAIN
422       help
423         Say yes here to enable Goldfish interrupt controller driver used
424         for Goldfish based virtual platforms.
425
426config QCOM_PDC
427	tristate "QCOM PDC"
428	depends on ARCH_QCOM
429	select IRQ_DOMAIN_HIERARCHY
430	help
431	  Power Domain Controller driver to manage and configure wakeup
432	  IRQs for Qualcomm Technologies Inc (QTI) mobile chips.
433
434config QCOM_MPM
435	tristate "QCOM MPM"
436	depends on ARCH_QCOM
437	depends on MAILBOX
438	select IRQ_DOMAIN_HIERARCHY
439	help
440	  MSM Power Manager driver to manage and configure wakeup
441	  IRQs for Qualcomm Technologies Inc (QTI) mobile chips.
442
443config CSKY_MPINTC
444	bool
445	depends on CSKY
446	help
447	  Say yes here to enable C-SKY SMP interrupt controller driver used
448	  for C-SKY SMP system.
449	  In fact it's not mmio map in hardware and it uses ld/st to visit the
450	  controller's register inside CPU.
451
452config CSKY_APB_INTC
453	bool "C-SKY APB Interrupt Controller"
454	depends on CSKY
455	help
456	  Say yes here to enable C-SKY APB interrupt controller driver used
457	  by C-SKY single core SOC system. It uses mmio map apb-bus to visit
458	  the controller's register.
459
460config IMX_IRQSTEER
461	bool "i.MX IRQSTEER support"
462	depends on ARCH_MXC || COMPILE_TEST
463	default ARCH_MXC
464	select IRQ_DOMAIN
465	help
466	  Support for the i.MX IRQSTEER interrupt multiplexer/remapper.
467
468config IMX_INTMUX
469	bool "i.MX INTMUX support" if COMPILE_TEST
470	default y if ARCH_MXC
471	select IRQ_DOMAIN
472	help
473	  Support for the i.MX INTMUX interrupt multiplexer.
474
475config LS1X_IRQ
476	bool "Loongson-1 Interrupt Controller"
477	depends on MACH_LOONGSON32
478	default y
479	select IRQ_DOMAIN
480	select GENERIC_IRQ_CHIP
481	help
482	  Support for the Loongson-1 platform Interrupt Controller.
483
484config TI_SCI_INTR_IRQCHIP
485	bool
486	depends on TI_SCI_PROTOCOL
487	select IRQ_DOMAIN_HIERARCHY
488	help
489	  This enables the irqchip driver support for K3 Interrupt router
490	  over TI System Control Interface available on some new TI's SoCs.
491	  If you wish to use interrupt router irq resources managed by the
492	  TI System Controller, say Y here. Otherwise, say N.
493
494config TI_SCI_INTA_IRQCHIP
495	bool
496	depends on TI_SCI_PROTOCOL
497	select IRQ_DOMAIN_HIERARCHY
498	select TI_SCI_INTA_MSI_DOMAIN
499	help
500	  This enables the irqchip driver support for K3 Interrupt aggregator
501	  over TI System Control Interface available on some new TI's SoCs.
502	  If you wish to use interrupt aggregator irq resources managed by the
503	  TI System Controller, say Y here. Otherwise, say N.
504
505config TI_PRUSS_INTC
506	tristate
507	depends on TI_PRUSS
508	default TI_PRUSS
509	select IRQ_DOMAIN
510	help
511	  This enables support for the PRU-ICSS Local Interrupt Controller
512	  present within a PRU-ICSS subsystem present on various TI SoCs.
513	  The PRUSS INTC enables various interrupts to be routed to multiple
514	  different processors within the SoC.
515
516config RISCV_INTC
517	bool "RISC-V Local Interrupt Controller"
518	depends on RISCV
519	default y
520	help
521	   This enables support for the per-HART local interrupt controller
522	   found in standard RISC-V systems.  The per-HART local interrupt
523	   controller handles timer interrupts, software interrupts, and
524	   hardware interrupts. Without a per-HART local interrupt controller,
525	   a RISC-V system will be unable to handle any interrupts.
526
527	   If you don't know what to do here, say Y.
528
529config SIFIVE_PLIC
530	bool "SiFive Platform-Level Interrupt Controller"
531	depends on RISCV
532	select IRQ_DOMAIN_HIERARCHY
533	help
534	   This enables support for the PLIC chip found in SiFive (and
535	   potentially other) RISC-V systems.  The PLIC controls devices
536	   interrupts and connects them to each core's local interrupt
537	   controller.  Aside from timer and software interrupts, all other
538	   interrupt sources are subordinate to the PLIC.
539
540	   If you don't know what to do here, say Y.
541
542config EXYNOS_IRQ_COMBINER
543	bool "Samsung Exynos IRQ combiner support" if COMPILE_TEST
544	depends on (ARCH_EXYNOS && ARM) || COMPILE_TEST
545	help
546	  Say yes here to add support for the IRQ combiner devices embedded
547	  in Samsung Exynos chips.
548
549config LOONGSON_LIOINTC
550	bool "Loongson Local I/O Interrupt Controller"
551	depends on MACH_LOONGSON64
552	default y
553	select IRQ_DOMAIN
554	select GENERIC_IRQ_CHIP
555	help
556	  Support for the Loongson Local I/O Interrupt Controller.
557
558config LOONGSON_HTPIC
559	bool "Loongson3 HyperTransport PIC Controller"
560	depends on MACH_LOONGSON64 && MIPS
561	default y
562	select IRQ_DOMAIN
563	select GENERIC_IRQ_CHIP
564	help
565	  Support for the Loongson-3 HyperTransport PIC Controller.
566
567config LOONGSON_HTVEC
568	bool "Loongson HyperTransport Interrupt Vector Controller"
569	depends on MACH_LOONGSON64
570	default MACH_LOONGSON64
571	select IRQ_DOMAIN_HIERARCHY
572	help
573	  Support for the Loongson HyperTransport Interrupt Vector Controller.
574
575config LOONGSON_PCH_PIC
576	bool "Loongson PCH PIC Controller"
577	depends on MACH_LOONGSON64 || COMPILE_TEST
578	default MACH_LOONGSON64
579	select IRQ_DOMAIN_HIERARCHY
580	select IRQ_FASTEOI_HIERARCHY_HANDLERS
581	help
582	  Support for the Loongson PCH PIC Controller.
583
584config LOONGSON_PCH_MSI
585	bool "Loongson PCH MSI Controller"
586	depends on MACH_LOONGSON64 || COMPILE_TEST
587	depends on PCI
588	default MACH_LOONGSON64
589	select IRQ_DOMAIN_HIERARCHY
590	select PCI_MSI
591	help
592	  Support for the Loongson PCH MSI Controller.
593
594config MST_IRQ
595	bool "MStar Interrupt Controller"
596	depends on ARCH_MEDIATEK || ARCH_MSTARV7 || COMPILE_TEST
597	default ARCH_MEDIATEK
598	select IRQ_DOMAIN
599	select IRQ_DOMAIN_HIERARCHY
600	help
601	  Support MStar Interrupt Controller.
602
603config WPCM450_AIC
604	bool "Nuvoton WPCM450 Advanced Interrupt Controller"
605	depends on ARCH_WPCM450
606	help
607	  Support for the interrupt controller in the Nuvoton WPCM450 BMC SoC.
608
609config IRQ_IDT3243X
610	bool
611	select GENERIC_IRQ_CHIP
612	select IRQ_DOMAIN
613
614config APPLE_AIC
615	bool "Apple Interrupt Controller (AIC)"
616	depends on ARM64
617	depends on ARCH_APPLE || COMPILE_TEST
618	help
619	  Support for the Apple Interrupt Controller found on Apple Silicon SoCs,
620	  such as the M1.
621
622config MCHP_EIC
623	bool "Microchip External Interrupt Controller"
624	depends on ARCH_AT91 || COMPILE_TEST
625	select IRQ_DOMAIN
626	select IRQ_DOMAIN_HIERARCHY
627	help
628	  Support for Microchip External Interrupt Controller.
629
630endmenu
631