xref: /openbmc/linux/drivers/irqchip/Kconfig (revision 9b5db89e)
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_MULTI_HANDLER
12	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
13
14config ARM_GIC_PM
15	bool
16	depends on PM
17	select ARM_GIC
18	select PM_CLK
19
20config ARM_GIC_MAX_NR
21	int
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 PCI_MSI
30
31config GIC_NON_BANKED
32	bool
33
34config ARM_GIC_V3
35	bool
36	select GENERIC_IRQ_MULTI_HANDLER
37	select IRQ_DOMAIN_HIERARCHY
38	select PARTITION_PERCPU
39	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
40
41config ARM_GIC_V3_ITS
42	bool
43	select GENERIC_MSI_IRQ_DOMAIN
44	default ARM_GIC_V3
45
46config ARM_GIC_V3_ITS_PCI
47	bool
48	depends on ARM_GIC_V3_ITS
49	depends on PCI
50	depends on PCI_MSI
51	default ARM_GIC_V3_ITS
52
53config ARM_GIC_V3_ITS_FSL_MC
54	bool
55	depends on ARM_GIC_V3_ITS
56	depends on FSL_MC_BUS
57	default ARM_GIC_V3_ITS
58
59config ARM_NVIC
60	bool
61	select IRQ_DOMAIN_HIERARCHY
62	select GENERIC_IRQ_CHIP
63
64config ARM_VIC
65	bool
66	select IRQ_DOMAIN
67	select GENERIC_IRQ_MULTI_HANDLER
68
69config ARM_VIC_NR
70	int
71	default 4 if ARCH_S5PV210
72	default 2
73	depends on ARM_VIC
74	help
75	  The maximum number of VICs available in the system, for
76	  power management.
77
78config ARMADA_370_XP_IRQ
79	bool
80	select GENERIC_IRQ_CHIP
81	select PCI_MSI if PCI
82	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
83
84config ALPINE_MSI
85	bool
86	depends on PCI
87	select PCI_MSI
88	select GENERIC_IRQ_CHIP
89
90config ATMEL_AIC_IRQ
91	bool
92	select GENERIC_IRQ_CHIP
93	select IRQ_DOMAIN
94	select GENERIC_IRQ_MULTI_HANDLER
95	select SPARSE_IRQ
96
97config ATMEL_AIC5_IRQ
98	bool
99	select GENERIC_IRQ_CHIP
100	select IRQ_DOMAIN
101	select GENERIC_IRQ_MULTI_HANDLER
102	select SPARSE_IRQ
103
104config I8259
105	bool
106	select IRQ_DOMAIN
107
108config BCM6345_L1_IRQ
109	bool
110	select GENERIC_IRQ_CHIP
111	select IRQ_DOMAIN
112	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
113
114config BCM7038_L1_IRQ
115	bool
116	select GENERIC_IRQ_CHIP
117	select IRQ_DOMAIN
118	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
119
120config BCM7120_L2_IRQ
121	bool
122	select GENERIC_IRQ_CHIP
123	select IRQ_DOMAIN
124
125config BRCMSTB_L2_IRQ
126	bool
127	select GENERIC_IRQ_CHIP
128	select IRQ_DOMAIN
129
130config DAVINCI_AINTC
131	bool
132	select GENERIC_IRQ_CHIP
133	select IRQ_DOMAIN
134
135config DAVINCI_CP_INTC
136	bool
137	select GENERIC_IRQ_CHIP
138	select IRQ_DOMAIN
139
140config DW_APB_ICTL
141	bool
142	select GENERIC_IRQ_CHIP
143	select IRQ_DOMAIN
144
145config FARADAY_FTINTC010
146	bool
147	select IRQ_DOMAIN
148	select GENERIC_IRQ_MULTI_HANDLER
149	select SPARSE_IRQ
150
151config HISILICON_IRQ_MBIGEN
152	bool
153	select ARM_GIC_V3
154	select ARM_GIC_V3_ITS
155
156config IMGPDC_IRQ
157	bool
158	select GENERIC_IRQ_CHIP
159	select IRQ_DOMAIN
160
161config IXP4XX_IRQ
162	bool
163	select IRQ_DOMAIN
164	select GENERIC_IRQ_MULTI_HANDLER
165	select SPARSE_IRQ
166
167config MADERA_IRQ
168	tristate
169
170config IRQ_MIPS_CPU
171	bool
172	select GENERIC_IRQ_CHIP
173	select GENERIC_IRQ_IPI if SYS_SUPPORTS_MULTITHREADING
174	select IRQ_DOMAIN
175	select IRQ_DOMAIN_HIERARCHY if GENERIC_IRQ_IPI
176	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
177
178config CLPS711X_IRQCHIP
179	bool
180	depends on ARCH_CLPS711X
181	select IRQ_DOMAIN
182	select GENERIC_IRQ_MULTI_HANDLER
183	select SPARSE_IRQ
184	default y
185
186config OMPIC
187	bool
188
189config OR1K_PIC
190	bool
191	select IRQ_DOMAIN
192
193config OMAP_IRQCHIP
194	bool
195	select GENERIC_IRQ_CHIP
196	select IRQ_DOMAIN
197
198config ORION_IRQCHIP
199	bool
200	select IRQ_DOMAIN
201	select GENERIC_IRQ_MULTI_HANDLER
202
203config PIC32_EVIC
204	bool
205	select GENERIC_IRQ_CHIP
206	select IRQ_DOMAIN
207
208config JCORE_AIC
209	bool "J-Core integrated AIC" if COMPILE_TEST
210	depends on OF
211	select IRQ_DOMAIN
212	help
213	  Support for the J-Core integrated AIC.
214
215config RDA_INTC
216	bool
217	select IRQ_DOMAIN
218
219config RENESAS_INTC_IRQPIN
220	bool
221	select IRQ_DOMAIN
222
223config RENESAS_IRQC
224	bool
225	select GENERIC_IRQ_CHIP
226	select IRQ_DOMAIN
227
228config ST_IRQCHIP
229	bool
230	select REGMAP
231	select MFD_SYSCON
232	help
233	  Enables SysCfg Controlled IRQs on STi based platforms.
234
235config TANGO_IRQ
236	bool
237	select IRQ_DOMAIN
238	select GENERIC_IRQ_CHIP
239
240config TB10X_IRQC
241	bool
242	select IRQ_DOMAIN
243	select GENERIC_IRQ_CHIP
244
245config TS4800_IRQ
246	tristate "TS-4800 IRQ controller"
247	select IRQ_DOMAIN
248	depends on HAS_IOMEM
249	depends on SOC_IMX51 || COMPILE_TEST
250	help
251	  Support for the TS-4800 FPGA IRQ controller
252
253config VERSATILE_FPGA_IRQ
254	bool
255	select IRQ_DOMAIN
256
257config VERSATILE_FPGA_IRQ_NR
258       int
259       default 4
260       depends on VERSATILE_FPGA_IRQ
261
262config XTENSA_MX
263	bool
264	select IRQ_DOMAIN
265	select GENERIC_IRQ_EFFECTIVE_AFF_MASK
266
267config XILINX_INTC
268	bool
269	select IRQ_DOMAIN
270
271config IRQ_CROSSBAR
272	bool
273	help
274	  Support for a CROSSBAR ip that precedes the main interrupt controller.
275	  The primary irqchip invokes the crossbar's callback which inturn allocates
276	  a free irq and configures the IP. Thus the peripheral interrupts are
277	  routed to one of the free irqchip interrupt lines.
278
279config KEYSTONE_IRQ
280	tristate "Keystone 2 IRQ controller IP"
281	depends on ARCH_KEYSTONE
282	help
283		Support for Texas Instruments Keystone 2 IRQ controller IP which
284		is part of the Keystone 2 IPC mechanism
285
286config MIPS_GIC
287	bool
288	select GENERIC_IRQ_IPI
289	select IRQ_DOMAIN_HIERARCHY
290	select MIPS_CM
291
292config INGENIC_IRQ
293	bool
294	depends on MACH_INGENIC
295	default y
296
297config RENESAS_H8300H_INTC
298        bool
299	select IRQ_DOMAIN
300
301config RENESAS_H8S_INTC
302        bool
303	select IRQ_DOMAIN
304
305config IMX_GPCV2
306	bool
307	select IRQ_DOMAIN
308	help
309	  Enables the wakeup IRQs for IMX platforms with GPCv2 block
310
311config IRQ_MXS
312	def_bool y if MACH_ASM9260 || ARCH_MXS
313	select IRQ_DOMAIN
314	select STMP_DEVICE
315
316config MSCC_OCELOT_IRQ
317	bool
318	select IRQ_DOMAIN
319	select GENERIC_IRQ_CHIP
320
321config MVEBU_GICP
322	bool
323
324config MVEBU_ICU
325	bool
326
327config MVEBU_ODMI
328	bool
329	select GENERIC_MSI_IRQ_DOMAIN
330
331config MVEBU_PIC
332	bool
333
334config MVEBU_SEI
335        bool
336
337config LS_SCFG_MSI
338	def_bool y if SOC_LS1021A || ARCH_LAYERSCAPE
339	depends on PCI && PCI_MSI
340
341config PARTITION_PERCPU
342	bool
343
344config EZNPS_GIC
345	bool "NPS400 Global Interrupt Manager (GIM)"
346	depends on ARC || (COMPILE_TEST && !64BIT)
347	select IRQ_DOMAIN
348	help
349	  Support the EZchip NPS400 global interrupt controller
350
351config STM32_EXTI
352	bool
353	select IRQ_DOMAIN
354	select GENERIC_IRQ_CHIP
355
356config QCOM_IRQ_COMBINER
357	bool "QCOM IRQ combiner support"
358	depends on ARCH_QCOM && ACPI
359	select IRQ_DOMAIN_HIERARCHY
360	help
361	  Say yes here to add support for the IRQ combiner devices embedded
362	  in Qualcomm Technologies chips.
363
364config IRQ_UNIPHIER_AIDET
365	bool "UniPhier AIDET support" if COMPILE_TEST
366	depends on ARCH_UNIPHIER || COMPILE_TEST
367	default ARCH_UNIPHIER
368	select IRQ_DOMAIN_HIERARCHY
369	help
370	  Support for the UniPhier AIDET (ARM Interrupt Detector).
371
372config MESON_IRQ_GPIO
373       bool "Meson GPIO Interrupt Multiplexer"
374       depends on ARCH_MESON
375       select IRQ_DOMAIN_HIERARCHY
376       help
377         Support Meson SoC Family GPIO Interrupt Multiplexer
378
379config GOLDFISH_PIC
380       bool "Goldfish programmable interrupt controller"
381       depends on MIPS && (GOLDFISH || COMPILE_TEST)
382       select IRQ_DOMAIN
383       help
384         Say yes here to enable Goldfish interrupt controller driver used
385         for Goldfish based virtual platforms.
386
387config QCOM_PDC
388	bool "QCOM PDC"
389	depends on ARCH_QCOM
390	select IRQ_DOMAIN_HIERARCHY
391	help
392	  Power Domain Controller driver to manage and configure wakeup
393	  IRQs for Qualcomm Technologies Inc (QTI) mobile chips.
394
395config CSKY_MPINTC
396	bool "C-SKY Multi Processor Interrupt Controller"
397	depends on CSKY
398	help
399	  Say yes here to enable C-SKY SMP interrupt controller driver used
400	  for C-SKY SMP system.
401	  In fact it's not mmio map in hw and it use ld/st to visit the
402	  controller's register inside CPU.
403
404config CSKY_APB_INTC
405	bool "C-SKY APB Interrupt Controller"
406	depends on CSKY
407	help
408	  Say yes here to enable C-SKY APB interrupt controller driver used
409	  by C-SKY single core SOC system. It use mmio map apb-bus to visit
410	  the controller's register.
411
412config IMX_IRQSTEER
413	bool "i.MX IRQSTEER support"
414	depends on ARCH_MXC || COMPILE_TEST
415	default ARCH_MXC
416	select IRQ_DOMAIN
417	help
418	  Support for the i.MX IRQSTEER interrupt multiplexer/remapper.
419
420config LS1X_IRQ
421	bool "Loongson-1 Interrupt Controller"
422	depends on MACH_LOONGSON32
423	default y
424	select IRQ_DOMAIN
425	select GENERIC_IRQ_CHIP
426	help
427	  Support for the Loongson-1 platform Interrupt Controller.
428
429config TI_SCI_INTR_IRQCHIP
430	bool
431	depends on TI_SCI_PROTOCOL
432	select IRQ_DOMAIN_HIERARCHY
433	help
434	  This enables the irqchip driver support for K3 Interrupt router
435	  over TI System Control Interface available on some new TI's SoCs.
436	  If you wish to use interrupt router irq resources managed by the
437	  TI System Controller, say Y here. Otherwise, say N.
438
439config TI_SCI_INTA_IRQCHIP
440	bool
441	depends on TI_SCI_PROTOCOL
442	select IRQ_DOMAIN_HIERARCHY
443	select TI_SCI_INTA_MSI_DOMAIN
444	help
445	  This enables the irqchip driver support for K3 Interrupt aggregator
446	  over TI System Control Interface available on some new TI's SoCs.
447	  If you wish to use interrupt aggregator irq resources managed by the
448	  TI System Controller, say Y here. Otherwise, say N.
449
450endmenu
451
452config SIFIVE_PLIC
453	bool "SiFive Platform-Level Interrupt Controller"
454	depends on RISCV
455	help
456	   This enables support for the PLIC chip found in SiFive (and
457	   potentially other) RISC-V systems.  The PLIC controls devices
458	   interrupts and connects them to each core's local interrupt
459	   controller.  Aside from timer and software interrupts, all other
460	   interrupt sources are subordinate to the PLIC.
461
462	   If you don't know what to do here, say Y.
463