All of lore.kernel.org
 help / color / mirror / Atom feed
From: Liam Beguin <liambeguin@gmail.com>
To: liambeguin@gmail.com, peda@axentia.se, jic23@kernel.org,
	andy.shevchenko@gmail.com, lars@metafoo.de
Cc: linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org,
	devicetree@vger.kernel.org, robh+dt@kernel.org
Subject: [PATCH v13 10/11] dt-bindings: iio: afe: add bindings for temperature-sense-rtd
Date: Sun, 30 Jan 2022 11:11:00 -0500	[thread overview]
Message-ID: <20220130161101.1067691-11-liambeguin@gmail.com> (raw)
In-Reply-To: <20220130161101.1067691-1-liambeguin@gmail.com>

An ADC is often used to measure other quantities indirectly. This
binding describe one case, the measurement of a temperature through the
voltage across an RTD resistor such as a PT1000.

Signed-off-by: Liam Beguin <liambeguin@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Peter Rosin <peda@axentia.se>
---
 .../iio/afe/temperature-sense-rtd.yaml        | 101 ++++++++++++++++++
 1 file changed, 101 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/afe/temperature-sense-rtd.yaml

diff --git a/Documentation/devicetree/bindings/iio/afe/temperature-sense-rtd.yaml b/Documentation/devicetree/bindings/iio/afe/temperature-sense-rtd.yaml
new file mode 100644
index 000000000000..336ce96371db
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/afe/temperature-sense-rtd.yaml
@@ -0,0 +1,101 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/afe/temperature-sense-rtd.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Temperature Sense RTD
+
+maintainers:
+  - Liam Beguin <liambeguin@gmail.com>
+
+description: |
+  RTDs (Resistance Temperature Detectors) are a kind of temperature sensors
+  used to get a linear voltage to temperature reading within a give range
+  (usually 0 to 100 degrees Celsius).
+
+  When an io-channel measures the output voltage across an RTD such as a
+  PT1000, the interesting measurement is almost always the corresponding
+  temperature, not the voltage output. This binding describes such a circuit.
+
+  The general transfer function here is (using SI units)
+
+    V = R(T) * iexc
+    R(T) = r0 * (1 + alpha * T)
+    T = 1 / (alpha * r0 * iexc) * (V - r0 * iexc)
+
+  The following circuit matches what's in the examples section.
+
+           5V0
+          -----
+            |
+        +---+----+
+        |  R 5k  |
+        +---+----+
+            |
+            V 1mA
+            |
+            +---- Vout
+            |
+        +---+----+
+        | PT1000 |
+        +---+----+
+            |
+          -----
+           GND
+
+properties:
+  compatible:
+    const: temperature-sense-rtd
+
+  io-channels:
+    maxItems: 1
+    description: |
+      Channel node of a voltage io-channel.
+
+  '#io-channel-cells':
+    const: 0
+
+  excitation-current-microamp:
+    description: The current fed through the RTD sensor.
+
+  alpha-ppm-per-celsius:
+    description: |
+      alpha can also be expressed in micro-ohms per ohm Celsius. It's a linear
+      approximation of the resistance versus temperature relationship
+      between 0 and 100 degrees Celsius.
+
+      alpha = (R_100 - R_0) / (100 * R_0)
+
+      Where, R_100 is the resistance of the sensor at 100 degrees Celsius, and
+      R_0 (or r-naught-ohms) is the resistance of the sensor at 0 degrees
+      Celsius.
+
+      Pure platinum has an alpha of 3925. Industry standards such as IEC60751
+      and ASTM E-1137 specify an alpha of 3850.
+
+  r-naught-ohms:
+    description: |
+      Resistance of the sensor at 0 degrees Celsius.
+      Common values are 100 for PT100, 500 for PT500, and 1000 for PT1000
+
+additionalProperties: false
+required:
+  - compatible
+  - io-channels
+  - excitation-current-microamp
+  - alpha-ppm-per-celsius
+  - r-naught-ohms
+
+examples:
+  - |
+    pt1000_1: temperature-sensor0 {
+        compatible = "temperature-sense-rtd";
+        #io-channel-cells = <0>;
+        io-channels = <&temp_adc1 0>;
+
+        excitation-current-microamp = <1000>; /* i = U/R = 5 / 5000 */
+        alpha-ppm-per-celsius = <3908>;
+        r-naught-ohms = <1000>;
+    };
+...
-- 
2.35.1.4.g5d01301f2b86


  parent reply	other threads:[~2022-01-30 16:11 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-30 16:10 [PATCH v13 00/11] iio: afe: add temperature rescaling support Liam Beguin
2022-01-30 16:10 ` [PATCH v13 01/11] iio: afe: rescale: expose scale processing function Liam Beguin
2022-01-30 16:10 ` [PATCH v13 02/11] iio: afe: rescale: add INT_PLUS_{MICRO,NANO} support Liam Beguin
2022-02-02 17:04   ` Peter Rosin
2022-02-02 21:13     ` Liam Beguin
2022-01-30 16:10 ` [PATCH v13 03/11] iio: afe: rescale: add offset support Liam Beguin
2022-01-30 16:10 ` [PATCH v13 04/11] iio: afe: rescale: fix accuracy for small fractional scales Liam Beguin
2022-01-30 16:10 ` [PATCH v13 05/11] iio: afe: rescale: reduce risk of integer overflow Liam Beguin
2022-01-30 16:10 ` [PATCH v13 06/11] iio: afe: rescale: make use of units.h Liam Beguin
2022-01-31 14:50   ` Peter Rosin
2022-01-31 15:23     ` Andy Shevchenko
2022-02-01  1:59       ` Peter Rosin
2022-02-01  9:20         ` Andy Shevchenko
2022-02-01 19:28     ` Liam Beguin
2022-02-05 17:54       ` Jonathan Cameron
2022-02-05 18:23         ` Andy Shevchenko
2022-02-07 14:05         ` Liam Beguin
2022-02-07 20:22           ` Jonathan Cameron
2022-01-30 16:10 ` [PATCH v13 07/11] iio: test: add basic tests for the iio-rescale driver Liam Beguin
2022-01-30 16:10 ` [PATCH v13 08/11] iio: afe: rescale: add RTD temperature sensor support Liam Beguin
2022-02-02 16:58   ` Peter Rosin
2022-02-02 20:56     ` Liam Beguin
2022-01-30 16:10 ` [PATCH v13 09/11] iio: afe: rescale: add temperature transducers Liam Beguin
2022-01-30 16:11 ` Liam Beguin [this message]
2022-01-30 16:11 ` [PATCH v13 11/11] dt-bindings: iio: afe: add bindings for " Liam Beguin
2022-01-31 11:06 ` [PATCH v13 00/11] iio: afe: add temperature rescaling support Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220130161101.1067691-11-liambeguin@gmail.com \
    --to=liambeguin@gmail.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=jic23@kernel.org \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peda@axentia.se \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.