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