Lines Matching +full:thermal +full:- +full:sensors

1 # SPDX-License-Identifier: (GPL-2.0)
4 ---
5 $id: http://devicetree.org/schemas/thermal/thermal-zones.yaml#
6 $schema: http://devicetree.org/meta-schemas/base.yaml#
8 title: Thermal zone
11 - Daniel Lezcano <daniel.lezcano@linaro.org>
14 Thermal management is achieved in devicetree by describing the sensor hardware
15 and the software abstraction of cooling devices and thermal zones required to
16 take appropriate action to mitigate thermal overloads.
18 The following node types are used to completely describe a thermal management
20 - thermal-sensor: device that measures temperature, has SoC-specific bindings
21 - cooling-device: device used to dissipate heat either passively or actively
22 - thermal-zones: a container of the following node types used to describe all
23 thermal data for the platform
25 This binding describes the thermal-zones.
27 The polling-delay properties of a thermal-zone are bound to the maximum dT/dt
28 (temperature derivative over time) in two situations for a thermal zone:
29 1. when passive cooling is activated (polling-delay-passive)
30 2. when the zone just needs to be monitored (polling-delay) or when
42 const: thermal-zones
44 A /thermal-zones node is required in order to use the thermal framework to
45 manage input from the various thermal zones in the system in order to
46 mitigate thermal overload conditions. It does not represent a real device
47 in the system, but acts as a container to link a thermal sensor device,
48 platform-data regarding temperature thresholds and the mitigation actions
52 # Node name is limited in size due to Linux kernel requirements - 19
55 "^[a-zA-Z][a-zA-Z0-9\\-]{1,10}-thermal$":
58 Each thermal zone node contains information about how frequently it
60 this zone, one sub-node containing the various trip points for this
61 zone and one sub-node containing all the zone cooling-maps.
64 polling-delay:
68 checking this thermal zone. Setting this to 0 disables the polling
69 timers setup by the thermal framework and assumes that the thermal
70 sensors in this zone support interrupts.
72 polling-delay-passive:
76 checking this thermal zone while doing passive cooling. Setting
77 this to 0 disables the polling timers setup by the thermal
78 framework and assumes that the thermal sensors in this zone
81 critical-action:
87 Choose 'reboot' with care, as the hardware may be in thermal stress,
90 over the thermal control.
93 - shutdown
94 - reboot
96 thermal-sensors:
97 $ref: /schemas/types.yaml#/definitions/phandle-array
100 The thermal sensor phandle and sensor specifier used to monitor this
101 thermal zone.
104 $ref: /schemas/types.yaml#/definitions/uint32-array
107 that binds all the sensors listed in this thermal zone.
110 z = c0 * x0 + c1 * x1 + ... + c(n-1) * x(n-1) + cn
114 coefficients are ordered and are matched with sensors by means of the
117 sustainable-power:
120 An estimate of the sustainable power (in mW) that this thermal zone
122 sustainable power of a 4-inch phone is typically 2000mW, while on a
123 10-inch tablet is around 4500mW.
129 which the thermal framework needs to take action. The actions to
130 be taken are defined in another node called cooling-maps.
133 "^[a-zA-Z][a-zA-Z0-9\\-_]{0,63}$":
139 minimum: -273000
151 (trip temperature - hysteresis). This potentially prevents a
158 - active # enable active cooling e.g. fans
159 - passive # enable passive cooling e.g. throttling cpu
160 - hot # send notification to driver
161 - critical # send notification to driver, trigger shutdown
173 the thermal driver (if a .notify callback is registered).
183 - temperature
184 - hysteresis
185 - type
190 cooling-maps:
194 This node describes the action to be taken when a thermal zone
200 "^map[-a-zA-Z0-9]*$":
207 A phandle of a trip point node within this thermal zone.
209 cooling-device:
210 $ref: /schemas/types.yaml#/definitions/phandle-array
214 device. Using the THERMAL_NO_LIMIT (-1UL) constant in the
215 cooling-device phandle limit specifier lets the framework
222 The cooling contribution to the thermal zone of the referred
225 thermal zone.
228 - trip
229 - cooling-device
233 - thermal-sensors
240 - |
241 #include <dt-bindings/interrupt-controller/arm-gic.h>
242 #include <dt-bindings/thermal/thermal.h>
246 #address-cells = <2>;
247 #size-cells = <2>;
251 tsens0: thermal-sensor@c263000 {
252 compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
255 #qcom,sensors = <13>;
258 interrupt-names = "uplow", "critical";
259 #thermal-sensor-cells = <1>;
262 tsens1: thermal-sensor@c265000 {
263 compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
266 #qcom,sensors = <8>;
269 interrupt-names = "uplow", "critical";
270 #thermal-sensor-cells = <1>;
276 thermal-zones {
277 cpu0-thermal {
278 polling-delay-passive = <250>;
279 polling-delay = <1000>;
281 thermal-sensors = <&tsens0 1>;
284 cpu0_alert0: trip-point0 {
290 cpu0_alert1: trip-point1 {
303 cooling-maps {
307 cooling-device = <&CPU0 3 3>, <&CPU1 3 3>,
314 cooling-device = <&CPU0 5 5>, <&CPU1 5 5>,
322 cluster0-thermal {
323 polling-delay-passive = <250>;
324 polling-delay = <1000>;
326 thermal-sensors = <&tsens0 5>;
329 cluster0_alert0: trip-point0 {
344 gpu-top-thermal {
345 polling-delay-passive = <250>;
346 polling-delay = <1000>;
348 thermal-sensors = <&tsens0 11>;
351 gpu1_alert0: trip-point0 {