Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d8a44fe7 authored by Punit Agrawal's avatar Punit Agrawal Committed by Sudeep Holla
Browse files

Documentation: add DT bindings for ARM SCPI sensors



The System Control Processor (SCP) provides access to SoC sensors via
the System Control and Power Interface (SCPI) Message Protocol. Add
bindings to allow probing of these sensors. Also support referencing
of the sensors for setting up thermal zones via the thermal DT
bindings.

Signed-off-by: default avatarPunit Agrawal <punit.agrawal@arm.com>
Acked-by: default avatarRob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
parent 8def3103
Loading
Loading
Loading
Loading
+38 −0
Original line number Diff line number Diff line
@@ -72,8 +72,25 @@ Required sub-node properties:
- compatible : should be "arm,juno-scp-shmem" for Non-secure SRAM based
	       shared memory on Juno platforms

Sensor bindings for the sensors based on SCPI Message Protocol
--------------------------------------------------------------
SCPI provides an API to access the various sensors on the SoC.

Required properties:
- compatible : should be "arm,scpi-sensors".
- #thermal-sensor-cells: should be set to 1. This property follows the
			 thermal device tree bindings[2].

			 Valid cell values are raw identifiers (Sensor
			 ID) as used by the firmware. Refer to
			 platform documentation for your
			 implementation for the IDs to use. For Juno
			 R0 and Juno R1 refer to [3].

[0] http://infocenter.arm.com/help/topic/com.arm.doc.dui0922b/index.html
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
[2] Documentation/devicetree/bindings/thermal/thermal.txt
[3] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0922b/apas03s22.html

Example:

@@ -122,6 +139,11 @@ scpi_protocol: scpi@2e000000 {
			clock-output-names = "pxlclk0", "pxlclk1";
		};
	};

	scpi_sensors0: sensors {
		compatible = "arm,scpi-sensors";
		#thermal-sensor-cells = <1>;
	};
};

cpu@0 {
@@ -136,6 +158,17 @@ hdlcd@7ff60000 {
	clocks = <&scpi_clk 4>;
};

thermal-zones {
	soc_thermal {
		polling-delay-passive = <100>;
		polling-delay = <1000>;

				/* sensor         ID */
		thermal-sensors = <&scpi_sensors0 3>;
		...
	};
};

In the above example, the #clock-cells is set to 1 as required.
scpi_dvfs has 3 output clocks namely: atlclk, aplclk, and gpuclk with 0,
1 and 2 as clock-indices. scpi_clk has 2 output clocks namely: pxlclk0
@@ -148,3 +181,8 @@ scpi_dvfs i.e. "atlclk".
Similarly the second example is hdlcd@7ff60000 and it has pxlclk1 as input
clock. '4' in the clock specifier here points to the second entry
in the output clocks of scpi_clocks  i.e. "pxlclk1"

The thermal-sensors property in the soc_thermal node uses the
temperature sensor provided by SCP firmware to setup a thermal
zone. The ID "3" is the sensor identifier for the temperature sensor
as used by the firmware.