mirror_ubuntu-kernels/Documentation/devicetree/bindings/hwmon/ntc-thermistor.yaml

142 lines
4.7 KiB
YAML

# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
---
$id: http://devicetree.org/schemas/hwmon/ntc-thermistor.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NTC thermistor temperature sensors
maintainers:
- Linus Walleij <linus.walleij@linaro.org>
description: |
Thermistors with negative temperature coefficient (NTC) are resistors that
vary in resistance in an often non-linear way in relation to temperature.
The negative temperature coefficient means that the resistance decreases
as the temperature rises. Since the relationship between resistance and
temperature is non-linear, software drivers most often need to use a look
up table and interpolation to get from resistance to temperature.
When used in practice, a thermistor is often connected between ground, a
pull-up resistor or/and a pull-down resistor and a fixed voltage like this:
+ e.g. 5V = pull-up voltage (puv)
|
+-+
| |
| | Pull-up resistor
| | (puo)
+-+
|-------------------------o
+-+ | ^
| |/ |
| / |
|/| Thermistor | Measured voltage (mv)
/ | | "connected ground"
/| | |
+-+ |
|-------------------------o
+-+ ^
| | |
| | Pull-down resistor | Measured voltage (mv)
| | (pdo) | "connected positive"
+-+ |
| |
| v
+ GND GND
The arrangements of where we measure the voltage over the thermistor are
called "connected ground" and "connected positive" and shall be understood as
the cases when either pull-up or pull-down resistance is zero.
If the pull-up resistance is 0 one end of the thermistor is connected to the
positive voltage and we get the thermistor on top of a pull-down resistor
and we take the measure between the thermistor and the pull-down resistor.
Conversely if the pull-down resistance is zero, one end of the thermistor is
connected to ground and we get the thermistor under the pull-up resistor
and we take the measure between the pull-up resistor and the thermistor.
We can use both pull-up and pull-down resistors at the same time, and then
the figure illustrates where the voltage will be measured for the "connected
ground" and "connected positive" cases.
properties:
$nodename:
pattern: "^thermistor(.*)?$"
compatible:
oneOf:
- const: epcos,b57330v2103
- const: epcos,b57891s0103
- const: murata,ncp15wb473
- const: murata,ncp18wb473
- const: murata,ncp21wb473
- const: murata,ncp03wb473
- const: murata,ncp15wl333
- const: murata,ncp03wf104
- const: murata,ncp15xh103
- const: samsung,1404-001221
# Deprecated "ntp," compatible strings
- const: ntc,ncp15wb473
deprecated: true
- const: ntc,ncp18wb473
deprecated: true
- const: ntc,ncp21wb473
deprecated: true
- const: ntc,ncp03wb473
deprecated: true
- const: ntc,ncp15wl333
deprecated: true
"#thermal-sensor-cells":
description: Thermal sensor cells if used for thermal sensoring.
const: 0
pullup-uv:
$ref: /schemas/types.yaml#/definitions/uint32
description: Pull-up voltage in micro volts. Must always be specified.
pullup-ohm:
$ref: /schemas/types.yaml#/definitions/uint32
description: Pull-up resistance in ohms. Must always be specified, even
if zero.
pulldown-ohm:
$ref: /schemas/types.yaml#/definitions/uint32
description: Pull-down resistance in ohms. Must always be specified, even
if zero.
connected-positive:
$ref: /schemas/types.yaml#/definitions/flag
description: Indicates how the thermistor is connected in series with
a pull-up and/or a pull-down resistor. See the description above for
an illustration. If this flag is NOT specified, the thermistor is assumed
to be connected-ground, which usually means a pull-down resistance of
zero but complex arrangements are possible.
# See /schemas/iio/adc/adc.yaml
io-channels:
maxItems: 1
description: IIO ADC channel to read the voltage over the resistor. Must
always be specified.
required:
- compatible
- pullup-uv
- pullup-ohm
- pulldown-ohm
- io-channels
additionalProperties: false
examples:
- |
thermistor {
compatible = "murata,ncp18wb473";
io-channels = <&gpadc 0x06>;
pullup-uv = <1800000>;
pullup-ohm = <220000>;
pulldown-ohm = <0>;
#thermal-sensor-cells = <0>;
};