Re: [PATCH v5 05/10] dt-bindings: irqchip: Introduce TISCI Interrupt router bindings

From: Lokesh Vutla
Date: Thu Feb 14 2019 - 03:39:50 EST


Hi Tony,

On 13/02/19 8:56 PM, Tony Lindgren wrote:
> * Lokesh Vutla <lokeshvutla@xxxxxx> [190213 04:26]:
>> Hi Tony,
>>
>> On 12/02/19 9:52 PM, Tony Lindgren wrote:
>>> Hi,
>>>
>>> * Lokesh Vutla <lokeshvutla@xxxxxx> [190212 07:43]:
>>>> +Example: +-------- +The following example demonstrates both interrupt
>>>> router node and the consumer +node(main gpio) on the AM654 SoC: +
>>>> +main_intr: interrupt-controller0 { + compatible = "ti,sci-intr"; +
>>>> interrupt-controller; + interrupt-parent = <&gic500>; +
>>>> #interrupt-cells = <4>; + ti,sci = <&dmsc>; + ti,sci-dst-id = <56>; +
>>>> ti,sci-rm-range-girq = <0x1>; +};
>>>
>>> Can you describe a bit what the "ti,sci-dst-id" is above?
>>>
>>> These IDs seem to be listed at at [0] below, but is it really a property
>>> of the hardware? Or is it some enumeration of SoC devices in the
>>> firmware?
>>
>> This is the way that sysfw describes the hardware. In this case it is GIC
>> and it is identified by this ID.
>
> If this ID is an enumeration in the sysfw rather than an actual hardware
> property it should not be in the device tree. If so,

Devicetree-specification-v0.2[1] "Section 1.1 Purpose and Scope" mentions that
devicetree specification provides a complete boot program to client program
interface definition. Where boot program here is the sysfw and client program is
Linux. In this case we are describing the id which is the destination interrupt
controller to which the irqs are supposed to be attached.

> the device driver should request the id from the sysfw based on a name. That
> is, if no struct device or device phandle can

>From a scalability perspective using a name to get a device id might worsen
things. There are hundreds of devices within the SoC and standardizing a name
for each device and making sure using the same name across all future SoCs might
be a bit pain. If there are more than one instance of the same device then name
that should be requested is different with in the same driver.

IMHO, device ids are something which can be used in DT. There are many other
things like the interrupt ranges etc.. which are discoverable from sysfw and we
are implementing it.

> be used.
> > The problem with using enumeration in the dts is that it requires
> maintaining the dts, driver(s) and possibly firmware in sync. And that might

The idea here is device ids are not going to change for a SoC. For new SoCs
within the same architecture ids will change and we will have new dts or this
new SoC.

> change between SoCs variants when new devices get added and removed.
>

[1]
https://github.com/devicetree-org/devicetree-specification/releases/download/v0.2/devicetree-specification-v0.2.pdf

Thanks and regards,
Lokesh