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