mirror of
https://github.com/torvalds/linux.git
synced 2024-11-29 23:51:37 +00:00
dt-bindings: iio: afe: add bindings for temperature transducers
An ADC is often used to measure other quantities indirectly. This binding describe one case, the measurement of a temperature through a temperature transducer (either voltage or current). Signed-off-by: Liam Beguin <liambeguin@gmail.com> Reviewed-by: Rob Herring <robh@kernel.org> Reviewed-by: Peter Rosin <peda@axentia.se> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Link: https://lore.kernel.org/r/20220213025739.2561834-11-liambeguin@gmail.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
d065a283fe
commit
66724c31c0
@ -0,0 +1,114 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/afe/temperature-transducer.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Temperature Transducer
|
||||
|
||||
maintainers:
|
||||
- Liam Beguin <liambeguin@gmail.com>
|
||||
|
||||
description: |
|
||||
A temperature transducer is a device that converts a thermal quantity
|
||||
into any other physical quantity. This binding applies to temperature to
|
||||
voltage (like the LTC2997), and temperature to current (like the AD590)
|
||||
linear transducers.
|
||||
In both cases these are assumed to be connected to a voltage ADC.
|
||||
|
||||
When an io-channel measures the output voltage of a temperature analog front
|
||||
end such as a temperature transducer, 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(T) = Rsense * Isense(T)
|
||||
T = (Isense(T) / alpha) + offset
|
||||
T = 1 / (Rsense * alpha) * (V + offset * Rsense * alpha)
|
||||
|
||||
When using a temperature to voltage transducer, Rsense is set to 1.
|
||||
|
||||
The following circuits show a temperature to current and a temperature to
|
||||
voltage transducer that can be used with this binding.
|
||||
|
||||
VCC
|
||||
-----
|
||||
|
|
||||
+---+---+
|
||||
| AD590 | VCC
|
||||
+---+---+ -----
|
||||
| |
|
||||
V proportional to T +----+----+
|
||||
| D+ --+ |
|
||||
+---- Vout | LTC2997 +--- Vout
|
||||
| D- --+ |
|
||||
+---+----+ +---------+
|
||||
| Rsense | |
|
||||
+---+----+ -----
|
||||
| GND
|
||||
-----
|
||||
GND
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: temperature-transducer
|
||||
|
||||
io-channels:
|
||||
maxItems: 1
|
||||
description: |
|
||||
Channel node of a voltage io-channel.
|
||||
|
||||
'#io-channel-cells':
|
||||
const: 0
|
||||
|
||||
sense-offset-millicelsius:
|
||||
description: |
|
||||
Temperature offset.
|
||||
This offset is commonly used to convert from Kelvins to degrees Celsius.
|
||||
In that case, sense-offset-millicelsius would be set to <(-273150)>.
|
||||
default: 0
|
||||
|
||||
sense-resistor-ohms:
|
||||
description: |
|
||||
The sense resistor.
|
||||
By default sense-resistor-ohms cancels out the resistor making the
|
||||
circuit behave like a temperature transducer.
|
||||
default: 1
|
||||
|
||||
alpha-ppm-per-celsius:
|
||||
description: |
|
||||
Sometimes referred to as output gain, slope, or temperature coefficient.
|
||||
|
||||
alpha is expressed in parts per million which can be micro-amps per
|
||||
degrees Celsius or micro-volts per degrees Celsius. The is the main
|
||||
characteristic of a temperature transducer and should be stated in the
|
||||
datasheet.
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- io-channels
|
||||
- alpha-ppm-per-celsius
|
||||
|
||||
examples:
|
||||
- |
|
||||
ad950: temperature-sensor-0 {
|
||||
compatible = "temperature-transducer";
|
||||
#io-channel-cells = <0>;
|
||||
io-channels = <&temp_adc 3>;
|
||||
|
||||
sense-offset-millicelsius = <(-273150)>; /* Kelvin to degrees Celsius */
|
||||
sense-resistor-ohms = <8060>;
|
||||
alpha-ppm-per-celsius = <1>; /* 1 uA/K */
|
||||
};
|
||||
- |
|
||||
znq_tmp: temperature-sensor-1 {
|
||||
compatible = "temperature-transducer";
|
||||
#io-channel-cells = <0>;
|
||||
io-channels = <&temp_adc 2>;
|
||||
|
||||
sense-offset-millicelsius = <(-273150)>; /* Kelvin to degrees Celsius */
|
||||
alpha-ppm-per-celsius = <4000>; /* 4 mV/K */
|
||||
};
|
||||
...
|
Loading…
Reference in New Issue
Block a user