546 lines
15 KiB
YAML
546 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, LTC2986, LTM2985 Multi-sensor Temperature system
|
||
|
|
||
|
maintainers:
|
||
|
- Nuno Sá <nuno.sa@analog.com>
|
||
|
|
||
|
description: |
|
||
|
Analog Devices LTC2983, LTC2984, LTC2986, LTM2985 Multi-Sensor Digital
|
||
|
Temperature Measurement Systems
|
||
|
|
||
|
https://www.analog.com/media/en/technical-documentation/data-sheets/2983fc.pdf
|
||
|
https://www.analog.com/media/en/technical-documentation/data-sheets/2984fb.pdf
|
||
|
https://www.analog.com/media/en/technical-documentation/data-sheets/29861fa.pdf
|
||
|
https://www.analog.com/media/en/technical-documentation/data-sheets/ltm2985.pdf
|
||
|
|
||
|
properties:
|
||
|
compatible:
|
||
|
oneOf:
|
||
|
- enum:
|
||
|
- adi,ltc2983
|
||
|
- adi,ltc2986
|
||
|
- adi,ltm2985
|
||
|
- items:
|
||
|
- const: adi,ltc2984
|
||
|
- const: adi,ltc2983
|
||
|
|
||
|
reg:
|
||
|
maxItems: 1
|
||
|
|
||
|
interrupts:
|
||
|
maxItems: 1
|
||
|
|
||
|
adi,mux-delay-config-us:
|
||
|
description: |
|
||
|
Extra delay prior to each conversion, in addition to the internal 1ms
|
||
|
delay, for the multiplexer to switch input configurations and
|
||
|
excitation values.
|
||
|
|
||
|
This property is supposed to be in microseconds, but to maintain
|
||
|
compatibility, this value will be multiplied by 100 before usage.
|
||
|
maximum: 255
|
||
|
default: 0
|
||
|
|
||
|
adi,filter-notch-freq:
|
||
|
description:
|
||
|
Notch frequency of the digital filter.
|
||
|
0 - 50/60Hz rejection
|
||
|
1 - 60Hz rejection
|
||
|
2 - 50Hz rejection
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
minimum: 0
|
||
|
maximum: 2
|
||
|
default: 0
|
||
|
|
||
|
'#address-cells':
|
||
|
const: 1
|
||
|
|
||
|
'#size-cells':
|
||
|
const: 0
|
||
|
|
||
|
patternProperties:
|
||
|
"@([0-9a-f]+)$":
|
||
|
type: object
|
||
|
description: Sensor.
|
||
|
|
||
|
properties:
|
||
|
reg:
|
||
|
description:
|
||
|
Channel number. Connects the sensor to the channel with this number
|
||
|
of the device.
|
||
|
minimum: 1
|
||
|
maximum: 20
|
||
|
|
||
|
adi,sensor-type:
|
||
|
description: Type of sensor connected to the device.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
|
||
|
required:
|
||
|
- reg
|
||
|
- adi,sensor-type
|
||
|
|
||
|
"^thermocouple@":
|
||
|
type: object
|
||
|
description: Thermocouple sensor.
|
||
|
|
||
|
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: Whether the sensor is single-ended.
|
||
|
type: boolean
|
||
|
|
||
|
adi,sensor-oc-current-microamp:
|
||
|
description: Pulsed current value applied during open-circuit detect.
|
||
|
enum: [10, 100, 500, 1000]
|
||
|
default: 10
|
||
|
|
||
|
adi,cold-junction-handle:
|
||
|
description:
|
||
|
Sensor responsible for measuring the thermocouple cold junction
|
||
|
temperature.
|
||
|
$ref: /schemas/types.yaml#/definitions/phandle
|
||
|
|
||
|
adi,custom-thermocouple:
|
||
|
description:
|
||
|
Used for digitizing custom thermocouples.
|
||
|
See Page 59 of the datasheet.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint64-matrix
|
||
|
minItems: 3
|
||
|
maxItems: 64
|
||
|
items:
|
||
|
items:
|
||
|
- description: Voltage point in nV, signed.
|
||
|
- description: Temperature point in uK.
|
||
|
|
||
|
allOf:
|
||
|
- if:
|
||
|
properties:
|
||
|
adi,sensor-type:
|
||
|
const: 9
|
||
|
then:
|
||
|
required:
|
||
|
- adi,custom-thermocouple
|
||
|
|
||
|
"^diode@":
|
||
|
type: object
|
||
|
description: Diode sensor.
|
||
|
|
||
|
properties:
|
||
|
adi,sensor-type:
|
||
|
description: Sensor type for diodes.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
const: 28
|
||
|
|
||
|
adi,single-ended:
|
||
|
description: Whether the sensor is single-ended.
|
||
|
type: boolean
|
||
|
|
||
|
adi,three-conversion-cycles:
|
||
|
description:
|
||
|
Whether to use three conversion cycles to remove parasitic
|
||
|
resistance between the device and the diode.
|
||
|
type: boolean
|
||
|
|
||
|
adi,average-on:
|
||
|
description:
|
||
|
Whether to use a running average of the diode temperature
|
||
|
reading to reduce 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:
|
||
|
Magnitude of the 1l excitation current applied to the diode.
|
||
|
4l excitation current will be 4 times this value, and 8l
|
||
|
excitation current will be 8 times value.
|
||
|
enum: [10, 20, 40, 80]
|
||
|
default: 10
|
||
|
|
||
|
adi,ideal-factor-value:
|
||
|
description:
|
||
|
Diode ideality factor.
|
||
|
Set this property to 1000000 times the real value.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
default: 0
|
||
|
|
||
|
"^rtd@":
|
||
|
type: object
|
||
|
description: RTD sensor.
|
||
|
|
||
|
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: Associated sense resistor sensor.
|
||
|
$ref: /schemas/types.yaml#/definitions/phandle
|
||
|
|
||
|
adi,number-of-wires:
|
||
|
description:
|
||
|
Number of wires used by the RTD.
|
||
|
5 means 4 wires with Kelvin sense resistor.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
enum: [2, 3, 4, 5]
|
||
|
default: 2
|
||
|
|
||
|
adi,rsense-share:
|
||
|
description:
|
||
|
Whether to enable sense resistor sharing, where one sense
|
||
|
resistor is used by multiple sensors.
|
||
|
type: boolean
|
||
|
|
||
|
adi,excitation-current-microamp:
|
||
|
description: Excitation current applied to the RTD.
|
||
|
enum: [5, 10, 25, 50, 100, 250, 500, 1000]
|
||
|
default: 5
|
||
|
|
||
|
adi,rtd-curve:
|
||
|
description: |
|
||
|
RTD curve and the corresponding Callendar-VanDusen constants.
|
||
|
0 - European
|
||
|
1 - American
|
||
|
2 - Japanese
|
||
|
3 - ITS-90
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
minimum: 0
|
||
|
maximum: 3
|
||
|
default: 0
|
||
|
|
||
|
adi,custom-rtd:
|
||
|
description:
|
||
|
Used for digitizing custom RTDs.
|
||
|
See Page 62 of the datasheet.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint64-matrix
|
||
|
minItems: 3
|
||
|
maxItems: 64
|
||
|
items:
|
||
|
items:
|
||
|
- description: Resistance point in uOhms.
|
||
|
- description: Temperature point in uK.
|
||
|
|
||
|
required:
|
||
|
- adi,rsense-handle
|
||
|
|
||
|
allOf:
|
||
|
- if:
|
||
|
properties:
|
||
|
adi,number-of-wires:
|
||
|
const: 4
|
||
|
then:
|
||
|
properties:
|
||
|
adi,current-rotate:
|
||
|
description:
|
||
|
Whether to enable excitation current rotation to automatically
|
||
|
remove parasitic thermocouple effects.
|
||
|
type: boolean
|
||
|
|
||
|
dependencies:
|
||
|
adi,current-rotate: [ "adi,rsense-share" ]
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
adi,sensor-type:
|
||
|
const: 18
|
||
|
then:
|
||
|
required:
|
||
|
- adi,custom-rtd
|
||
|
|
||
|
"^thermistor@":
|
||
|
type: object
|
||
|
description: Thermistor sensor.
|
||
|
|
||
|
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: Associated sense resistor sensor.
|
||
|
$ref: /schemas/types.yaml#/definitions/phandle
|
||
|
|
||
|
adi,single-ended:
|
||
|
description: Whether the sensor is single-ended.
|
||
|
type: boolean
|
||
|
|
||
|
adi,rsense-share:
|
||
|
description:
|
||
|
Whether to enable sense resistor sharing, where one sense
|
||
|
resistor is used by multiple sensors.
|
||
|
type: boolean
|
||
|
|
||
|
adi,current-rotate:
|
||
|
description:
|
||
|
Whether to enable excitation current rotation to automatically
|
||
|
remove parasitic thermocouple effects.
|
||
|
type: boolean
|
||
|
|
||
|
adi,excitation-current-nanoamp:
|
||
|
description:
|
||
|
Excitation current applied to the thermistor.
|
||
|
0 sets the sensor in auto-range mode.
|
||
|
enum: [0, 250, 500, 1000, 5000, 10000, 25000, 50000, 100000, 250000,
|
||
|
500000, 1000000]
|
||
|
default: 0
|
||
|
|
||
|
adi,custom-thermistor:
|
||
|
description:
|
||
|
Used for digitizing custom thermistors.
|
||
|
See Page 65 of the datasheet.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint64-matrix
|
||
|
minItems: 3
|
||
|
maxItems: 64
|
||
|
items:
|
||
|
items:
|
||
|
- description: Resistance point in uOhms.
|
||
|
- description: Temperature point in uK.
|
||
|
|
||
|
adi,custom-steinhart:
|
||
|
description:
|
||
|
Steinhart-Hart coefficients in raw format, used for digitizing
|
||
|
custom thermistors.
|
||
|
See Page 68 of the datasheet.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||
|
minItems: 6
|
||
|
maxItems: 6
|
||
|
|
||
|
required:
|
||
|
- adi,rsense-handle
|
||
|
|
||
|
dependencies:
|
||
|
adi,current-rotate: [ "adi,rsense-share" ]
|
||
|
|
||
|
allOf:
|
||
|
- if:
|
||
|
properties:
|
||
|
adi,sensor-type:
|
||
|
const: 26
|
||
|
then:
|
||
|
properties:
|
||
|
adi,excitation-current-nanoamp:
|
||
|
enum: [250, 500, 1000, 5000, 10000, 25000, 50000, 100000,
|
||
|
250000, 500000, 1000000]
|
||
|
default: 1000
|
||
|
required:
|
||
|
- adi,custom-steinhart
|
||
|
- if:
|
||
|
properties:
|
||
|
adi,sensor-type:
|
||
|
const: 27
|
||
|
then:
|
||
|
properties:
|
||
|
adi,excitation-current-nanoamp:
|
||
|
enum: [250, 500, 1000, 5000, 10000, 25000, 50000, 100000,
|
||
|
250000, 500000, 1000000]
|
||
|
default: 1000
|
||
|
required:
|
||
|
- adi,custom-thermistor
|
||
|
|
||
|
"^adc@":
|
||
|
type: object
|
||
|
description: Direct ADC sensor.
|
||
|
|
||
|
properties:
|
||
|
adi,sensor-type:
|
||
|
description: Sensor type for direct ADC sensors.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
const: 30
|
||
|
|
||
|
adi,single-ended:
|
||
|
description: Whether the sensor is single-ended.
|
||
|
type: boolean
|
||
|
|
||
|
"^temp@":
|
||
|
type: object
|
||
|
description: Active analog temperature sensor.
|
||
|
|
||
|
properties:
|
||
|
adi,sensor-type:
|
||
|
description: Sensor type for active analog temperature sensors.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
const: 31
|
||
|
|
||
|
adi,single-ended:
|
||
|
description: Whether the sensor is single-ended.
|
||
|
type: boolean
|
||
|
|
||
|
adi,custom-temp:
|
||
|
description:
|
||
|
Used for digitizing active analog temperature sensors.
|
||
|
See Page 67 of the LTM2985 datasheet.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint64-matrix
|
||
|
minItems: 3
|
||
|
maxItems: 64
|
||
|
items:
|
||
|
items:
|
||
|
- description: Voltage point in nV, signed.
|
||
|
- description: Temperature point in uK.
|
||
|
|
||
|
required:
|
||
|
- adi,custom-temp
|
||
|
|
||
|
"^rsense@":
|
||
|
type: object
|
||
|
description: Sense resistor sensor.
|
||
|
|
||
|
properties:
|
||
|
reg:
|
||
|
minimum: 2
|
||
|
maximum: 20
|
||
|
|
||
|
adi,sensor-type:
|
||
|
description: Sensor type sense resistor sensors.
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
const: 29
|
||
|
|
||
|
adi,rsense-val-milli-ohms:
|
||
|
description: Value of the sense resistor.
|
||
|
|
||
|
required:
|
||
|
- adi,rsense-val-milli-ohms
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- reg
|
||
|
- interrupts
|
||
|
|
||
|
additionalProperties: false
|
||
|
|
||
|
allOf:
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
enum:
|
||
|
- adi,ltc2983
|
||
|
- adi,ltc2984
|
||
|
then:
|
||
|
patternProperties:
|
||
|
"^temp@": false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||
|
spi {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
temperature-sensor@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
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
...
|