Skip to content

Commit 70afdab

Browse files
nxpfrankliMarc Zyngier
authored andcommitted
irqchip: Add IMX MU MSI controller driver
The MU block found in a number of Freescale/NXP SoCs supports generating IRQs by writing data to a register. This enables the MU block to be used as a MSI controller, by leveraging the platform-MSI API. Signed-off-by: Frank Li <[email protected]> [maz: dropped pointless dma-iommu.h and of_pci.h includes] Signed-off-by: Marc Zyngier <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 334f7d4 commit 70afdab

File tree

3 files changed

+468
-0
lines changed

3 files changed

+468
-0
lines changed

drivers/irqchip/Kconfig

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,20 @@ config IMX_INTMUX
481481
help
482482
Support for the i.MX INTMUX interrupt multiplexer.
483483

484+
config IMX_MU_MSI
485+
tristate "i.MX MU used as MSI controller"
486+
depends on OF && HAS_IOMEM
487+
default m if ARCH_MXC
488+
select IRQ_DOMAIN
489+
select IRQ_DOMAIN_HIERARCHY
490+
select GENERIC_MSI_IRQ_DOMAIN
491+
help
492+
Provide a driver for the MU block used as a CPU-to-CPU MSI
493+
controller. This requires a specially crafted DT to make use
494+
of this driver.
495+
496+
If unsure, say N
497+
484498
config LS1X_IRQ
485499
bool "Loongson-1 Interrupt Controller"
486500
depends on MACH_LOONGSON32

drivers/irqchip/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ obj-$(CONFIG_RISCV_INTC) += irq-riscv-intc.o
9999
obj-$(CONFIG_SIFIVE_PLIC) += irq-sifive-plic.o
100100
obj-$(CONFIG_IMX_IRQSTEER) += irq-imx-irqsteer.o
101101
obj-$(CONFIG_IMX_INTMUX) += irq-imx-intmux.o
102+
obj-$(CONFIG_IMX_MU_MSI) += irq-imx-mu-msi.o
102103
obj-$(CONFIG_MADERA_IRQ) += irq-madera.o
103104
obj-$(CONFIG_LS1X_IRQ) += irq-ls1x.o
104105
obj-$(CONFIG_TI_SCI_INTR_IRQCHIP) += irq-ti-sci-intr.o

0 commit comments

Comments
 (0)