Lines Matching +full:cooling +full:- +full:levels
6 such as trip points, polling intervals, sensors and cooling devices
15 - thermal sensors: devices which may be used to take temperature
17 - cooling devices: devices which may be used to dissipate heat.
18 - trip points: describe key temperatures at which cooling is recommended. The
20 - cooling maps: used to describe links between trip points and cooling devices;
21 - thermal zones: used to describe thermal data within the hardware;
33 - #thermal-sensor-cells: Used to provide sensor device specific information
41 * Cooling device nodes
43 Cooling devices are nodes providing control on power dissipation. There
46 cooling. A typical passive cooling is a CPU that has dynamic voltage and
47 frequency scaling (DVFS), and uses lower frequencies as cooling states.
49 the dissipated heat, which is known as active cooling, e.g. regulating
50 fan speeds. In both cases, cooling devices shall have a way to determine
51 the state of cooling in which the device is.
53 Any cooling device has a range of cooling states (i.e. different levels
54 of heat dissipation). For example a fan's cooling states correspond to
55 the different fan speeds possible. Cooling states are referred to by
57 dissipation. The precise set of cooling states associated with a device
59 For more examples of cooling devices, refer to the example sections below.
62 - #cooling-cells: Used to provide cooling device specific information
64 Size: one cell to specify minimum and maximum cooling state used
66 cooling state requested and the second cell is
67 the maximum cooling state requested in the reference.
68 See Cooling device maps section below for more details
69 on how consumers refer to cooling devices.
78 - temperature: An integer indicating the trip temperature level,
82 - hysteresis: A low hysteresis value on temperature property (above).
86 - type: a string containing the trip type. Expected values are:
87 "active": A trip point to enable active cooling
88 "passive": A trip point to enable passive cooling
93 * Cooling device maps
95 The cooling device maps node is a node to describe how cooling devices
96 get assigned to trip points of the zone. The cooling devices are expected
100 - cooling-device: A list of phandles of cooling devices with their specifiers,
101 Type: phandle + referring to which cooling devices are used in this
102 cooling specifier binding. In the cooling specifier, the first cell
103 is the minimum cooling state and the second cell
104 is the maximum cooling state used in this map.
105 - trip: A phandle of a trip point node within the same thermal
110 - contribution: The cooling contribution to the thermal zone of the
111 Type: unsigned referred cooling device at the referred trip point.
113 of all cooling contributions within a thermal zone.
115 Note: Using the THERMAL_NO_LIMIT (-1UL) constant in the cooling-device phandle
117 (i) - minimum state allowed for minimum cooling state used in the reference.
118 (ii) - maximum state allowed for maximum cooling state used in the reference.
119 Refer to include/dt-bindings/thermal/thermal.h for definition of this constant.
124 for describing a thermal zone, including its cooling device bindings. The
125 thermal zone node must contain, apart from its own properties, one sub-node
126 containing trip nodes and one sub-node containing all the zone cooling maps.
129 - polling-delay: The maximum number of milliseconds to wait between polls
133 - polling-delay-passive: The maximum number of milliseconds to wait
134 Type: unsigned between polls when performing passive cooling.
137 - thermal-sensors: A list of thermal sensor phandles and sensor specifier
142 - trips: A sub-node which is a container of only trip point nodes
143 Type: sub-node required to describe the thermal zone.
146 - cooling-maps: A sub-node which is a container of only cooling device
147 Type: sub-node map nodes, used to describe the relation between trips
148 and cooling devices.
150 - coefficients: An array of integers (one signed cell) containing
152 Elem size: one cell the sensors listed in the thermal-sensors property.
155 Z = c0 * x0 + c1 * x1 + ... + c(n-1) * x(n-1) + cn.
161 - sustainable-power: An estimate of the sustainable power (in mW) that the
170 (i) - when passive cooling is activated (polling-delay-passive); and
171 (ii) - when the zone just needs to be monitored (polling-delay) or
172 when active cooling is activated.
181 * The thermal-zones node
183 The "thermal-zones" node is a container for all thermal zone nodes. It shall
184 contain only sub-nodes describing thermal zones as in the section
185 "Thermal zone nodes". The "thermal-zones" node appears under "/".
192 (a) - CPU thermal zone
195 using one single sensor as temperature source and many cooling devices and
198 #include <dt-bindings/thermal/thermal.h>
202 * Here is an example of describing a cooling device for a DVFS
204 * The cooling states possible are 0..3, and they are
205 * used as OPP indexes. The minimum cooling state is 0, which means
207 * cooling state is 3, which means only the lowest OPPs (198MHz@0.85V)
212 operating-points = <
219 #cooling-cells = <2>; /* min followed by max */
228 * (represented as 0-9).
232 #cooling-cells = <2>; /* min followed by max */
243 #thermal-sensor-cells = <0>;
247 thermal-zones {
248 cpu_thermal: cpu-thermal {
249 polling-delay-passive = <250>; /* milliseconds */
250 polling-delay = <1000>; /* milliseconds */
252 thermal-sensors = <&bandgap0>;
255 cpu_alert0: cpu-alert0 {
260 cpu_alert1: cpu-alert1 {
265 cpu_crit: cpu-crit {
272 cooling-maps {
275 cooling-device = <&fan0 THERMAL_NO_LIMIT 4>;
279 cooling-device = <&fan0 5 THERMAL_NO_LIMIT>, <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
286 used to monitor the zone 'cpu-thermal' using its sole sensor. A fan
288 different cooling states 0-9. It is used to remove the heat out of
289 the thermal zone 'cpu-thermal' using its cooling states
291 at 90C, as an example of active cooling. The same cooling device is used at
293 linked to the same thermal zone, 'cpu-thermal', as a passive cooling device,
294 using all its cooling states at trip point 'cpu_alert1',
295 which is a trip point at 100C. On the thermal zone 'cpu-thermal', at the
299 (b) - IC with several internal sensors
307 #include <dt-bindings/thermal/thermal.h>
316 #thermal-sensor-cells = <1>;
320 thermal-zones {
321 cpu_thermal: cpu-thermal {
322 polling-delay-passive = <250>; /* milliseconds */
323 polling-delay = <1000>; /* milliseconds */
326 thermal-sensors = <&bandgap0 0>;
330 cpu_alert: cpu-alert {
335 cpu_crit: cpu-crit {
342 cooling-maps {
343 /* each zone within the SoC may have its own cooling */
348 gpu_thermal: gpu-thermal {
349 polling-delay-passive = <120>; /* milliseconds */
350 polling-delay = <1000>; /* milliseconds */
353 thermal-sensors = <&bandgap0 1>;
357 gpu_alert: gpu-alert {
362 gpu_crit: gpu-crit {
369 cooling-maps {
370 /* each zone within the SoC may have its own cooling */
375 dsp_thermal: dsp-thermal {
376 polling-delay-passive = <50>; /* milliseconds */
377 polling-delay = <1000>; /* milliseconds */
380 thermal-sensors = <&bandgap0 2>;
384 dsp_alert: dsp-alert {
389 dsp_crit: gpu-crit {
396 cooling-maps {
397 /* each zone within the SoC may have its own cooling */
411 #thermal-sensor-cells property and using the first cell of the sensor
416 and cooling maps.
419 (c) - Several sensors within one single thermal zone
424 #include <dt-bindings/thermal/thermal.h>
433 #thermal-sensor-cells = <0>;
444 #thermal-sensor-cells = <0>;
448 thermal-zones {
449 cpu_thermal: cpu-thermal {
450 polling-delay-passive = <250>; /* milliseconds */
451 polling-delay = <1000>; /* milliseconds */
453 thermal-sensors = <&bandgap0>, /* cpu */
456 /* hotspot = 100 * bandgap - 120 * adc + 484 */
457 coefficients = <100 -120 484>;
463 cooling-maps {
475 hotspot = 100 * bandgap - 120 * adc + 484
483 thermal-sensors = <&adc>;
488 (d) - Board thermal
491 with many sensors and many cooling devices.
493 #include <dt-bindings/thermal/thermal.h>
502 #thermal-sensor-cells = <1>; /* sensor internal ID */
506 thermal-zones {
507 batt-thermal {
508 polling-delay-passive = <500>; /* milliseconds */
509 polling-delay = <2500>; /* milliseconds */
512 thermal-sensors = <&adc_dummy 4>;
518 cooling-maps {
523 board_thermal: board-thermal {
524 polling-delay-passive = <1000>; /* milliseconds */
525 polling-delay = <2500>; /* milliseconds */
528 thermal-sensors = <&adc_dummy 0>, /* pcb top edge */
536 coefficients = <1200 -345 890>;
538 sustainable-power = <2500>;
542 cpu_trip: cpu-trip {
547 gpu_trip: gpu-trip {
552 lcd_trip: lcp-trip {
557 crit_trip: crit-trip {
564 cooling-maps {
567 cooling-device = <&cpu0 0 2>;
572 cooling-device = <&gpu0 0 2>;
577 cooling-device = <&lcd0 5 10>;
586 with different cooling devices.