Skip to content

Commit

Permalink
Documentation: add DT bindings for ARM SCPI sensors
Browse files Browse the repository at this point in the history
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: Punit Agrawal <punit.agrawal@arm.com>
Acked-by: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
  • Loading branch information
Punit Agrawal authored and Sudeep Holla committed Oct 9, 2015
1 parent 8def310 commit d8a44fe
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions Documentation/devicetree/bindings/arm/arm,scpi.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down Expand Up @@ -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 {
Expand All @@ -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
Expand All @@ -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.

0 comments on commit d8a44fe

Please sign in to comment.