Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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 def_bool MACH_PIC32 || COMPILE_TEST
256 select GENERIC_IRQ_CHIP
257 select IRQ_DOMAIN
258 help
259 Enable support for the interrupt controller on the Microchip PIC32
260 family of platforms.
261
262config JCORE_AIC
263 bool "J-Core integrated AIC" if COMPILE_TEST
264 depends on OF
265 select IRQ_DOMAIN
266 help
267 Support for the J-Core integrated AIC.
268
269config RDA_INTC
270 bool
271 select IRQ_DOMAIN
272
273config RENESAS_INTC_IRQPIN
274 bool "Renesas INTC External IRQ Pin Support" if COMPILE_TEST
275 select IRQ_DOMAIN
276 help
277 Enable support for the Renesas Interrupt Controller for external
278 interrupt pins, as found on SH/R-Mobile and R-Car Gen1 SoCs.
279
280config RENESAS_IRQC
281 bool "Renesas R-Mobile APE6, R-Car Gen{2,3} and RZ/G{1,2} IRQC support" if COMPILE_TEST
282 select GENERIC_IRQ_CHIP
283 select IRQ_DOMAIN
284 help
285 Enable support for the Renesas Interrupt Controller for external
286 devices, as found on R-Mobile APE6, R-Car Gen{2,3} and RZ/G{1,2} SoCs.
287
288config RENESAS_RZA1_IRQC
289 bool "Renesas RZ/A1 IRQC support" if COMPILE_TEST
290 select IRQ_DOMAIN_HIERARCHY
291 help
292 Enable support for the Renesas RZ/A1 Interrupt Controller, to use up
293 to 8 external interrupts with configurable sense select.
294
295config RENESAS_RZG2L_IRQC
296 bool "Renesas RZ/G2L (and alike SoC) IRQC support" if COMPILE_TEST
297 select GENERIC_IRQ_CHIP
298 select IRQ_DOMAIN_HIERARCHY
299 help
300 Enable support for the Renesas RZ/G2L (and alike SoC) Interrupt Controller
301 for external devices.
302
303config RENESAS_RZT2H_ICU
304 bool "Renesas RZ/{T2H,N2H} ICU support" if COMPILE_TEST
305 select GENERIC_IRQ_CHIP
306 select IRQ_DOMAIN_HIERARCHY
307 help
308 Enable support for the Renesas RZ/{T2H,N2H} Interrupt Controller
309 (ICU).
310
311config RENESAS_RZV2H_ICU
312 bool "Renesas RZ/V2H(P) ICU support" if COMPILE_TEST
313 select GENERIC_IRQ_CHIP
314 select IRQ_DOMAIN_HIERARCHY
315 help
316 Enable support for the Renesas RZ/V2H(P) Interrupt Control Unit (ICU)
317
318config SL28CPLD_INTC
319 bool "Kontron sl28cpld IRQ controller"
320 depends on MFD_SL28CPLD=y || COMPILE_TEST
321 select REGMAP_IRQ
322 help
323 Interrupt controller driver for the board management controller
324 found on the Kontron sl28 CPLD.
325
326config ST_IRQCHIP
327 bool
328 select REGMAP
329 select MFD_SYSCON
330 help
331 Enables SysCfg Controlled IRQs on STi based platforms.
332
333config SUN4I_INTC
334 bool
335
336config SUN6I_R_INTC
337 bool
338 select IRQ_DOMAIN_HIERARCHY
339 select IRQ_FASTEOI_HIERARCHY_HANDLERS
340
341config SUNXI_NMI_INTC
342 bool
343 select GENERIC_IRQ_CHIP
344
345config TB10X_IRQC
346 bool
347 select IRQ_DOMAIN
348 select GENERIC_IRQ_CHIP
349
350config TS4800_IRQ
351 tristate "TS-4800 IRQ controller"
352 select IRQ_DOMAIN
353 depends on HAS_IOMEM
354 depends on SOC_IMX51 || COMPILE_TEST
355 help
356 Support for the TS-4800 FPGA IRQ controller
357
358config VERSATILE_FPGA_IRQ
359 bool
360 select IRQ_DOMAIN
361
362config VERSATILE_FPGA_IRQ_NR
363 int
364 default 4
365 depends on VERSATILE_FPGA_IRQ
366
367config XTENSA_MX
368 bool
369 select IRQ_DOMAIN
370 select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
371
372config XILINX_INTC
373 bool "Xilinx Interrupt Controller IP"
374 depends on OF_ADDRESS
375 select IRQ_DOMAIN
376 help
377 Support for the Xilinx Interrupt Controller IP core.
378 This is used as a primary controller with MicroBlaze and can also
379 be used as a secondary chained controller on other platforms.
380
381config IRQ_CROSSBAR
382 bool
383 help
384 Support for a CROSSBAR ip that precedes the main interrupt controller.
385 The primary irqchip invokes the crossbar's callback which inturn allocates
386 a free irq and configures the IP. Thus the peripheral interrupts are
387 routed to one of the free irqchip interrupt lines.
388
389config KEYSTONE_IRQ
390 tristate "Keystone 2 IRQ controller IP"
391 depends on ARCH_KEYSTONE
392 help
393 Support for Texas Instruments Keystone 2 IRQ controller IP which
394 is part of the Keystone 2 IPC mechanism
395
396config MIPS_GIC
397 bool
398 select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
399 select GENERIC_IRQ_IPI if SMP
400 select IRQ_DOMAIN_HIERARCHY
401 select MIPS_CM
402
403config INGENIC_IRQ
404 bool
405 depends on MACH_INGENIC
406 default y
407
408config INGENIC_TCU_IRQ
409 bool "Ingenic JZ47xx TCU interrupt controller"
410 default MACH_INGENIC
411 depends on MIPS || COMPILE_TEST
412 select MFD_SYSCON
413 select GENERIC_IRQ_CHIP
414 help
415 Support for interrupts in the Timer/Counter Unit (TCU) of the Ingenic
416 JZ47xx SoCs.
417
418 If unsure, say N.
419
420config IMX_GPCV2
421 bool
422 select IRQ_DOMAIN
423 help
424 Enables the wakeup IRQs for IMX platforms with GPCv2 block
425
426config IRQ_MXS
427 def_bool y if MACH_ASM9260 || ARCH_MXS
428 select IRQ_DOMAIN
429 select STMP_DEVICE
430
431config MSCC_OCELOT_IRQ
432 bool
433 select IRQ_DOMAIN
434 select GENERIC_IRQ_CHIP
435
436config MVEBU_GICP
437 select IRQ_MSI_LIB
438 bool
439
440config MVEBU_ICU
441 bool
442
443config MVEBU_ODMI
444 bool
445 select IRQ_MSI_LIB
446 select GENERIC_MSI_IRQ
447
448config MVEBU_PIC
449 bool
450
451config MVEBU_SEI
452 bool
453
454config LS_EXTIRQ
455 def_bool y if SOC_LS1021A || ARCH_LAYERSCAPE
456 select MFD_SYSCON
457
458config LS_SCFG_MSI
459 def_bool y if SOC_LS1021A || ARCH_LAYERSCAPE
460 select IRQ_MSI_IOMMU
461 depends on PCI_MSI
462 select IRQ_MSI_LIB
463
464config STM32MP_EXTI
465 tristate "STM32MP extended interrupts and event controller"
466 depends on (ARCH_STM32 && !ARM_SINGLE_ARMV7M) || COMPILE_TEST
467 default ARCH_STM32 && !ARM_SINGLE_ARMV7M
468 select IRQ_DOMAIN_HIERARCHY
469 select GENERIC_IRQ_CHIP
470 help
471 Support STM32MP EXTI (extended interrupts and event) controller.
472
473config STM32_EXTI
474 bool
475 select IRQ_DOMAIN
476 select GENERIC_IRQ_CHIP
477
478config QCOM_IRQ_COMBINER
479 bool "QCOM IRQ combiner support"
480 depends on ARCH_QCOM && ACPI
481 select IRQ_DOMAIN_HIERARCHY
482 help
483 Say yes here to add support for the IRQ combiner devices embedded
484 in Qualcomm Technologies chips.
485
486config IRQ_UNIPHIER_AIDET
487 bool "UniPhier AIDET support" if COMPILE_TEST
488 depends on ARCH_UNIPHIER || COMPILE_TEST
489 default ARCH_UNIPHIER
490 select IRQ_DOMAIN_HIERARCHY
491 help
492 Support for the UniPhier AIDET (ARM Interrupt Detector).
493
494config MESON_IRQ_GPIO
495 tristate "Meson GPIO Interrupt Multiplexer"
496 depends on ARCH_MESON || COMPILE_TEST
497 default ARCH_MESON
498 select IRQ_DOMAIN_HIERARCHY
499 help
500 Support Meson SoC Family GPIO Interrupt Multiplexer
501
502config GOLDFISH_PIC
503 bool "Goldfish programmable interrupt controller"
504 depends on MIPS && (GOLDFISH || COMPILE_TEST)
505 select GENERIC_IRQ_CHIP
506 select IRQ_DOMAIN
507 help
508 Say yes here to enable Goldfish interrupt controller driver used
509 for Goldfish based virtual platforms.
510
511config QCOM_PDC
512 tristate "QCOM PDC"
513 depends on ARCH_QCOM
514 select IRQ_DOMAIN_HIERARCHY
515 help
516 Power Domain Controller driver to manage and configure wakeup
517 IRQs for Qualcomm Technologies Inc (QTI) mobile chips.
518
519config QCOM_MPM
520 tristate "QCOM MPM"
521 depends on ARCH_QCOM
522 depends on MAILBOX
523 select IRQ_DOMAIN_HIERARCHY
524 help
525 MSM Power Manager driver to manage and configure wakeup
526 IRQs for Qualcomm Technologies Inc (QTI) mobile chips.
527
528config CSKY_MPINTC
529 bool
530 depends on CSKY
531 help
532 Say yes here to enable C-SKY SMP interrupt controller driver used
533 for C-SKY SMP system.
534 In fact it's not mmio map in hardware and it uses ld/st to visit the
535 controller's register inside CPU.
536
537config CSKY_APB_INTC
538 bool "C-SKY APB Interrupt Controller"
539 depends on CSKY
540 help
541 Say yes here to enable C-SKY APB interrupt controller driver used
542 by C-SKY single core SOC system. It uses mmio map apb-bus to visit
543 the controller's register.
544
545config IMX_IRQSTEER
546 bool "i.MX IRQSTEER support"
547 depends on ARCH_MXC || ARCH_S32 || COMPILE_TEST
548 default y if ARCH_MXC || ARCH_S32
549 select IRQ_DOMAIN
550 help
551 Support for the i.MX and S32 IRQSTEER interrupt multiplexer/remapper.
552
553config IMX_INTMUX
554 bool "i.MX INTMUX support" if COMPILE_TEST
555 default y if ARCH_MXC
556 select IRQ_DOMAIN
557 help
558 Support for the i.MX INTMUX interrupt multiplexer.
559
560config IMX_MU_MSI
561 tristate "i.MX MU used as MSI controller"
562 depends on OF && HAS_IOMEM
563 depends on ARCH_MXC || COMPILE_TEST
564 depends on ARM || ARM64
565 default m if ARCH_MXC
566 select IRQ_DOMAIN
567 select IRQ_DOMAIN_HIERARCHY
568 select GENERIC_MSI_IRQ
569 select IRQ_MSI_LIB
570 help
571 Provide a driver for the i.MX Messaging Unit block used as a
572 CPU-to-CPU MSI controller. This requires a specially crafted DT
573 to make use of this driver.
574
575 If unsure, say N
576
577config LS1X_IRQ
578 bool "Loongson-1 Interrupt Controller"
579 depends on MACH_LOONGSON32
580 default y
581 select IRQ_DOMAIN
582 select GENERIC_IRQ_CHIP
583 help
584 Support for the Loongson-1 platform Interrupt Controller.
585
586config TI_SCI_INTR_IRQCHIP
587 tristate "TI SCI INTR Interrupt Controller"
588 depends on TI_SCI_PROTOCOL
589 depends on ARCH_K3 || COMPILE_TEST
590 select IRQ_DOMAIN_HIERARCHY
591 help
592 This enables the irqchip driver support for K3 Interrupt router
593 over TI System Control Interface available on some new TI's SoCs.
594 If you wish to use interrupt router irq resources managed by the
595 TI System Controller, say Y here. Otherwise, say N.
596
597config TI_SCI_INTA_IRQCHIP
598 tristate "TI SCI INTA Interrupt Controller"
599 depends on TI_SCI_PROTOCOL
600 depends on ARCH_K3 || (COMPILE_TEST && ARM64)
601 select IRQ_DOMAIN_HIERARCHY
602 select TI_SCI_INTA_MSI_DOMAIN
603 help
604 This enables the irqchip driver support for K3 Interrupt aggregator
605 over TI System Control Interface available on some new TI's SoCs.
606 If you wish to use interrupt aggregator irq resources managed by the
607 TI System Controller, say Y here. Otherwise, say N.
608
609config TI_PRUSS_INTC
610 tristate
611 depends on TI_PRUSS
612 default TI_PRUSS
613 select IRQ_DOMAIN
614 help
615 This enables support for the PRU-ICSS Local Interrupt Controller
616 present within a PRU-ICSS subsystem present on various TI SoCs.
617 The PRUSS INTC enables various interrupts to be routed to multiple
618 different processors within the SoC.
619
620config RISCV_INTC
621 bool
622 depends on RISCV
623 select IRQ_DOMAIN_HIERARCHY
624
625config RISCV_APLIC
626 bool
627 depends on RISCV
628 select IRQ_DOMAIN_HIERARCHY
629
630config RISCV_APLIC_MSI
631 bool
632 depends on RISCV_APLIC
633 select GENERIC_MSI_IRQ
634 default RISCV_APLIC
635
636config RISCV_IMSIC
637 bool
638 depends on RISCV
639 select IRQ_DOMAIN_HIERARCHY
640 select GENERIC_IRQ_MATRIX_ALLOCATOR
641 select GENERIC_MSI_IRQ
642 select IRQ_MSI_LIB
643
644config RISCV_RPMI_SYSMSI
645 bool
646 depends on RISCV && MAILBOX
647 select IRQ_DOMAIN_HIERARCHY
648 select GENERIC_MSI_IRQ
649 default RISCV
650
651config SIFIVE_PLIC
652 bool
653 depends on RISCV
654 select IRQ_DOMAIN_HIERARCHY
655 select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
656
657config STARFIVE_JH8100_INTC
658 bool "StarFive JH8100 External Interrupt Controller"
659 depends on ARCH_STARFIVE || COMPILE_TEST
660 default ARCH_STARFIVE
661 select IRQ_DOMAIN_HIERARCHY
662 help
663 This enables support for the INTC chip found in StarFive JH8100
664 SoC.
665
666 If you don't know what to do here, say Y.
667
668config ACLINT_SSWI
669 bool "RISC-V ACLINT S-mode IPI Interrupt Controller"
670 depends on RISCV
671 depends on SMP
672 select IRQ_DOMAIN_HIERARCHY
673 select GENERIC_IRQ_IPI_MUX
674 help
675 This enables support for variants of the RISC-V ACLINT-SSWI device.
676 Supported variants are:
677 - T-HEAD, with compatible "thead,c900-aclint-sswi"
678 - MIPS P8700, with compatible "mips,p8700-aclint-sswi"
679
680 If you don't know what to do here, say Y.
681
682# Backwards compatibility so oldconfig does not drop it.
683config THEAD_C900_ACLINT_SSWI
684 bool
685 select ACLINT_SSWI
686
687config EXYNOS_IRQ_COMBINER
688 bool "Samsung Exynos IRQ combiner support" if COMPILE_TEST
689 depends on (ARCH_EXYNOS && ARM) || COMPILE_TEST
690 help
691 Say yes here to add support for the IRQ combiner devices embedded
692 in Samsung Exynos chips.
693
694config IRQ_LOONGARCH_CPU
695 bool
696 select GENERIC_IRQ_CHIP
697 select IRQ_DOMAIN
698 select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
699 select LOONGSON_HTVEC
700 select LOONGSON_LIOINTC
701 select LOONGSON_EIOINTC
702 select LOONGSON_PCH_PIC
703 select LOONGSON_PCH_MSI
704 select LOONGSON_PCH_LPC
705 help
706 Support for the LoongArch CPU Interrupt Controller. For details of
707 irq chip hierarchy on LoongArch platforms please read the document
708 Documentation/arch/loongarch/irq-chip-model.rst.
709
710config LOONGSON_LIOINTC
711 bool "Loongson Local I/O Interrupt Controller"
712 depends on MACH_LOONGSON64 || LOONGARCH
713 default y
714 select IRQ_DOMAIN
715 select GENERIC_IRQ_CHIP
716 help
717 Support for the Loongson Local I/O Interrupt Controller.
718
719config LOONGSON_EIOINTC
720 bool "Loongson Extend I/O Interrupt Controller"
721 depends on LOONGARCH
722 default MACH_LOONGSON64
723 select IRQ_DOMAIN_HIERARCHY
724 select GENERIC_IRQ_CHIP
725 help
726 Support for the Loongson3 Extend I/O Interrupt Vector Controller.
727
728config LOONGSON_HTPIC
729 bool "Loongson3 HyperTransport PIC Controller"
730 depends on MACH_LOONGSON64 && MIPS
731 default y
732 select IRQ_DOMAIN
733 select GENERIC_IRQ_CHIP
734 help
735 Support for the Loongson-3 HyperTransport PIC Controller.
736
737config LOONGSON_HTVEC
738 bool "Loongson HyperTransport Interrupt Vector Controller"
739 depends on MACH_LOONGSON64 || LOONGARCH
740 default MACH_LOONGSON64
741 select IRQ_DOMAIN_HIERARCHY
742 help
743 Support for the Loongson HyperTransport Interrupt Vector Controller.
744
745config LOONGSON_PCH_PIC
746 bool "Loongson PCH PIC Controller"
747 depends on MACH_LOONGSON64 || LOONGARCH
748 default MACH_LOONGSON64
749 select IRQ_DOMAIN_HIERARCHY
750 select IRQ_FASTEOI_HIERARCHY_HANDLERS
751 help
752 Support for the Loongson PCH PIC Controller.
753
754config LOONGSON_PCH_MSI
755 bool "Loongson PCH MSI Controller"
756 depends on MACH_LOONGSON64 || LOONGARCH
757 depends on PCI
758 default MACH_LOONGSON64
759 select IRQ_DOMAIN_HIERARCHY
760 select IRQ_MSI_LIB
761 select PCI_MSI
762 help
763 Support for the Loongson PCH MSI Controller.
764
765config LOONGSON_PCH_LPC
766 bool "Loongson PCH LPC Controller"
767 depends on MACH_LOONGSON64 || LOONGARCH
768 default MACH_LOONGSON64
769 select IRQ_DOMAIN_HIERARCHY
770 help
771 Support for the Loongson PCH LPC Controller.
772
773config MST_IRQ
774 bool "MStar Interrupt Controller"
775 depends on ARCH_MEDIATEK || ARCH_MSTARV7 || COMPILE_TEST
776 default ARCH_MEDIATEK
777 select IRQ_DOMAIN
778 select IRQ_DOMAIN_HIERARCHY
779 help
780 Support MStar Interrupt Controller.
781
782config WPCM450_AIC
783 bool "Nuvoton WPCM450 Advanced Interrupt Controller"
784 depends on ARCH_WPCM450
785 help
786 Support for the interrupt controller in the Nuvoton WPCM450 BMC SoC.
787
788config IRQ_IDT3243X
789 bool
790 select GENERIC_IRQ_CHIP
791 select IRQ_DOMAIN
792
793config APPLE_AIC
794 bool "Apple Interrupt Controller (AIC)"
795 depends on ARM64
796 depends on ARCH_APPLE || COMPILE_TEST
797 select GENERIC_IRQ_IPI_MUX
798 help
799 Support for the Apple Interrupt Controller found on Apple Silicon SoCs,
800 such as the M1.
801
802config MCHP_EIC
803 bool "Microchip External Interrupt Controller"
804 depends on ARCH_AT91 || COMPILE_TEST
805 select IRQ_DOMAIN
806 select IRQ_DOMAIN_HIERARCHY
807 help
808 Support for Microchip External Interrupt Controller.
809
810config SOPHGO_SG2042_MSI
811 bool "Sophgo SG2042 MSI Controller"
812 depends on ARCH_SOPHGO || COMPILE_TEST
813 depends on PCI
814 select IRQ_DOMAIN_HIERARCHY
815 select IRQ_MSI_LIB
816 select PCI_MSI
817 help
818 Support for the Sophgo SG2042 MSI Controller.
819 This on-chip interrupt controller enables MSI sources to be
820 routed to the primary PLIC controller on SoC.
821
822config SUNPLUS_SP7021_INTC
823 bool "Sunplus SP7021 interrupt controller" if COMPILE_TEST
824 default SOC_SP7021
825 help
826 Support for the Sunplus SP7021 Interrupt Controller IP core.
827 SP7021 SoC has 2 Chips: C-Chip & P-Chip. This is used as a
828 chained controller, routing all interrupt source in P-Chip to
829 the primary controller on C-Chip.
830
831endmenu