Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame] | 1 | # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| 2 | --- |
| 3 | $id: http://devicetree.org/schemas/hwmon/ntc-thermistor.yaml# |
| 4 | $schema: http://devicetree.org/meta-schemas/core.yaml# |
| 5 | |
| 6 | title: NTC thermistor temperature sensors |
| 7 | |
| 8 | maintainers: |
| 9 | - Linus Walleij <linus.walleij@linaro.org> |
| 10 | |
| 11 | description: | |
| 12 | Thermistors with negative temperature coefficient (NTC) are resistors that |
| 13 | vary in resistance in an often non-linear way in relation to temperature. |
| 14 | The negative temperature coefficient means that the resistance decreases |
| 15 | as the temperature rises. Since the relationship between resistance and |
| 16 | temperature is non-linear, software drivers most often need to use a look |
| 17 | up table and interpolation to get from resistance to temperature. |
| 18 | |
| 19 | When used in practice, a thermistor is often connected between ground, a |
| 20 | pull-up resistor or/and a pull-down resistor and a fixed voltage like this: |
| 21 | |
| 22 | + e.g. 5V = pull-up voltage (puv) |
| 23 | | |
| 24 | +-+ |
| 25 | | | |
| 26 | | | Pull-up resistor |
| 27 | | | (puo) |
| 28 | +-+ |
| 29 | |-------------------------o |
| 30 | +-+ | ^ |
| 31 | | |/ | |
| 32 | | / | |
| 33 | |/| Thermistor | Measured voltage (mv) |
| 34 | / | | "connected ground" |
| 35 | /| | | |
| 36 | +-+ | |
| 37 | |-------------------------o |
| 38 | +-+ ^ |
| 39 | | | | |
| 40 | | | Pull-down resistor | Measured voltage (mv) |
| 41 | | | (pdo) | "connected positive" |
| 42 | +-+ | |
| 43 | | | |
| 44 | | v |
| 45 | + GND GND |
| 46 | |
| 47 | The arrangements of where we measure the voltage over the thermistor are |
| 48 | called "connected ground" and "connected positive" and shall be understood as |
| 49 | the cases when either pull-up or pull-down resistance is zero. |
| 50 | |
| 51 | If the pull-up resistance is 0 one end of the thermistor is connected to the |
| 52 | positive voltage and we get the thermistor on top of a pull-down resistor |
| 53 | and we take the measure between the thermistor and the pull-down resistor. |
| 54 | |
| 55 | Conversely if the pull-down resistance is zero, one end of the thermistor is |
| 56 | connected to ground and we get the thermistor under the pull-up resistor |
| 57 | and we take the measure between the pull-up resistor and the thermistor. |
| 58 | |
| 59 | We can use both pull-up and pull-down resistors at the same time, and then |
| 60 | the figure illustrates where the voltage will be measured for the "connected |
| 61 | ground" and "connected positive" cases. |
| 62 | |
| 63 | properties: |
| 64 | $nodename: |
| 65 | pattern: "^thermistor(.*)?$" |
| 66 | |
| 67 | compatible: |
| 68 | oneOf: |
| 69 | - const: epcos,b57330v2103 |
| 70 | - const: epcos,b57891s0103 |
| 71 | - const: murata,ncp15wb473 |
| 72 | - const: murata,ncp18wb473 |
| 73 | - const: murata,ncp21wb473 |
| 74 | - const: murata,ncp03wb473 |
| 75 | - const: murata,ncp15wl333 |
| 76 | - const: murata,ncp03wf104 |
| 77 | - const: murata,ncp15xh103 |
| 78 | - const: samsung,1404-001221 |
| 79 | # Deprecated "ntp," compatible strings |
| 80 | - const: ntc,ncp15wb473 |
| 81 | deprecated: true |
| 82 | - const: ntc,ncp18wb473 |
| 83 | deprecated: true |
| 84 | - const: ntc,ncp21wb473 |
| 85 | deprecated: true |
| 86 | - const: ntc,ncp03wb473 |
| 87 | deprecated: true |
| 88 | - const: ntc,ncp15wl333 |
| 89 | deprecated: true |
| 90 | |
| 91 | "#thermal-sensor-cells": |
| 92 | description: Thermal sensor cells if used for thermal sensoring. |
| 93 | const: 0 |
| 94 | |
| 95 | pullup-uv: |
| 96 | $ref: /schemas/types.yaml#/definitions/uint32 |
| 97 | description: Pull-up voltage in micro volts. Must always be specified. |
| 98 | |
| 99 | pullup-ohm: |
| 100 | $ref: /schemas/types.yaml#/definitions/uint32 |
| 101 | description: Pull-up resistance in ohms. Must always be specified, even |
| 102 | if zero. |
| 103 | |
| 104 | pulldown-ohm: |
| 105 | $ref: /schemas/types.yaml#/definitions/uint32 |
| 106 | description: Pull-down resistance in ohms. Must always be specified, even |
| 107 | if zero. |
| 108 | |
| 109 | connected-positive: |
| 110 | $ref: /schemas/types.yaml#/definitions/flag |
| 111 | description: Indicates how the thermistor is connected in series with |
| 112 | a pull-up and/or a pull-down resistor. See the description above for |
| 113 | an illustration. If this flag is NOT specified, the thermistor is assumed |
| 114 | to be connected-ground, which usually means a pull-down resistance of |
| 115 | zero but complex arrangements are possible. |
| 116 | |
| 117 | # See /schemas/iio/adc/adc.yaml |
| 118 | io-channels: |
| 119 | maxItems: 1 |
| 120 | description: IIO ADC channel to read the voltage over the resistor. Must |
| 121 | always be specified. |
| 122 | |
| 123 | required: |
| 124 | - compatible |
| 125 | - pullup-uv |
| 126 | - pullup-ohm |
| 127 | - pulldown-ohm |
| 128 | - io-channels |
| 129 | |
| 130 | additionalProperties: false |
| 131 | |
| 132 | examples: |
| 133 | - | |
| 134 | thermistor { |
| 135 | compatible = "murata,ncp18wb473"; |
| 136 | io-channels = <&gpadc 0x06>; |
| 137 | pullup-uv = <1800000>; |
| 138 | pullup-ohm = <220000>; |
| 139 | pulldown-ohm = <0>; |
| 140 | #thermal-sensor-cells = <0>; |
| 141 | }; |