Re: [PATCH v5 05/10] dt-bindings: irqchip: Introduce TISCI Interrupt router bindings
From: Lokesh Vutla <hidden>
Date: 2019-02-20 05:54:39
Also in:
linux-devicetree, lkml
Hi Tony, On 19/02/19 11:26 PM, Tony Lindgren wrote:
* Tony Lindgren [off-list ref] [190219 17:11]:quoted
* Lokesh Vutla [off-list ref] [190219 16:19]:quoted
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.txtThat'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
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel