thermal-generic-adc.txt (2488B)
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};