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