Re: [PATCH v2 8/8] dt-bindings: iio: afe: add binding for temperature-sense-amplifier

From: Jonathan Cameron
Date: Wed Jun 09 2021 - 16:50:25 EST


On Mon, 7 Jun 2021 10:47:18 -0400
Liam Beguin <liambeguin@xxxxxxxxx> wrote:

> From: Liam Beguin <lvb@xxxxxxxxxx>
>
> An ADC is often used to measure other quantities indirectly. This
> binding describe such a use case, the measurement of a temperature
> through an analog front end connected to a voltage channel.
>
> Signed-off-by: Liam Beguin <lvb@xxxxxxxxxx>
> ---
> .../iio/afe/temperature-sense-amplifier.yaml | 57 +++++++++++++++++++
> MAINTAINERS | 1 +
> 2 files changed, 58 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/iio/afe/temperature-sense-amplifier.yaml
>
> diff --git a/Documentation/devicetree/bindings/iio/afe/temperature-sense-amplifier.yaml b/Documentation/devicetree/bindings/iio/afe/temperature-sense-amplifier.yaml
> new file mode 100644
> index 000000000000..08f97f052a91
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/afe/temperature-sense-amplifier.yaml
> @@ -0,0 +1,57 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/afe/temperature-sense-amplifier.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Temperature Sense Amplifier
> +
> +maintainers:
> + - Liam Beguin <lvb@xxxxxxxxxx>
> +
> +description: |
> + When an io-channel measures the output voltage of a temperature analog front
> + end such as an RTD (resistance thermometer) or a temperature to current
> + sensor, the interesting measurement is almost always the corresponding
> + temperature, not the voltage output. This binding describes such a circuit.

Perhaps add something about this only covering the linear cases...

> +
> +properties:
> + compatible:
> + const: temperature-sense-amplifier
> +
> + io-channels:
> + maxItems: 1
> + description: |
> + Channel node of a voltage io-channel.
> +
> + '#io-channel-cells':
> + const: 1
> +
> + sense-gain-mult:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Amplifier gain multiplier. The default is <1>.
> +
> + sense-gain-div:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: Amplifier gain divider. The default is <1>.
> +
> + sense-offset-millicelsius:
> + description: Amplifier offset. The default is <0>.

Whilst it may seem obvious I'd like to see a statement of
how these are used somewhere in here.

temp_celcius = voltage * gain-mult / gain-div + offset

Mainly because those familiar with the IIO usage of offset
would expect
(voltage + offset) * gain-mult/gain-div

which doesn't make sense for this device but might leave
people confused!

> +
> +additionalProperties: false
> +required:
> + - compatible
> + - io-channels
> +
> +examples:
> + - |
> + pt1000_1: temperature-sensor {
> + compatible = "temperature-sense-amplifier";
> + #io-channel-cells = <1>;
> + io-channels = <&temp_adc 3>;
> +
> + sense-gain-mult = <1000000>;
> + sense-gain-div = <3908>;
> + sense-offset-millicelsius = <(-255885)>;
> + };
> +...
> diff --git a/MAINTAINERS b/MAINTAINERS
> index e679d422b472..4f7b4ee9f19b 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -8887,6 +8887,7 @@ L: linux-iio@xxxxxxxxxxxxxxx
> S: Maintained
> F: Documentation/devicetree/bindings/iio/afe/current-sense-amplifier.yaml
> F: Documentation/devicetree/bindings/iio/afe/current-sense-shunt.yaml
> +F: Documentation/devicetree/bindings/iio/afe/temperature-sense-amplifier.yaml
> F: Documentation/devicetree/bindings/iio/afe/voltage-divider.yaml
> F: drivers/iio/afe/iio-rescale.c
>