Skip to content

Commit afdea51

Browse files
Stanimir Varbanovpopcornmix
authored andcommitted
irqchip: Add Broadcom bcm2712 MSI-X interrupt controller
Add an interrupt controller driver for MSI-X Interrupt Peripheral (MIP) hardware block found in bcm2712. The interrupt controller is used to handle MSI-X interrupts from peripherials behind PCIe endpoints like RP1 south bridge found in RPi5. There are two MIPs on bcm2712, the first has 64 consecutive SPIs assigned to 64 output vectors, and the second has 17 SPIs, but only 8 of them are consecutive starting at the 8th output vector. Signed-off-by: Stanimir Varbanov <svarbanov@suse.de>
1 parent 849b807 commit afdea51

File tree

3 files changed

+196
-219
lines changed

3 files changed

+196
-219
lines changed

drivers/irqchip/Kconfig

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,20 @@ config I8259
110110
select IRQ_DOMAIN
111111

112112
config BCM2712_MIP
113-
bool "Broadcom 2712 MSI-X Interrupt Peripheral support"
113+
tristate "Broadcom BCM2712 MSI-X Interrupt Peripheral support"
114+
depends on ARCH_BRCMSTB || COMPILE_TEST
115+
default m if ARCH_BRCMSTB
114116
depends on ARM_GIC
115117
select GENERIC_IRQ_CHIP
116-
select IRQ_DOMAIN
118+
select IRQ_DOMAIN_HIERARCHY
119+
select GENERIC_MSI_IRQ
120+
select IRQ_MSI_LIB
117121
help
118-
Enable support for the Broadcom BCM2712 MSI-X target peripheral.
122+
Enable support for the Broadcom BCM2712 MSI-X target peripheral
123+
(MIP) needed by brcmstb PCIe to handle MSI-X interrupts on
124+
Raspberry Pi 5.
125+
126+
If unsure say n.
119127

120128
config BCM6345_L1_IRQ
121129
bool

drivers/irqchip/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ obj-$(CONFIG_XTENSA_MX) += irq-xtensa-mx.o
6262
obj-$(CONFIG_XILINX_INTC) += irq-xilinx-intc.o
6363
obj-$(CONFIG_IRQ_CROSSBAR) += irq-crossbar.o
6464
obj-$(CONFIG_SOC_VF610) += irq-vf610-mscm-ir.o
65-
obj-$(CONFIG_BCM2712_MIP) += irq-bcm2712-mip.o
65+
obj-$(CONFIG_BCM2712_MIP) += irq-bcm2712-mip.o
6666
obj-$(CONFIG_BCM6345_L1_IRQ) += irq-bcm6345-l1.o
6767
obj-$(CONFIG_BCM7038_L1_IRQ) += irq-bcm7038-l1.o
6868
obj-$(CONFIG_BCM7120_L2_IRQ) += irq-bcm7120-l2.o

0 commit comments

Comments
 (0)