0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/iio/temperature/adi,ltc2983.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Analog Devices LTC2983 Multi-sensor Temperature system
0008
0009 maintainers:
0010 - Nuno Sá <nuno.sa@analog.com>
0011
0012 description: |
0013 Analog Devices LTC2983 Multi-Sensor Digital Temperature Measurement System
0014 https://www.analog.com/media/en/technical-documentation/data-sheets/2983fc.pdf
0015
0016 properties:
0017 compatible:
0018 enum:
0019 - adi,ltc2983
0020
0021 reg:
0022 maxItems: 1
0023
0024 interrupts:
0025 maxItems: 1
0026
0027 adi,mux-delay-config-us:
0028 description:
0029 The LTC2983 performs 2 or 3 internal conversion cycles per temperature
0030 result. Each conversion cycle is performed with different excitation and
0031 input multiplexer configurations. Prior to each conversion, these
0032 excitation circuits and input switch configurations are changed and an
0033 internal 1ms delay ensures settling prior to the conversion cycle in most
0034 cases. An extra delay can be configured using this property. The value is
0035 rounded to nearest 100us.
0036 maximum: 255
0037
0038 adi,filter-notch-freq:
0039 description:
0040 Set's the default setting of the digital filter. The default is
0041 simultaneous 50/60Hz rejection.
0042 0 - 50/60Hz rejection
0043 1 - 60Hz rejection
0044 2 - 50Hz rejection
0045 $ref: /schemas/types.yaml#/definitions/uint32
0046 minimum: 0
0047 maximum: 2
0048
0049 '#address-cells':
0050 const: 1
0051
0052 '#size-cells':
0053 const: 0
0054
0055 patternProperties:
0056 "@([1-9]|1[0-9]|20)$":
0057 type: object
0058
0059 properties:
0060 reg:
0061 description:
0062 The channel number. It can be connected to one of the 20 channels of
0063 the device.
0064 minimum: 1
0065 maximum: 20
0066
0067 adi,sensor-type:
0068 description: Identifies the type of sensor connected to the device.
0069 $ref: /schemas/types.yaml#/definitions/uint32
0070
0071 required:
0072 - reg
0073 - adi,sensor-type
0074
0075 "^thermocouple@":
0076 type: object
0077 description:
0078 Represents a thermocouple sensor which is connected to one of the device
0079 channels.
0080
0081 properties:
0082 adi,sensor-type:
0083 description: |
0084 1 - Type J Thermocouple
0085 2 - Type K Thermocouple
0086 3 - Type E Thermocouple
0087 4 - Type N Thermocouple
0088 5 - Type R Thermocouple
0089 6 - Type S Thermocouple
0090 7 - Type T Thermocouple
0091 8 - Type B Thermocouple
0092 9 - Custom Thermocouple
0093 $ref: /schemas/types.yaml#/definitions/uint32
0094 minimum: 1
0095 maximum: 9
0096
0097 adi,single-ended:
0098 description:
0099 Boolean property which set's the thermocouple as single-ended.
0100 type: boolean
0101
0102 adi,sensor-oc-current-microamp:
0103 description:
0104 This property set's the pulsed current value applied during
0105 open-circuit detect.
0106 enum: [10, 100, 500, 1000]
0107
0108 adi,cold-junction-handle:
0109 description:
0110 Phandle which points to a sensor object responsible for measuring
0111 the thermocouple cold junction temperature.
0112 $ref: "/schemas/types.yaml#/definitions/phandle"
0113
0114 adi,custom-thermocouple:
0115 description:
0116 This is a table, where each entry should be a pair of
0117 voltage(mv)-temperature(K). The entries must be given in nv and uK
0118 so that, the original values must be multiplied by 1000000. For
0119 more details look at table 69 and 70.
0120 Note should be signed, but dtc doesn't currently maintain the
0121 sign.
0122 $ref: /schemas/types.yaml#/definitions/uint64-matrix
0123 minItems: 3
0124 maxItems: 64
0125 items:
0126 minItems: 2
0127 maxItems: 2
0128
0129 "^diode@":
0130 type: object
0131 description:
0132 Represents a diode sensor which is connected to one of the device
0133 channels.
0134
0135 properties:
0136 adi,sensor-type:
0137 description: Identifies the sensor as a diode.
0138 $ref: /schemas/types.yaml#/definitions/uint32
0139 const: 28
0140
0141 adi,single-ended:
0142 description: Boolean property which set's the diode as single-ended.
0143 type: boolean
0144
0145 adi,three-conversion-cycles:
0146 description:
0147 Boolean property which set's three conversion cycles removing
0148 parasitic resistance effects between the LTC2983 and the diode.
0149 type: boolean
0150
0151 adi,average-on:
0152 description:
0153 Boolean property which enables a running average of the diode
0154 temperature reading. This reduces the noise when the diode is used
0155 as a cold junction temperature element on an isothermal block
0156 where temperatures change slowly.
0157 type: boolean
0158
0159 adi,excitation-current-microamp:
0160 description:
0161 This property controls the magnitude of the excitation current
0162 applied to the diode. Depending on the number of conversions
0163 cycles, this property will assume different predefined values on
0164 each cycle. Just set the value of the first cycle (1l).
0165 enum: [10, 20, 40, 80]
0166
0167 adi,ideal-factor-value:
0168 description:
0169 This property sets the diode ideality factor. The real value must
0170 be multiplied by 1000000 to remove the fractional part. For more
0171 information look at table 20 of the datasheet.
0172 $ref: /schemas/types.yaml#/definitions/uint32
0173
0174 "^rtd@":
0175 type: object
0176 description:
0177 Represents a rtd sensor which is connected to one of the device channels.
0178
0179 properties:
0180 reg:
0181 minimum: 2
0182 maximum: 20
0183
0184 adi,sensor-type:
0185 description: |
0186 10 - RTD PT-10
0187 11 - RTD PT-50
0188 12 - RTD PT-100
0189 13 - RTD PT-200
0190 14 - RTD PT-500
0191 15 - RTD PT-1000
0192 16 - RTD PT-1000 (0.00375)
0193 17 - RTD NI-120
0194 18 - RTD Custom
0195 $ref: /schemas/types.yaml#/definitions/uint32
0196 minimum: 10
0197 maximum: 18
0198
0199 adi,rsense-handle:
0200 description:
0201 Phandle pointing to a rsense object associated with this RTD.
0202 $ref: "/schemas/types.yaml#/definitions/phandle"
0203
0204 adi,number-of-wires:
0205 description:
0206 Identifies the number of wires used by the RTD. Setting this
0207 property to 5 means 4 wires with Kelvin Rsense.
0208 $ref: /schemas/types.yaml#/definitions/uint32
0209 enum: [2, 3, 4, 5]
0210
0211 adi,rsense-share:
0212 description:
0213 Boolean property which enables Rsense sharing, where one sense
0214 resistor is used for multiple 2-, 3-, and/or 4-wire RTDs.
0215 type: boolean
0216
0217 adi,current-rotate:
0218 description:
0219 Boolean property which enables excitation current rotation to
0220 automatically remove parasitic thermocouple effects. Note that
0221 this property is not allowed for 2- and 3-wire RTDs.
0222 type: boolean
0223
0224 adi,excitation-current-microamp:
0225 description:
0226 This property controls the magnitude of the excitation current
0227 applied to the RTD.
0228 enum: [5, 10, 25, 50, 100, 250, 500, 1000]
0229
0230 adi,rtd-curve:
0231 description:
0232 This property set the RTD curve used and the corresponding
0233 Callendar-VanDusen constants. Look at table 30 of the datasheet.
0234 $ref: /schemas/types.yaml#/definitions/uint32
0235 minimum: 0
0236 maximum: 3
0237
0238 adi,custom-rtd:
0239 description:
0240 This is a table, where each entry should be a pair of
0241 resistance(ohm)-temperature(K). The entries added here are in uohm
0242 and uK. For more details values look at table 74 and 75.
0243 $ref: /schemas/types.yaml#/definitions/uint64-matrix
0244 items:
0245 minItems: 3
0246 maxItems: 64
0247 items:
0248 minItems: 2
0249 maxItems: 2
0250
0251 required:
0252 - adi,rsense-handle
0253
0254 dependencies:
0255 adi,current-rotate: [ "adi,rsense-share" ]
0256
0257 "^thermistor@":
0258 type: object
0259 description:
0260 Represents a thermistor sensor which is connected to one of the device
0261 channels.
0262
0263 properties:
0264 adi,sensor-type:
0265 description:
0266 19 - Thermistor 44004/44033 2.252kohm at 25°C
0267 20 - Thermistor 44005/44030 3kohm at 25°C
0268 21 - Thermistor 44007/44034 5kohm at 25°C
0269 22 - Thermistor 44006/44031 10kohm at 25°C
0270 23 - Thermistor 44008/44032 30kohm at 25°C
0271 24 - Thermistor YSI 400 2.252kohm at 25°C
0272 25 - Thermistor Spectrum 1003k 1kohm
0273 26 - Thermistor Custom Steinhart-Hart
0274 27 - Custom Thermistor
0275 $ref: /schemas/types.yaml#/definitions/uint32
0276 minimum: 19
0277 maximum: 27
0278
0279 adi,rsense-handle:
0280 description:
0281 Phandle pointing to a rsense object associated with this
0282 thermistor.
0283 $ref: "/schemas/types.yaml#/definitions/phandle"
0284
0285 adi,single-ended:
0286 description:
0287 Boolean property which set's the thermistor as single-ended.
0288 type: boolean
0289
0290 adi,rsense-share:
0291 description:
0292 Boolean property which enables Rsense sharing, where one sense
0293 resistor is used for multiple thermistors. Note that this property
0294 is ignored if adi,single-ended is set.
0295 type: boolean
0296
0297 adi,current-rotate:
0298 description:
0299 Boolean property which enables excitation current rotation to
0300 automatically remove parasitic thermocouple effects.
0301 type: boolean
0302
0303 adi,excitation-current-nanoamp:
0304 description:
0305 This property controls the magnitude of the excitation current
0306 applied to the thermistor. Value 0 set's the sensor in auto-range
0307 mode.
0308 $ref: /schemas/types.yaml#/definitions/uint32
0309 enum: [0, 250, 500, 1000, 5000, 10000, 25000, 50000, 100000, 250000,
0310 500000, 1000000]
0311
0312 adi,custom-thermistor:
0313 description:
0314 This is a table, where each entry should be a pair of
0315 resistance(ohm)-temperature(K). The entries added here are in uohm
0316 and uK only for custom thermistors. For more details look at table
0317 78 and 79.
0318 $ref: /schemas/types.yaml#/definitions/uint64-matrix
0319 minItems: 3
0320 maxItems: 64
0321 items:
0322 minItems: 2
0323 maxItems: 2
0324
0325 adi,custom-steinhart:
0326 description:
0327 Steinhart-Hart coefficients are also supported and can
0328 be programmed into the device memory using this property. For
0329 Steinhart sensors the coefficients are given in the raw
0330 format. Look at table 82 for more information.
0331 $ref: /schemas/types.yaml#/definitions/uint32-array
0332 items:
0333 minItems: 6
0334 maxItems: 6
0335
0336 required:
0337 - adi,rsense-handle
0338
0339 dependencies:
0340 adi,current-rotate: [ "adi,rsense-share" ]
0341
0342 "^adc@":
0343 type: object
0344 description: Represents a channel which is being used as a direct adc.
0345
0346 properties:
0347 adi,sensor-type:
0348 description: Identifies the sensor as a direct adc.
0349 $ref: /schemas/types.yaml#/definitions/uint32
0350 const: 30
0351
0352 adi,single-ended:
0353 description: Boolean property which set's the adc as single-ended.
0354 type: boolean
0355
0356 "^rsense@":
0357 type: object
0358 description:
0359 Represents a rsense which is connected to one of the device channels.
0360 Rsense are used by thermistors and RTD's.
0361
0362 properties:
0363 reg:
0364 minimum: 2
0365 maximum: 20
0366
0367 adi,sensor-type:
0368 description: Identifies the sensor as a rsense.
0369 $ref: /schemas/types.yaml#/definitions/uint32
0370 const: 29
0371
0372 adi,rsense-val-milli-ohms:
0373 description:
0374 Sets the value of the sense resistor. Look at table 20 of the
0375 datasheet for information.
0376
0377 required:
0378 - adi,rsense-val-milli-ohms
0379
0380 required:
0381 - compatible
0382 - reg
0383 - interrupts
0384
0385 additionalProperties: false
0386
0387 examples:
0388 - |
0389 #include <dt-bindings/interrupt-controller/irq.h>
0390 spi {
0391 #address-cells = <1>;
0392 #size-cells = <0>;
0393
0394 sensor_ltc2983: ltc2983@0 {
0395 compatible = "adi,ltc2983";
0396 reg = <0>;
0397
0398 #address-cells = <1>;
0399 #size-cells = <0>;
0400
0401 interrupts = <20 IRQ_TYPE_EDGE_RISING>;
0402 interrupt-parent = <&gpio>;
0403
0404 thermocouple@18 {
0405 reg = <18>;
0406 adi,sensor-type = <8>; //Type B
0407 adi,sensor-oc-current-microamp = <10>;
0408 adi,cold-junction-handle = <&diode5>;
0409 };
0410
0411 diode5: diode@5 {
0412 reg = <5>;
0413 adi,sensor-type = <28>;
0414 };
0415
0416 rsense2: rsense@2 {
0417 reg = <2>;
0418 adi,sensor-type = <29>;
0419 adi,rsense-val-milli-ohms = <1200000>; //1.2Kohms
0420 };
0421
0422 rtd@14 {
0423 reg = <14>;
0424 adi,sensor-type = <15>; //PT1000
0425 /*2-wire, internal gnd, no current rotation*/
0426 adi,number-of-wires = <2>;
0427 adi,rsense-share;
0428 adi,excitation-current-microamp = <500>;
0429 adi,rsense-handle = <&rsense2>;
0430 };
0431
0432 adc@10 {
0433 reg = <10>;
0434 adi,sensor-type = <30>;
0435 adi,single-ended;
0436 };
0437
0438 thermistor@12 {
0439 reg = <12>;
0440 adi,sensor-type = <26>; //Steinhart
0441 adi,rsense-handle = <&rsense2>;
0442 adi,custom-steinhart = <0x00F371EC 0x12345678
0443 0x2C0F8733 0x10018C66 0xA0FEACCD
0444 0x90021D99>; //6 entries
0445 };
0446
0447 thermocouple@20 {
0448 reg = <20>;
0449 adi,sensor-type = <9>; //custom thermocouple
0450 adi,single-ended;
0451 adi,custom-thermocouple =
0452 /bits/ 64 <(-50220000) 0>,
0453 /bits/ 64 <(-30200000) 99100000>,
0454 /bits/ 64 <(-5300000) 135400000>,
0455 /bits/ 64 <0 273150000>,
0456 /bits/ 64 <40200000 361200000>,
0457 /bits/ 64 <55300000 522100000>,
0458 /bits/ 64 <88300000 720300000>,
0459 /bits/ 64 <132200000 811200000>,
0460 /bits/ 64 <188700000 922500000>,
0461 /bits/ 64 <460400000 1000000000>; //10 pairs
0462 };
0463
0464 };
0465 };
0466 ...