irqchip/irq-pruss-intc: Add logic for handling reserved interrupts
authorSuman Anna <s-anna@ti.com>
Wed, 16 Sep 2020 16:36:36 +0000 (18:36 +0200)
committerMarc Zyngier <maz@kernel.org>
Thu, 17 Sep 2020 11:20:31 +0000 (12:20 +0100)
commit6016f32d1de2798cc88c1a4b703d0ea096c19793
tree17effef81c1f6047c60ca553fa2bb873436fbbe9
parent04e2d1e06978026759e507ff41187d7a7d2c389b
irqchip/irq-pruss-intc: Add logic for handling reserved interrupts

The PRUSS INTC has a fixed number of output interrupt lines that are
connected to a number of processors or other PRUSS instances or other
devices (like DMA) on the SoC. The output interrupt lines 2 through 9
are usually connected to the main Arm host processor and are referred
to as host interrupts 0 through 7 from ARM/MPU perspective.

All of these 8 host interrupts are not always exclusively connected
to the Arm interrupt controller. Some SoCs have some interrupt lines
not connected to the Arm interrupt controller at all, while a few others
have the interrupt lines connected to multiple processors in which they
need to be partitioned as per SoC integration needs. For example, AM437x
and 66AK2G SoCs have 2 PRUSS instances each and have the host interrupt 5
connected to the other PRUSS, while AM335x has host interrupt 0 shared
between MPU and TSC_ADC and host interrupts 6 & 7 shared between MPU and
a DMA controller.

Add logic to the PRUSS INTC driver to ignore both these shared and
invalid interrupts.

Co-developed-by: Grzegorz Jaszczyk <grzegorz.jaszczyk@linaro.org>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Grzegorz Jaszczyk <grzegorz.jaszczyk@linaro.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
drivers/irqchip/irq-pruss-intc.c