Message ID | 20210530005917.20953-9-liambeguin@gmail.com |
---|---|
State | New |
Headers | show |
Series | iio: afe: add temperature rescaling support | expand |
Hi! On 2021-05-30 02:59, Liam Beguin wrote: > From: Liam Beguin <lvb@xiphos.com> > > An ADC is often used to measure other quantities indirectly. This > binding describe one cases, the measurement of a temperature through > a current sense amplifier (such as an AD590) and a sense resistor. > > Signed-off-by: Liam Beguin <lvb@xiphos.com> > --- > .../iio/afe/temperature-sense-current.yaml | 61 +++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 62 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml > > diff --git a/Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml b/Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml > new file mode 100644 > index 000000000000..1bac74486102 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml > @@ -0,0 +1,61 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/afe/temperature-sense-current.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Temperature Sense Current > + > +maintainers: > + - Liam Beguin <lvb@xiphos.com> > + > +description: | > + When an io-channel measures the output voltage for a temperature current > + sense amplifier such as the AD950, the interesting measurement is almost > + always the corresponding temperature, not the voltage output. > + This binding describes such a circuit. > + > +properties: > + compatible: > + const: temperature-sense-current > + > + io-channels: > + maxItems: 1 > + description: | > + Channel node of a voltage io-channel. > + > + '#io-channel-cells': > + const: 1 > + > + sense-resistor-ohms: > + description: The sense resistance. > + > + alpha-micro-amps-per-degree: > + description: | > + Linear output current gain of the temperature IC. > + > + use-kelvin-scale: > + type: boolean > + description: | > + Boolean indicating if alpha uses Kelvin degrees instead of Celsius. It's "kelvin", not "Kelvin degrees", and it's "degrees Celsius". But what exactly is this property for? We always want degrees Celsius, don't we, and any offset can be handled...with an offset. No? Cheers, Peter > + > +additionalProperties: false > +required: > + - compatible > + - io-channels > + - sense-resistor-ohms > + - alpha-micro-amps-per-degree > + > +examples: > + - | > + ad590: iio-rescale0 { > + compatible = "temperature-sense-current"; > + #io-channel-cells = <1>; > + io-channels = <&temp_adc 2>; > + > + sense-resistor-ohms = <8060>; > + use-kelvin-scale; > + alpha-micro-amps-per-degree = <1>; > + }; > + > +... > diff --git a/MAINTAINERS b/MAINTAINERS > index a7279af85adb..0eb7fcd94b66 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -8721,6 +8721,7 @@ L: linux-iio@vger.kernel.org > 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-current.yaml > F: Documentation/devicetree/bindings/iio/afe/temperature-sense-rtd.yaml > F: Documentation/devicetree/bindings/iio/afe/voltage-divider.yaml > F: drivers/iio/afe/iio-rescale.c > -- Peter Rosin +46 730 746 224 Axentia Technologies AB
On 2021-05-31 09:28, Peter Rosin wrote: >> + use-kelvin-scale: >> + type: boolean >> + description: | >> + Boolean indicating if alpha uses Kelvin degrees instead of Celsius. > > It's "kelvin", not "Kelvin degrees", and it's "degrees Celsius". > > But what exactly is this property for? We always want degrees Celsius, don't we, > and any offset can be handled...with an offset. No? Ahh, I hit send too soon. I now see that you calculate the offset in the driver instead of requiring the devicetree author to do it "by hand". Cheers, Peter
Hi Peter, On Mon May 31, 2021 at 4:58 AM EDT, Peter Rosin wrote: > > > On 2021-05-31 09:28, Peter Rosin wrote: > >> + use-kelvin-scale: > >> + type: boolean > >> + description: | > >> + Boolean indicating if alpha uses Kelvin degrees instead of Celsius. > > > > It's "kelvin", not "Kelvin degrees", and it's "degrees Celsius". I'll rephrase the description base on your comment. I also thought of using alpha-micro-amps-per-degree-celsius and alpha-micro-amps-kelvin instead. I don't know if that would be better. Thanks, Liam > > > > But what exactly is this property for? We always want degrees Celsius, don't we, > > and any offset can be handled...with an offset. No? > > Ahh, I hit send too soon. I now see that you calculate the offset in the > driver > instead of requiring the devicetree author to do it "by hand". > > Cheers, > Peter
On Sat, 29 May 2021 20:59:16 -0400 Liam Beguin <liambeguin@gmail.com> wrote: > From: Liam Beguin <lvb@xiphos.com> > > An ADC is often used to measure other quantities indirectly. This > binding describe one cases, the measurement of a temperature through > a current sense amplifier (such as an AD590) and a sense resistor. > > Signed-off-by: Liam Beguin <lvb@xiphos.com> > --- > .../iio/afe/temperature-sense-current.yaml | 61 +++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 62 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml > > diff --git a/Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml b/Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml > new file mode 100644 > index 000000000000..1bac74486102 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml > @@ -0,0 +1,61 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/afe/temperature-sense-current.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Temperature Sense Current > + > +maintainers: > + - Liam Beguin <lvb@xiphos.com> > + > +description: | > + When an io-channel measures the output voltage for a temperature current > + sense amplifier such as the AD950, the interesting measurement is almost > + always the corresponding temperature, not the voltage output. > + This binding describes such a circuit. > + > +properties: > + compatible: > + const: temperature-sense-current What about such a sensor connected to a current ADC? That was what I was immediately expecting when I saw the naming. You could daisy chain this with the current-sense-resistor AFE though that does seem overly messy. Anyhow this should be called something that reflects the presence of that sense resitor. > + > + io-channels: > + maxItems: 1 > + description: | > + Channel node of a voltage io-channel. > + > + '#io-channel-cells': > + const: 1 > + > + sense-resistor-ohms: > + description: The sense resistance. > + > + alpha-micro-amps-per-degree: > + description: | > + Linear output current gain of the temperature IC. > + > + use-kelvin-scale: > + type: boolean > + description: | > + Boolean indicating if alpha uses Kelvin degrees instead of Celsius. > + > +additionalProperties: false > +required: > + - compatible > + - io-channels > + - sense-resistor-ohms > + - alpha-micro-amps-per-degree > + > +examples: > + - | > + ad590: iio-rescale0 { > + compatible = "temperature-sense-current"; > + #io-channel-cells = <1>; > + io-channels = <&temp_adc 2>; > + > + sense-resistor-ohms = <8060>; > + use-kelvin-scale; > + alpha-micro-amps-per-degree = <1>; > + }; > + > +... > diff --git a/MAINTAINERS b/MAINTAINERS > index a7279af85adb..0eb7fcd94b66 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -8721,6 +8721,7 @@ L: linux-iio@vger.kernel.org > 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-current.yaml > F: Documentation/devicetree/bindings/iio/afe/temperature-sense-rtd.yaml > F: Documentation/devicetree/bindings/iio/afe/voltage-divider.yaml > F: drivers/iio/afe/iio-rescale.c
On Sat, May 29, 2021 at 08:59:16PM -0400, Liam Beguin wrote: > From: Liam Beguin <lvb@xiphos.com> > > An ADC is often used to measure other quantities indirectly. This > binding describe one cases, the measurement of a temperature through > a current sense amplifier (such as an AD590) and a sense resistor. > > Signed-off-by: Liam Beguin <lvb@xiphos.com> > --- > .../iio/afe/temperature-sense-current.yaml | 61 +++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 62 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml > > diff --git a/Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml b/Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml > new file mode 100644 > index 000000000000..1bac74486102 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml > @@ -0,0 +1,61 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/afe/temperature-sense-current.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Temperature Sense Current > + > +maintainers: > + - Liam Beguin <lvb@xiphos.com> > + > +description: | > + When an io-channel measures the output voltage for a temperature current > + sense amplifier such as the AD950, the interesting measurement is almost > + always the corresponding temperature, not the voltage output. > + This binding describes such a circuit. > + > +properties: > + compatible: > + const: temperature-sense-current > + > + io-channels: > + maxItems: 1 > + description: | > + Channel node of a voltage io-channel. > + > + '#io-channel-cells': > + const: 1 Belongs in provider unless this is a consumer and provider. > + > + sense-resistor-ohms: > + description: The sense resistance. > + > + alpha-micro-amps-per-degree: > + description: | > + Linear output current gain of the temperature IC. > + > + use-kelvin-scale: > + type: boolean > + description: | > + Boolean indicating if alpha uses Kelvin degrees instead of Celsius. > + > +additionalProperties: false blank line > +required: > + - compatible > + - io-channels > + - sense-resistor-ohms > + - alpha-micro-amps-per-degree > + > +examples: > + - | > + ad590: iio-rescale0 { > + compatible = "temperature-sense-current"; > + #io-channel-cells = <1>; > + io-channels = <&temp_adc 2>; > + > + sense-resistor-ohms = <8060>; > + use-kelvin-scale; > + alpha-micro-amps-per-degree = <1>; > + }; > + > +... > diff --git a/MAINTAINERS b/MAINTAINERS > index a7279af85adb..0eb7fcd94b66 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -8721,6 +8721,7 @@ L: linux-iio@vger.kernel.org > 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-current.yaml > F: Documentation/devicetree/bindings/iio/afe/temperature-sense-rtd.yaml > F: Documentation/devicetree/bindings/iio/afe/voltage-divider.yaml > F: drivers/iio/afe/iio-rescale.c > -- > 2.30.1.489.g328c10930387
diff --git a/Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml b/Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml new file mode 100644 index 000000000000..1bac74486102 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/afe/temperature-sense-current.yaml @@ -0,0 +1,61 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/afe/temperature-sense-current.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Temperature Sense Current + +maintainers: + - Liam Beguin <lvb@xiphos.com> + +description: | + When an io-channel measures the output voltage for a temperature current + sense amplifier such as the AD950, the interesting measurement is almost + always the corresponding temperature, not the voltage output. + This binding describes such a circuit. + +properties: + compatible: + const: temperature-sense-current + + io-channels: + maxItems: 1 + description: | + Channel node of a voltage io-channel. + + '#io-channel-cells': + const: 1 + + sense-resistor-ohms: + description: The sense resistance. + + alpha-micro-amps-per-degree: + description: | + Linear output current gain of the temperature IC. + + use-kelvin-scale: + type: boolean + description: | + Boolean indicating if alpha uses Kelvin degrees instead of Celsius. + +additionalProperties: false +required: + - compatible + - io-channels + - sense-resistor-ohms + - alpha-micro-amps-per-degree + +examples: + - | + ad590: iio-rescale0 { + compatible = "temperature-sense-current"; + #io-channel-cells = <1>; + io-channels = <&temp_adc 2>; + + sense-resistor-ohms = <8060>; + use-kelvin-scale; + alpha-micro-amps-per-degree = <1>; + }; + +... diff --git a/MAINTAINERS b/MAINTAINERS index a7279af85adb..0eb7fcd94b66 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8721,6 +8721,7 @@ L: linux-iio@vger.kernel.org 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-current.yaml F: Documentation/devicetree/bindings/iio/afe/temperature-sense-rtd.yaml F: Documentation/devicetree/bindings/iio/afe/voltage-divider.yaml F: drivers/iio/afe/iio-rescale.c