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