hc
2023-05-26 a23f51ed7a39e452c1037343a84d7db1ca2c5bd7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
General Purpose Analog To Digital Converter (ADC) based thermal sensor.
 
On some of platforms, thermal sensor like thermistors are connected to
one of ADC channel and sensor resistance is read via voltage across the
sensor resistor. The voltage read across the sensor is mapped to
temperature using voltage-temperature lookup table.
 
Required properties:
===================
- compatible:             Must be "generic-adc-thermal".
- temperature-lookup-table:  Two dimensional array of Integer; lookup table
                to map the relation between ADC value and
                temperature. When ADC is read, the value is
                looked up on the table to get the equivalent
                temperature.
                The first value of the each row of array is the
                temperature in milliCelsius and second value of
                the each row of array is the ADC read value.
- #thermal-sensor-cells:     Should be 1. See ./thermal.txt for a description
                of this property.
 
Example :
#include <dt-bindings/thermal/thermal.h>
 
i2c@7000c400 {
   ads1015: ads1015@4a {
       reg = <0x4a>;
       compatible = "ads1015";
       sampling-frequency = <3300>;
       #io-channel-cells = <1>;
   };
};
 
tboard_thermistor: thermal-sensor {
   compatible = "generic-adc-thermal";
   #thermal-sensor-cells = <0>;
   io-channels = <&ads1015 1>;
   io-channel-names = "sensor-channel";
   temperature-lookup-table = <    (-40000) 2578
                   (-39000) 2577
                   (-38000) 2576
                   (-37000) 2575
                   (-36000) 2574
                   (-35000) 2573
                   (-34000) 2572
                   (-33000) 2571
                   (-32000) 2569
                   (-31000) 2568
                   (-30000) 2567
                   ::::::::::
                   118000 254
                   119000 247
                   120000 240
                   121000 233
                   122000 226
                   123000 220
                   124000 214
                   125000 208>;
};
 
dummy_cool_dev: dummy-cool-dev {
   compatible = "dummy-cooling-dev";
   #cooling-cells = <2>; /* min followed by max */
};
 
thermal-zones {
   Tboard {
       polling-delay = <15000>; /* milliseconds */
       polling-delay-passive = <0>; /* milliseconds */
       thermal-sensors = <&tboard_thermistor>;
 
       trips {
           therm_est_trip: therm_est_trip {
               temperature = <40000>;
               type = "active";
               hysteresis = <1000>;
           };
       };
 
       cooling-maps {
           map0 {
               trip = <&therm_est_trip>;
               cooling-device = <&dummy_cool_dev THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
               contribution = <100>;
           };
 
       };
   };
};