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 select IRQ_DOMAIN_HIERARCHY 11 select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP 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 if SMP 38 39config ARM_GIC_V3_ITS 40 bool 41 select GENERIC_MSI_IRQ 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 if SMP 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 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 if SMP 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 if SMP 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_CP_INTC 140 bool 141 select GENERIC_IRQ_CHIP 142 select IRQ_DOMAIN 143 144config DW_APB_ICTL 145 bool 146 select GENERIC_IRQ_CHIP 147 select IRQ_DOMAIN_HIERARCHY 148 149config FARADAY_FTINTC010 150 bool 151 select IRQ_DOMAIN 152 select SPARSE_IRQ 153 154config HISILICON_IRQ_MBIGEN 155 bool 156 select ARM_GIC_V3 157 select ARM_GIC_V3_ITS 158 159config IMGPDC_IRQ 160 bool 161 select GENERIC_IRQ_CHIP 162 select IRQ_DOMAIN 163 164config IXP4XX_IRQ 165 bool 166 select IRQ_DOMAIN 167 select SPARSE_IRQ 168 169config MADERA_IRQ 170 tristate 171 172config 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 179config CLPS711X_IRQCHIP 180 bool 181 depends on ARCH_CLPS711X 182 select IRQ_DOMAIN 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 202config PIC32_EVIC 203 bool 204 select GENERIC_IRQ_CHIP 205 select IRQ_DOMAIN 206 207config 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 214config RDA_INTC 215 bool 216 select IRQ_DOMAIN 217 218config 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 225config 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 233config 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 240config 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 248config 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 256config ST_IRQCHIP 257 bool 258 select REGMAP 259 select MFD_SYSCON 260 help 261 Enables SysCfg Controlled IRQs on STi based platforms. 262 263config SUN4I_INTC 264 bool 265 266config SUN6I_R_INTC 267 bool 268 select IRQ_DOMAIN_HIERARCHY 269 select IRQ_FASTEOI_HIERARCHY_HANDLERS 270 271config SUNXI_NMI_INTC 272 bool 273 select GENERIC_IRQ_CHIP 274 275config TB10X_IRQC 276 bool 277 select IRQ_DOMAIN 278 select GENERIC_IRQ_CHIP 279 280config 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 288config VERSATILE_FPGA_IRQ 289 bool 290 select IRQ_DOMAIN 291 292config VERSATILE_FPGA_IRQ_NR 293 int 294 default 4 295 depends on VERSATILE_FPGA_IRQ 296 297config XTENSA_MX 298 bool 299 select IRQ_DOMAIN 300 select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP 301 302config 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 311config 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 319config 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 326config MIPS_GIC 327 bool 328 select GENERIC_IRQ_IPI if SMP 329 select IRQ_DOMAIN_HIERARCHY 330 select MIPS_CM 331 332config INGENIC_IRQ 333 bool 334 depends on MACH_INGENIC 335 default y 336 337config 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 349config IMX_GPCV2 350 bool 351 select IRQ_DOMAIN 352 help 353 Enables the wakeup IRQs for IMX platforms with GPCv2 block 354 355config IRQ_MXS 356 def_bool y if MACH_ASM9260 || ARCH_MXS 357 select IRQ_DOMAIN 358 select STMP_DEVICE 359 360config MSCC_OCELOT_IRQ 361 bool 362 select IRQ_DOMAIN 363 select GENERIC_IRQ_CHIP 364 365config MVEBU_GICP 366 bool 367 368config MVEBU_ICU 369 bool 370 371config MVEBU_ODMI 372 bool 373 select GENERIC_MSI_IRQ 374 375config MVEBU_PIC 376 bool 377 378config MVEBU_SEI 379 bool 380 381config LS_EXTIRQ 382 def_bool y if SOC_LS1021A || ARCH_LAYERSCAPE 383 select MFD_SYSCON 384 385config LS_SCFG_MSI 386 def_bool y if SOC_LS1021A || ARCH_LAYERSCAPE 387 depends on PCI_MSI 388 389config PARTITION_PERCPU 390 bool 391 392config STM32_EXTI 393 bool 394 select IRQ_DOMAIN 395 select GENERIC_IRQ_CHIP 396 397config 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 405config 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 413config 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 421config 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 430config 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 438config 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 447config 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 456config 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 464config 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 472config 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 479config 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 494config 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 503config 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 513config 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 524config 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 535config RISCV_INTC 536 bool 537 depends on RISCV 538 539config SIFIVE_PLIC 540 bool 541 depends on RISCV 542 select IRQ_DOMAIN_HIERARCHY 543 select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP 544 545config 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 552config 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 568config 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 577config 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 587config 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 596config 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 604config 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 613config 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 623config 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 632config 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 641config 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 647config IRQ_IDT3243X 648 bool 649 select GENERIC_IRQ_CHIP 650 select IRQ_DOMAIN 651 652config 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 661config 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 669config 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 678endmenu 679