467 lines
15 KiB
YAML
467 lines
15 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/iio/temperature/adi,ltc2983.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Analog Devices LTC2983 Multi-sensor Temperature system
|
|
|
|
maintainers:
|
|
- Nuno Sá <nuno.sa@analog.com>
|
|
|
|
description: |
|
|
Analog Devices LTC2983 Multi-Sensor Digital Temperature Measurement System
|
|
https://www.analog.com/media/en/technical-documentation/data-sheets/2983fc.pdf
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- adi,ltc2983
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
adi,mux-delay-config-us:
|
|
description:
|
|
The LTC2983 performs 2 or 3 internal conversion cycles per temperature
|
|
result. Each conversion cycle is performed with different excitation and
|
|
input multiplexer configurations. Prior to each conversion, these
|
|
excitation circuits and input switch configurations are changed and an
|
|
internal 1ms delay ensures settling prior to the conversion cycle in most
|
|
cases. An extra delay can be configured using this property. The value is
|
|
rounded to nearest 100us.
|
|
maximum: 255
|
|
|
|
adi,filter-notch-freq:
|
|
description:
|
|
Set's the default setting of the digital filter. The default is
|
|
simultaneous 50/60Hz rejection.
|
|
0 - 50/60Hz rejection
|
|
1 - 60Hz rejection
|
|
2 - 50Hz rejection
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 2
|
|
|
|
'#address-cells':
|
|
const: 1
|
|
|
|
'#size-cells':
|
|
const: 0
|
|
|
|
patternProperties:
|
|
"@([1-9]|1[0-9]|20)$":
|
|
type: object
|
|
|
|
properties:
|
|
reg:
|
|
description:
|
|
The channel number. It can be connected to one of the 20 channels of
|
|
the device.
|
|
minimum: 1
|
|
maximum: 20
|
|
|
|
adi,sensor-type:
|
|
description: Identifies the type of sensor connected to the device.
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
|
|
required:
|
|
- reg
|
|
- adi,sensor-type
|
|
|
|
"^thermocouple@":
|
|
type: object
|
|
description:
|
|
Represents a thermocouple sensor which is connected to one of the device
|
|
channels.
|
|
|
|
properties:
|
|
adi,sensor-type:
|
|
description: |
|
|
1 - Type J Thermocouple
|
|
2 - Type K Thermocouple
|
|
3 - Type E Thermocouple
|
|
4 - Type N Thermocouple
|
|
5 - Type R Thermocouple
|
|
6 - Type S Thermocouple
|
|
7 - Type T Thermocouple
|
|
8 - Type B Thermocouple
|
|
9 - Custom Thermocouple
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 1
|
|
maximum: 9
|
|
|
|
adi,single-ended:
|
|
description:
|
|
Boolean property which set's the thermocouple as single-ended.
|
|
type: boolean
|
|
|
|
adi,sensor-oc-current-microamp:
|
|
description:
|
|
This property set's the pulsed current value applied during
|
|
open-circuit detect.
|
|
enum: [10, 100, 500, 1000]
|
|
|
|
adi,cold-junction-handle:
|
|
description:
|
|
Phandle which points to a sensor object responsible for measuring
|
|
the thermocouple cold junction temperature.
|
|
$ref: "/schemas/types.yaml#/definitions/phandle"
|
|
|
|
adi,custom-thermocouple:
|
|
description:
|
|
This is a table, where each entry should be a pair of
|
|
voltage(mv)-temperature(K). The entries must be given in nv and uK
|
|
so that, the original values must be multiplied by 1000000. For
|
|
more details look at table 69 and 70.
|
|
Note should be signed, but dtc doesn't currently maintain the
|
|
sign.
|
|
$ref: /schemas/types.yaml#/definitions/uint64-matrix
|
|
minItems: 3
|
|
maxItems: 64
|
|
items:
|
|
minItems: 2
|
|
maxItems: 2
|
|
|
|
"^diode@":
|
|
type: object
|
|
description:
|
|
Represents a diode sensor which is connected to one of the device
|
|
channels.
|
|
|
|
properties:
|
|
adi,sensor-type:
|
|
description: Identifies the sensor as a diode.
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
const: 28
|
|
|
|
adi,single-ended:
|
|
description: Boolean property which set's the diode as single-ended.
|
|
type: boolean
|
|
|
|
adi,three-conversion-cycles:
|
|
description:
|
|
Boolean property which set's three conversion cycles removing
|
|
parasitic resistance effects between the LTC2983 and the diode.
|
|
type: boolean
|
|
|
|
adi,average-on:
|
|
description:
|
|
Boolean property which enables a running average of the diode
|
|
temperature reading. This reduces the noise when the diode is used
|
|
as a cold junction temperature element on an isothermal block
|
|
where temperatures change slowly.
|
|
type: boolean
|
|
|
|
adi,excitation-current-microamp:
|
|
description:
|
|
This property controls the magnitude of the excitation current
|
|
applied to the diode. Depending on the number of conversions
|
|
cycles, this property will assume different predefined values on
|
|
each cycle. Just set the value of the first cycle (1l).
|
|
enum: [10, 20, 40, 80]
|
|
|
|
adi,ideal-factor-value:
|
|
description:
|
|
This property sets the diode ideality factor. The real value must
|
|
be multiplied by 1000000 to remove the fractional part. For more
|
|
information look at table 20 of the datasheet.
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
|
|
"^rtd@":
|
|
type: object
|
|
description:
|
|
Represents a rtd sensor which is connected to one of the device channels.
|
|
|
|
properties:
|
|
reg:
|
|
minimum: 2
|
|
maximum: 20
|
|
|
|
adi,sensor-type:
|
|
description: |
|
|
10 - RTD PT-10
|
|
11 - RTD PT-50
|
|
12 - RTD PT-100
|
|
13 - RTD PT-200
|
|
14 - RTD PT-500
|
|
15 - RTD PT-1000
|
|
16 - RTD PT-1000 (0.00375)
|
|
17 - RTD NI-120
|
|
18 - RTD Custom
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 10
|
|
maximum: 18
|
|
|
|
adi,rsense-handle:
|
|
description:
|
|
Phandle pointing to a rsense object associated with this RTD.
|
|
$ref: "/schemas/types.yaml#/definitions/phandle"
|
|
|
|
adi,number-of-wires:
|
|
description:
|
|
Identifies the number of wires used by the RTD. Setting this
|
|
property to 5 means 4 wires with Kelvin Rsense.
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [2, 3, 4, 5]
|
|
|
|
adi,rsense-share:
|
|
description:
|
|
Boolean property which enables Rsense sharing, where one sense
|
|
resistor is used for multiple 2-, 3-, and/or 4-wire RTDs.
|
|
type: boolean
|
|
|
|
adi,current-rotate:
|
|
description:
|
|
Boolean property which enables excitation current rotation to
|
|
automatically remove parasitic thermocouple effects. Note that
|
|
this property is not allowed for 2- and 3-wire RTDs.
|
|
type: boolean
|
|
|
|
adi,excitation-current-microamp:
|
|
description:
|
|
This property controls the magnitude of the excitation current
|
|
applied to the RTD.
|
|
enum: [5, 10, 25, 50, 100, 250, 500, 1000]
|
|
|
|
adi,rtd-curve:
|
|
description:
|
|
This property set the RTD curve used and the corresponding
|
|
Callendar-VanDusen constants. Look at table 30 of the datasheet.
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 3
|
|
|
|
adi,custom-rtd:
|
|
description:
|
|
This is a table, where each entry should be a pair of
|
|
resistance(ohm)-temperature(K). The entries added here are in uohm
|
|
and uK. For more details values look at table 74 and 75.
|
|
$ref: /schemas/types.yaml#/definitions/uint64-matrix
|
|
items:
|
|
minItems: 3
|
|
maxItems: 64
|
|
items:
|
|
minItems: 2
|
|
maxItems: 2
|
|
|
|
required:
|
|
- adi,rsense-handle
|
|
|
|
dependencies:
|
|
adi,current-rotate: [ "adi,rsense-share" ]
|
|
|
|
"^thermistor@":
|
|
type: object
|
|
description:
|
|
Represents a thermistor sensor which is connected to one of the device
|
|
channels.
|
|
|
|
properties:
|
|
adi,sensor-type:
|
|
description:
|
|
19 - Thermistor 44004/44033 2.252kohm at 25°C
|
|
20 - Thermistor 44005/44030 3kohm at 25°C
|
|
21 - Thermistor 44007/44034 5kohm at 25°C
|
|
22 - Thermistor 44006/44031 10kohm at 25°C
|
|
23 - Thermistor 44008/44032 30kohm at 25°C
|
|
24 - Thermistor YSI 400 2.252kohm at 25°C
|
|
25 - Thermistor Spectrum 1003k 1kohm
|
|
26 - Thermistor Custom Steinhart-Hart
|
|
27 - Custom Thermistor
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 19
|
|
maximum: 27
|
|
|
|
adi,rsense-handle:
|
|
description:
|
|
Phandle pointing to a rsense object associated with this
|
|
thermistor.
|
|
$ref: "/schemas/types.yaml#/definitions/phandle"
|
|
|
|
adi,single-ended:
|
|
description:
|
|
Boolean property which set's the thermistor as single-ended.
|
|
type: boolean
|
|
|
|
adi,rsense-share:
|
|
description:
|
|
Boolean property which enables Rsense sharing, where one sense
|
|
resistor is used for multiple thermistors. Note that this property
|
|
is ignored if adi,single-ended is set.
|
|
type: boolean
|
|
|
|
adi,current-rotate:
|
|
description:
|
|
Boolean property which enables excitation current rotation to
|
|
automatically remove parasitic thermocouple effects.
|
|
type: boolean
|
|
|
|
adi,excitation-current-nanoamp:
|
|
description:
|
|
This property controls the magnitude of the excitation current
|
|
applied to the thermistor. Value 0 set's the sensor in auto-range
|
|
mode.
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [0, 250, 500, 1000, 5000, 10000, 25000, 50000, 100000, 250000,
|
|
500000, 1000000]
|
|
|
|
adi,custom-thermistor:
|
|
description:
|
|
This is a table, where each entry should be a pair of
|
|
resistance(ohm)-temperature(K). The entries added here are in uohm
|
|
and uK only for custom thermistors. For more details look at table
|
|
78 and 79.
|
|
$ref: /schemas/types.yaml#/definitions/uint64-matrix
|
|
minItems: 3
|
|
maxItems: 64
|
|
items:
|
|
minItems: 2
|
|
maxItems: 2
|
|
|
|
adi,custom-steinhart:
|
|
description:
|
|
Steinhart-Hart coefficients are also supported and can
|
|
be programmed into the device memory using this property. For
|
|
Steinhart sensors the coefficients are given in the raw
|
|
format. Look at table 82 for more information.
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
items:
|
|
minItems: 6
|
|
maxItems: 6
|
|
|
|
required:
|
|
- adi,rsense-handle
|
|
|
|
dependencies:
|
|
adi,current-rotate: [ "adi,rsense-share" ]
|
|
|
|
"^adc@":
|
|
type: object
|
|
description: Represents a channel which is being used as a direct adc.
|
|
|
|
properties:
|
|
adi,sensor-type:
|
|
description: Identifies the sensor as a direct adc.
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
const: 30
|
|
|
|
adi,single-ended:
|
|
description: Boolean property which set's the adc as single-ended.
|
|
type: boolean
|
|
|
|
"^rsense@":
|
|
type: object
|
|
description:
|
|
Represents a rsense which is connected to one of the device channels.
|
|
Rsense are used by thermistors and RTD's.
|
|
|
|
properties:
|
|
reg:
|
|
minimum: 2
|
|
maximum: 20
|
|
|
|
adi,sensor-type:
|
|
description: Identifies the sensor as a rsense.
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
const: 29
|
|
|
|
adi,rsense-val-milli-ohms:
|
|
description:
|
|
Sets the value of the sense resistor. Look at table 20 of the
|
|
datasheet for information.
|
|
|
|
required:
|
|
- adi,rsense-val-milli-ohms
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
spi {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
sensor_ltc2983: ltc2983@0 {
|
|
compatible = "adi,ltc2983";
|
|
reg = <0>;
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
interrupts = <20 IRQ_TYPE_EDGE_RISING>;
|
|
interrupt-parent = <&gpio>;
|
|
|
|
thermocouple@18 {
|
|
reg = <18>;
|
|
adi,sensor-type = <8>; //Type B
|
|
adi,sensor-oc-current-microamp = <10>;
|
|
adi,cold-junction-handle = <&diode5>;
|
|
};
|
|
|
|
diode5: diode@5 {
|
|
reg = <5>;
|
|
adi,sensor-type = <28>;
|
|
};
|
|
|
|
rsense2: rsense@2 {
|
|
reg = <2>;
|
|
adi,sensor-type = <29>;
|
|
adi,rsense-val-milli-ohms = <1200000>; //1.2Kohms
|
|
};
|
|
|
|
rtd@14 {
|
|
reg = <14>;
|
|
adi,sensor-type = <15>; //PT1000
|
|
/*2-wire, internal gnd, no current rotation*/
|
|
adi,number-of-wires = <2>;
|
|
adi,rsense-share;
|
|
adi,excitation-current-microamp = <500>;
|
|
adi,rsense-handle = <&rsense2>;
|
|
};
|
|
|
|
adc@10 {
|
|
reg = <10>;
|
|
adi,sensor-type = <30>;
|
|
adi,single-ended;
|
|
};
|
|
|
|
thermistor@12 {
|
|
reg = <12>;
|
|
adi,sensor-type = <26>; //Steinhart
|
|
adi,rsense-handle = <&rsense2>;
|
|
adi,custom-steinhart = <0x00F371EC 0x12345678
|
|
0x2C0F8733 0x10018C66 0xA0FEACCD
|
|
0x90021D99>; //6 entries
|
|
};
|
|
|
|
thermocouple@20 {
|
|
reg = <20>;
|
|
adi,sensor-type = <9>; //custom thermocouple
|
|
adi,single-ended;
|
|
adi,custom-thermocouple =
|
|
/bits/ 64 <(-50220000) 0>,
|
|
/bits/ 64 <(-30200000) 99100000>,
|
|
/bits/ 64 <(-5300000) 135400000>,
|
|
/bits/ 64 <0 273150000>,
|
|
/bits/ 64 <40200000 361200000>,
|
|
/bits/ 64 <55300000 522100000>,
|
|
/bits/ 64 <88300000 720300000>,
|
|
/bits/ 64 <132200000 811200000>,
|
|
/bits/ 64 <188700000 922500000>,
|
|
/bits/ 64 <460400000 1000000000>; //10 pairs
|
|
};
|
|
|
|
};
|
|
};
|
|
...
|