Hi Tony, On 2/14/2019 11:16 PM, Tony Lindgren wrote: > * Lokesh Vutla <lokeshvutla@xxxxxx> [190214 17:32]: >> Hi Tony, >> Please do not snip the on going discussion. >> >> On 2/14/2019 9:11 PM, Tony Lindgren wrote: >>> * Lokesh Vutla <lokeshvutla@xxxxxx> [190214 08:39]: >>>> 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. >>> >>> We need to describe hardware in the device tree, not firmware. >>> >>> If you have something discoverable from the firmware, you should >>> have the device driver query it from sysfw based on a hardware >>> property, not based on some invented enumeration in the firmware. >> >> Yes we are already querying sysfw for all the irq ranges that can be >> discoverable. The topic of discussion here is about the parent interrupt >> controller id. I am not sure how you are expecting an id be discoverable >> from system firmware especially with a name. > > Well names are quite standard in dts (but should be used with > the phandle + offset). Think for example interrupt-names and > reg-names :) > >>> If there is some device to firmware translation needed, hide that >>> into the device driver and keep it out of the device tree. >> >> If preferred this can be moved to of_match_data attached to each >> compatible property. Then for each SoC a new compatible needs to be created. > > Hiding the ID into the device driver and compatible property > makes sense to me if the id is based on SoC + firmware. > > But I'd rather have a proper hardware based phandle + index > type mapping in the dts if possible though. The idea about sysfw here is that Linux is not aware of anything about this device(Interrupt Router). It cannot even access any of its registers. As a user Linux should know who is the parent to which the Interrut router output should be configured. Then query sysfw about the range of gic irqs allocated to it. Now for configuration, Linux should pass the the input to interrupt router, gic irq no, and gic id(by which sysfw uniquely identifies GIC interrupt controller with the SoC). Based on these parameters Interrupt Router registers gets configured. So for the above configuration we need the gic_id for which the dt property "ti,sci-dst-id" is used. Thanks and regards, Lokesh > > What does this id really consist of? > > Regards, > > Tony >