162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 262306a36Sopenharmony_ci--- 362306a36Sopenharmony_ci$id: http://devicetree.org/schemas/hwmon/ntc-thermistor.yaml# 462306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 562306a36Sopenharmony_ci 662306a36Sopenharmony_cititle: NTC thermistor temperature sensors 762306a36Sopenharmony_ci 862306a36Sopenharmony_cimaintainers: 962306a36Sopenharmony_ci - Linus Walleij <linus.walleij@linaro.org> 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_cidescription: | 1262306a36Sopenharmony_ci Thermistors with negative temperature coefficient (NTC) are resistors that 1362306a36Sopenharmony_ci vary in resistance in an often non-linear way in relation to temperature. 1462306a36Sopenharmony_ci The negative temperature coefficient means that the resistance decreases 1562306a36Sopenharmony_ci as the temperature rises. Since the relationship between resistance and 1662306a36Sopenharmony_ci temperature is non-linear, software drivers most often need to use a look 1762306a36Sopenharmony_ci up table and interpolation to get from resistance to temperature. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci When used in practice, a thermistor is often connected between ground, a 2062306a36Sopenharmony_ci pull-up resistor or/and a pull-down resistor and a fixed voltage like this: 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci + e.g. 5V = pull-up voltage (puv) 2362306a36Sopenharmony_ci | 2462306a36Sopenharmony_ci +-+ 2562306a36Sopenharmony_ci | | 2662306a36Sopenharmony_ci | | Pull-up resistor 2762306a36Sopenharmony_ci | | (puo) 2862306a36Sopenharmony_ci +-+ 2962306a36Sopenharmony_ci |-------------------------o 3062306a36Sopenharmony_ci +-+ | ^ 3162306a36Sopenharmony_ci | |/ | 3262306a36Sopenharmony_ci | / | 3362306a36Sopenharmony_ci |/| Thermistor | Measured voltage (mv) 3462306a36Sopenharmony_ci / | | "connected ground" 3562306a36Sopenharmony_ci /| | | 3662306a36Sopenharmony_ci +-+ | 3762306a36Sopenharmony_ci |-------------------------o 3862306a36Sopenharmony_ci +-+ ^ 3962306a36Sopenharmony_ci | | | 4062306a36Sopenharmony_ci | | Pull-down resistor | Measured voltage (mv) 4162306a36Sopenharmony_ci | | (pdo) | "connected positive" 4262306a36Sopenharmony_ci +-+ | 4362306a36Sopenharmony_ci | | 4462306a36Sopenharmony_ci | v 4562306a36Sopenharmony_ci + GND GND 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci The arrangements of where we measure the voltage over the thermistor are 4862306a36Sopenharmony_ci called "connected ground" and "connected positive" and shall be understood as 4962306a36Sopenharmony_ci the cases when either pull-up or pull-down resistance is zero. 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci If the pull-up resistance is 0 one end of the thermistor is connected to the 5262306a36Sopenharmony_ci positive voltage and we get the thermistor on top of a pull-down resistor 5362306a36Sopenharmony_ci and we take the measure between the thermistor and the pull-down resistor. 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci Conversely if the pull-down resistance is zero, one end of the thermistor is 5662306a36Sopenharmony_ci connected to ground and we get the thermistor under the pull-up resistor 5762306a36Sopenharmony_ci and we take the measure between the pull-up resistor and the thermistor. 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci We can use both pull-up and pull-down resistors at the same time, and then 6062306a36Sopenharmony_ci the figure illustrates where the voltage will be measured for the "connected 6162306a36Sopenharmony_ci ground" and "connected positive" cases. 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ciproperties: 6462306a36Sopenharmony_ci $nodename: 6562306a36Sopenharmony_ci pattern: "^thermistor(.*)?$" 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci compatible: 6862306a36Sopenharmony_ci oneOf: 6962306a36Sopenharmony_ci - const: epcos,b57330v2103 7062306a36Sopenharmony_ci - const: epcos,b57891s0103 7162306a36Sopenharmony_ci - const: murata,ncp15wb473 7262306a36Sopenharmony_ci - const: murata,ncp18wb473 7362306a36Sopenharmony_ci - const: murata,ncp21wb473 7462306a36Sopenharmony_ci - const: murata,ncp03wb473 7562306a36Sopenharmony_ci - const: murata,ncp15wl333 7662306a36Sopenharmony_ci - const: murata,ncp03wf104 7762306a36Sopenharmony_ci - const: murata,ncp15xh103 7862306a36Sopenharmony_ci - const: samsung,1404-001221 7962306a36Sopenharmony_ci # Deprecated "ntp," compatible strings 8062306a36Sopenharmony_ci - const: ntc,ncp15wb473 8162306a36Sopenharmony_ci deprecated: true 8262306a36Sopenharmony_ci - const: ntc,ncp18wb473 8362306a36Sopenharmony_ci deprecated: true 8462306a36Sopenharmony_ci - const: ntc,ncp21wb473 8562306a36Sopenharmony_ci deprecated: true 8662306a36Sopenharmony_ci - const: ntc,ncp03wb473 8762306a36Sopenharmony_ci deprecated: true 8862306a36Sopenharmony_ci - const: ntc,ncp15wl333 8962306a36Sopenharmony_ci deprecated: true 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci "#thermal-sensor-cells": 9262306a36Sopenharmony_ci description: Thermal sensor cells if used for thermal sensoring. 9362306a36Sopenharmony_ci const: 0 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci pullup-uv: 9662306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 9762306a36Sopenharmony_ci description: Pull-up voltage in micro volts. Must always be specified. 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ci pullup-ohm: 10062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 10162306a36Sopenharmony_ci description: Pull-up resistance in ohms. Must always be specified, even 10262306a36Sopenharmony_ci if zero. 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci pulldown-ohm: 10562306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 10662306a36Sopenharmony_ci description: Pull-down resistance in ohms. Must always be specified, even 10762306a36Sopenharmony_ci if zero. 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci connected-positive: 11062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/flag 11162306a36Sopenharmony_ci description: Indicates how the thermistor is connected in series with 11262306a36Sopenharmony_ci a pull-up and/or a pull-down resistor. See the description above for 11362306a36Sopenharmony_ci an illustration. If this flag is NOT specified, the thermistor is assumed 11462306a36Sopenharmony_ci to be connected-ground, which usually means a pull-down resistance of 11562306a36Sopenharmony_ci zero but complex arrangements are possible. 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci # See /schemas/iio/adc/adc.yaml 11862306a36Sopenharmony_ci io-channels: 11962306a36Sopenharmony_ci maxItems: 1 12062306a36Sopenharmony_ci description: IIO ADC channel to read the voltage over the resistor. Must 12162306a36Sopenharmony_ci always be specified. 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_cirequired: 12462306a36Sopenharmony_ci - compatible 12562306a36Sopenharmony_ci - pullup-uv 12662306a36Sopenharmony_ci - pullup-ohm 12762306a36Sopenharmony_ci - pulldown-ohm 12862306a36Sopenharmony_ci - io-channels 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ciadditionalProperties: false 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ciexamples: 13362306a36Sopenharmony_ci - | 13462306a36Sopenharmony_ci thermistor { 13562306a36Sopenharmony_ci compatible = "murata,ncp18wb473"; 13662306a36Sopenharmony_ci io-channels = <&gpadc 0x06>; 13762306a36Sopenharmony_ci pullup-uv = <1800000>; 13862306a36Sopenharmony_ci pullup-ohm = <220000>; 13962306a36Sopenharmony_ci pulldown-ohm = <0>; 14062306a36Sopenharmony_ci #thermal-sensor-cells = <0>; 14162306a36Sopenharmony_ci }; 142