Hi Tony, On 19/02/19 11:26 PM, Tony Lindgren wrote: > * Tony Lindgren <tony@xxxxxxxxxxx> [190219 17:11]: >> * Lokesh Vutla <lokeshvutla@xxxxxx> [190219 16:19]: >>> yes. How different is this from any of the above mentioned drivers using >>> firmware specific ids. Like sci pm domain[1] driver utilizes the same >>> device id for enabling any device in the system. Similarly clock >>> driver[2] uses the same device ids and clock ids specified by firmware. >>> There are more which similarly represents firmware ids from DT. >>> >>> [1] Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt >>> [2] Documentation/devicetree/bindings/clock/ti,sci-clk.txt >> >> That's horrible. We really must not use any firmware invented >> numbers in the device as they do not describe hardware. > > No firmware invented numbers in the device tree I mean naturally. > Drivers do whatever they need to do to deal with the firmware. Let's look at these similar other examples available inside Linux: 1: ./Documentation/devicetree/bindings/arm/arm,scmi.txt mentions the following: - #clock-cells : Should be 1. Contains the Clock ID value used by SCMI commands. - #power-domain-cells : Should be 1. Contains the device or the power domain ID value used by SCMI commands. 2: Documentation/devicetree/bindings/arm/arm,scpi.txt mentions the following: - #power-domain-cells : Should be 1. Contains the device or the power domain ID value used by SCPI commands. 3: Documentation/devicetree/bindings/firmware/nvidia,tegra186-bpmp.txt the firmware specified identifier are defined in the following header files: include/dt-bindings/clock/tegra186-clock.h include/dt-bindings/power/tegra186-powergate.h include/dt-bindings/reset/tegra186-reset.h 4. Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.txt mentions the following: "Output clocks are registered based on clock information received from firmware. Output clocks indexes are mentioned in include/dt-bindings/clock/xlnx,zynqmp-clk.h." 5. Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt mentions the following: - #power-domain-cells: Must be 1. Contains the Resource ID used by SCU commands. See detailed Resource ID list from: include/dt-bindings/firmware/imx/rsrc.h - The clock consumer should specify the desired clock by having the clock ID in its "clocks" phandle cell. See the full list of clock IDs from: include/dt-bindings/clock/imx8qxp-clock. 6. Documentation/devicetree/bindings/arm/psci.txt have the following properties: - cpu_suspend : Function ID for CPU_SUSPEND operation - cpu_off : Function ID for CPU_OFF operation - cpu_on : Function ID for CPU_ON operation - migrate : Function ID for MIGRATE operation All the above examples uses the firmware identifiers for devices/clocks or for other functionalities and use them directly in DT. These are all somewhat similar to TI sysfw which runs on a micro-controller and tries to abstract certain functionalities from HLOS. There are many more such examples but I listed only a few users. The feedback you are providing is not going to work for any of the above listed firmware interfaces. Thanks and regards, Lokesh