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