Message ID | 1595927918-19845-6-git-send-email-grzegorz.jaszczyk@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | Add TI PRUSS Local Interrupt Controller IRQChip driver | expand |
On 7/28/20 4:18 AM, Grzegorz Jaszczyk wrote: > From: Suman Anna <s-anna@ti.com> > > The K3 AM65x and J721E SoCs have the next generation of the PRU-ICSS IP, > commonly called ICSSG. The PRUSS INTC present within the ICSSG supports > more System Events (160 vs 64), more Interrupt Channels and Host Interrupts > (20 vs 10) compared to the previous generation PRUSS INTC instances. The > first 2 and the last 10 of these host interrupt lines are used by the > PRU and other auxiliary cores and sub-modules within the ICSSG, with 8 > host interrupts connected to MPU. The host interrupts 5, 6, 7 are also > connected to the other ICSSG instances within the SoC and can be > partitioned as per system integration through the board dts files. > > Enhance the PRUSS INTC driver to add support for this ICSSG INTC > instance. > > Signed-off-by: Suman Anna <s-anna@ti.com> > Signed-off-by: Grzegorz Jaszczyk <grzegorz.jaszczyk@linaro.org> > --- There is not much left in this patch. Might as well squash this into "irqchip/irq-pruss-intc: Add a PRUSS irqchip driver for PRUSS interrupts".
diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig index 03e6ac1..d3297b7 100644 --- a/drivers/irqchip/Kconfig +++ b/drivers/irqchip/Kconfig @@ -495,7 +495,7 @@ config TI_SCI_INTA_IRQCHIP config TI_PRUSS_INTC tristate "TI PRU-ICSS Interrupt Controller" - depends on ARCH_DAVINCI || SOC_AM33XX || SOC_AM43XX || SOC_DRA7XX || ARCH_KEYSTONE + depends on ARCH_DAVINCI || SOC_AM33XX || SOC_AM43XX || SOC_DRA7XX || ARCH_KEYSTONE || ARCH_K3 select IRQ_DOMAIN help This enables support for the PRU-ICSS Local Interrupt Controller diff --git a/drivers/irqchip/irq-pruss-intc.c b/drivers/irqchip/irq-pruss-intc.c index c13ba14..a56065b 100644 --- a/drivers/irqchip/irq-pruss-intc.c +++ b/drivers/irqchip/irq-pruss-intc.c @@ -623,11 +623,20 @@ static const struct pruss_intc_match_data pruss_intc_data = { .num_host_intrs = 10, }; +static const struct pruss_intc_match_data icssg_intc_data = { + .num_system_events = 160, + .num_host_intrs = 20, +}; + static const struct of_device_id pruss_intc_of_match[] = { { .compatible = "ti,pruss-intc", .data = &pruss_intc_data, }, + { + .compatible = "ti,icssg-intc", + .data = &icssg_intc_data, + }, { /* sentinel */ }, }; MODULE_DEVICE_TABLE(of, pruss_intc_of_match);