Re: [PATCH v2 01/14] dt-bindings: remoteproc: Add TI PRUSS bindings

From: Linus Walleij
Date: Fri Feb 08 2019 - 08:51:42 EST

On Mon, Feb 4, 2019 at 3:24 PM Roger Quadros <rogerq@xxxxxx> wrote:

> From: Suman Anna <s-anna@xxxxxx>
> This patch adds the bindings for the Programmable Real-Time Unit
> and Industrial Communication Subsystem (PRU-ICSS) present on various
> SoCs such as AM33xx, AM437x, AM57xx, Keystone 66AK2G SoC, etc. It is
> present on the Davinci based OMAPL138 SoCs and K3 architecture
> based AM65x SoCs as well (not covered for now).
> Signed-off-by: Suman Anna <s-anna@xxxxxx>
> Signed-off-by: Roger Quadros <rogerq@xxxxxx>

> + pruss_intc: intc@20000 {
> + compatible = "ti,am3356-pruss-intc";
> + reg = <0x20000 0x2000>;
> + reg-names = "intc";
> + interrupt-controller;
> + #interrupt-cells = <1>;
> + interrupts = <20 21 22 23 24 25 26 27>;
> + interrupt-names = "host2", "host3", "host4",
> + "host5", "host6", "host7",
> + "host8", "host9";

If thsese interrupts are mapped 1-to-1 to a parent interrupt controller
then this is a hierarchical interrupt domain and then these should
be handled locally in the driver as offset from child to parent
statically encoded in the driver.

Several old drivers and old device tree bindings make this kind
of maps, but it is not how we do it anymore, if we can avoid it.

To be able to use hierarchical interrupt domain in the kernel, the top
interrupt controller must use the hierarchical (v2) irqdomain, so
if this is anything else than the ARM GIC it will be an interesting
undertaking to handle this.

The more I understand of hierarchical irqdomains, the more of
workarounds where we should be using it I see, we really need
to spread this knowledge. Using it requires a lot of upfront work
sometimes, sorry about that but the end result is so much better.

Linus Walleij