* [PATCH v2] dt-bindings: hwmon: Convert NTC thermistor to YAML
@ 2021-07-03 17:34 Linus Walleij
2021-07-12 14:57 ` Rob Herring
0 siblings, 1 reply; 3+ messages in thread
From: Linus Walleij @ 2021-07-03 17:34 UTC (permalink / raw)
To: Jean Delvare, Guenter Roeck
Cc: linux-hwmon, Linus Walleij, Javier Martinez Canillas,
Johannes Pointner, Peter Rosin, Jonathan Cameron, devicetree
This converts the NTC thermistor DT bindings to YAML. Some care had to
be taken since I had to add some illustrations to make the connection
layouts graspable.
Cc: Javier Martinez Canillas <javier@dowhile0.org>
Cc: Johannes Pointner <johannes.pointner@gmail.com>
Cc: Peter Rosin <peda@axentia.se>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: devicetree@vger.kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
ChangeLog v1->v2:
- Realize I need to CC devicetree@vger.kernel.org on this.
- Fix Javier's mail address.
- Drop Naveen's mail (bouncing)
---
.../bindings/hwmon/ntc-thermistor.yaml | 142 ++++++++++++++++++
.../bindings/hwmon/ntc_thermistor.txt | 44 ------
2 files changed, 142 insertions(+), 44 deletions(-)
create mode 100644 Documentation/devicetree/bindings/hwmon/ntc-thermistor.yaml
delete mode 100644 Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt
diff --git a/Documentation/devicetree/bindings/hwmon/ntc-thermistor.yaml b/Documentation/devicetree/bindings/hwmon/ntc-thermistor.yaml
new file mode 100644
index 000000000000..87589da631c9
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/ntc-thermistor.yaml
@@ -0,0 +1,142 @@
+# 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:
+ - Naveen Krishna Chatradhi <ch.naveen@samsung.com>
+ - 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
+ # 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
+
+ # See /schemas/thermal/thermal-sensor.yaml for details
+ "#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:
+ - |
+ thermistor0 {
+ compatible = "murata,ncp18wb473";
+ io-channels = <&gpadc 0x06>;
+ pullup-uv = <1800000>;
+ pullup-ohm = <220000>;
+ pulldown-ohm = <0>;
+ #thermal-sensor-cells = <0>;
+ };
diff --git a/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt b/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt
deleted file mode 100644
index 4c5c3712970e..000000000000
--- a/Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-NTC Thermistor hwmon sensors
--------------------------------
-
-Requires node properties:
-- "compatible" value : one of
- "epcos,b57330v2103"
- "epcos,b57891s0103"
- "murata,ncp15wb473"
- "murata,ncp18wb473"
- "murata,ncp21wb473"
- "murata,ncp03wb473"
- "murata,ncp15wl333"
- "murata,ncp03wf104"
- "murata,ncp15xh103"
-
-/* Usage of vendor name "ntc" is deprecated */
-<DEPRECATED> "ntc,ncp15wb473"
-<DEPRECATED> "ntc,ncp18wb473"
-<DEPRECATED> "ntc,ncp21wb473"
-<DEPRECATED> "ntc,ncp03wb473"
-<DEPRECATED> "ntc,ncp15wl333"
-
-- "pullup-uv" Pull up voltage in micro volts
-- "pullup-ohm" Pull up resistor value in ohms
-- "pulldown-ohm" Pull down resistor value in ohms
-- "connected-positive" Always ON, If not specified.
- Status change is possible.
-- "io-channels" Channel node of ADC to be used for
- conversion.
-
-Optional node properties:
-- "#thermal-sensor-cells" Used to expose itself to thermal fw.
-
-Read more about iio bindings at
- https://github.com/devicetree-org/dt-schema/blob/master/schemas/iio/
-
-Example:
- ncp15wb473@0 {
- compatible = "murata,ncp15wb473";
- pullup-uv = <1800000>;
- pullup-ohm = <47000>;
- pulldown-ohm = <0>;
- io-channels = <&adc 3>;
- };
--
2.31.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] dt-bindings: hwmon: Convert NTC thermistor to YAML
2021-07-03 17:34 [PATCH v2] dt-bindings: hwmon: Convert NTC thermistor to YAML Linus Walleij
@ 2021-07-12 14:57 ` Rob Herring
2021-07-14 15:49 ` Linus Walleij
0 siblings, 1 reply; 3+ messages in thread
From: Rob Herring @ 2021-07-12 14:57 UTC (permalink / raw)
To: Linus Walleij
Cc: Jean Delvare, Guenter Roeck, linux-hwmon,
Javier Martinez Canillas, Johannes Pointner, Peter Rosin,
Jonathan Cameron, devicetree
On Sat, Jul 03, 2021 at 07:34:56PM +0200, Linus Walleij wrote:
> This converts the NTC thermistor DT bindings to YAML. Some care had to
> be taken since I had to add some illustrations to make the connection
> layouts graspable.
>
> Cc: Javier Martinez Canillas <javier@dowhile0.org>
> Cc: Johannes Pointner <johannes.pointner@gmail.com>
> Cc: Peter Rosin <peda@axentia.se>
> Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Cc: devicetree@vger.kernel.org
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> ChangeLog v1->v2:
> - Realize I need to CC devicetree@vger.kernel.org on this.
> - Fix Javier's mail address.
> - Drop Naveen's mail (bouncing)
> ---
> .../bindings/hwmon/ntc-thermistor.yaml | 142 ++++++++++++++++++
> .../bindings/hwmon/ntc_thermistor.txt | 44 ------
> 2 files changed, 142 insertions(+), 44 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/hwmon/ntc-thermistor.yaml
> delete mode 100644 Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt
>
> diff --git a/Documentation/devicetree/bindings/hwmon/ntc-thermistor.yaml b/Documentation/devicetree/bindings/hwmon/ntc-thermistor.yaml
> new file mode 100644
> index 000000000000..87589da631c9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwmon/ntc-thermistor.yaml
> @@ -0,0 +1,142 @@
> +# 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:
> + - Naveen Krishna Chatradhi <ch.naveen@samsung.com>
> + - 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
All these can be 1 enum.
> + # 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
And these too.
> +
> + # See /schemas/thermal/thermal-sensor.yaml for details
Drop. (I hope to generate documentation from the schema and
automagically create references/links.)
> + "#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:
> + - |
> + thermistor0 {
> + compatible = "murata,ncp18wb473";
> + io-channels = <&gpadc 0x06>;
> + pullup-uv = <1800000>;
> + pullup-ohm = <220000>;
> + pulldown-ohm = <0>;
> + #thermal-sensor-cells = <0>;
> + };
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] dt-bindings: hwmon: Convert NTC thermistor to YAML
2021-07-12 14:57 ` Rob Herring
@ 2021-07-14 15:49 ` Linus Walleij
0 siblings, 0 replies; 3+ messages in thread
From: Linus Walleij @ 2021-07-14 15:49 UTC (permalink / raw)
To: Rob Herring
Cc: Jean Delvare, Guenter Roeck, linux-hwmon,
Javier Martinez Canillas, Johannes Pointner, Peter Rosin,
Jonathan Cameron,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
On Mon, Jul 12, 2021 at 4:57 PM Rob Herring <robh@kernel.org> wrote:
> On Sat, Jul 03, 2021 at 07:34:56PM +0200, Linus Walleij wrote:
> > + 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
>
> All these can be 1 enum.
Yes that works fine.
> > + # 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
>
> And these too.
How? I'm lost here.
This:
compatible:
enum:
- epcos,b57330v2103
- epcos,b57891s0103
- murata,ncp15wb473
- murata,ncp18wb473
- murata,ncp21wb473
- murata,ncp03wb473
- murata,ncp15wl333
- murata,ncp03wf104
- murata,ncp15xh103
# Deprecated "ntp," compatible strings
- ntc,ncp15wb473
deprecated: true
- ntc,ncp18wb473
deprecated: true
- ntc,ncp21wb473
deprecated: true
- ntc,ncp03wb473
deprecated: true
- ntc,ncp15wl333
deprecated: true
Yields this:
uamel.yaml.scanner.ScannerError: mapping values are not allowed here
in "<unicode string>", line 81, column 19:
deprecated: true
^ (line: 81)
make[3]: *** [../Documentation/devicetree/bindings/Makefile:20:
Documentation/devicetree/bindings/hwmon/ntc-thermistor.example.dts]
Error 1
make[3]: *** Deleting file
'Documentation/devicetree/bindings/hwmon/ntc-thermistor.example.dts'
../Documentation/devicetree/bindings/hwmon/ntc-thermistor.yaml:81:19:
[error] syntax error: mapping values are not allowed here (syntax)
This does not happen with oneOf const:s.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-07-14 15:50 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-03 17:34 [PATCH v2] dt-bindings: hwmon: Convert NTC thermistor to YAML Linus Walleij
2021-07-12 14:57 ` Rob Herring
2021-07-14 15:49 ` Linus Walleij
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.