Resguardo inicial

This commit is contained in:
lastdragon
2026-09-06 12:53:21 -06:00
parent 662efe3c2a
commit ad2088d178
94853 changed files with 43200404 additions and 0 deletions
@@ -0,0 +1,58 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/afe/current-sense-amplifier.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Current Sense Amplifier
maintainers:
- Peter Rosin <peda@axentia.se>
description: |
When an io-channel measures the output voltage from a current sense
amplifier, the interesting measurement is almost always the current
through the sense resistor, not the voltage output. This binding
describes such a current sense circuit.
properties:
compatible:
const: current-sense-amplifier
io-channels:
maxItems: 1
description: |
Channel node of a voltage io-channel.
"#io-channel-cells":
const: 0
sense-resistor-micro-ohms:
description: The sense resistance.
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>.
required:
- compatible
- io-channels
- sense-resistor-micro-ohms
additionalProperties: false
examples:
- |
sysi {
compatible = "current-sense-amplifier";
#io-channel-cells = <0>;
io-channels = <&tiadc 0>;
sense-resistor-micro-ohms = <20000>;
sense-gain-mult = <50>;
};
...
@@ -0,0 +1,68 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/afe/current-sense-shunt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Current Sense Shunt
maintainers:
- Peter Rosin <peda@axentia.se>
description: |
When an io-channel measures the voltage over a current sense shunt,
the interesting measurement is almost always the current through the
shunt, not the voltage over it. This binding describes such a current
sense circuit.
properties:
compatible:
const: current-sense-shunt
io-channels:
maxItems: 1
description: |
Channel node of a voltage io-channel.
"#io-channel-cells":
const: 0
shunt-resistor-micro-ohms:
description: The shunt resistance.
required:
- compatible
- io-channels
- shunt-resistor-micro-ohms
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
tiadc: adc@48 {
compatible = "ti,ads1015";
reg = <0x48>;
#io-channel-cells = <1>;
#address-cells = <1>;
#size-cells = <0>;
channel@0 { /* IN0,IN1 differential */
reg = <0>;
ti,gain = <1>;
ti,datarate = <4>;
};
};
};
sysi {
compatible = "current-sense-shunt";
io-channels = <&tiadc 0>;
#io-channel-cells = <0>;
/* Divide the voltage by 3300000/1000000 (or 3.3) for the current. */
shunt-resistor-micro-ohms = <3300000>;
};
...
@@ -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>;
};
...
@@ -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 */
};
...
@@ -0,0 +1,96 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/afe/voltage-divider.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Voltage divider
maintainers:
- Peter Rosin <peda@axentia.se>
description: |
When an io-channel measures the midpoint of a voltage divider, the
interesting voltage is often the voltage over the full resistance
of the divider. This binding describes the voltage divider in such
a circuit.
Vin ----.
|
.-----.
| R |
'-----'
|
+---- Vout
|
.-----.
| Rout|
'-----'
|
GND
properties:
compatible:
const: voltage-divider
io-channels:
maxItems: 1
description: |
Channel node of a voltage io-channel.
'#io-channel-cells':
description:
In addition to consuming the measurement services of a voltage
output channel, the voltage divider can act as a provider of
measurement services to other devices. This is particularly
useful in scenarios wherein an ADC has an analog frontend,
such as a voltage divider, and then consuming its raw value
isn't interesting. In this case, the voltage before the divider
is desired.
const: 1
output-ohms:
description:
Resistance Rout over which the output voltage is measured. See full-ohms.
full-ohms:
description:
Resistance R + Rout for the full divider. The io-channel is scaled by
the Rout / (R + Rout) quotient.
required:
- compatible
- io-channels
- output-ohms
- full-ohms
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
/*
* The system voltage is circa 12V, but divided down with a 22/222
* voltage divider (R = 200 Ohms, Rout = 22 Ohms) and fed to an ADC.
*/
spi {
#address-cells = <1>;
#size-cells = <0>;
maxadc: adc@0 {
compatible = "maxim,max1027";
reg = <0>;
#io-channel-cells = <1>;
interrupt-parent = <&gpio5>;
interrupts = <15 IRQ_TYPE_EDGE_RISING>;
spi-max-frequency = <1000000>;
};
};
sysv {
compatible = "voltage-divider";
io-channels = <&maxadc 1>;
/* Scale the system voltage by 22/222 to fit the ADC range. */
output-ohms = <22>;
full-ohms = <222>; /* 200 + 22 */
};
...