Kconfig 19 KB

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