1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/iio/temperature/adi,ltc2983.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Analog Devices LTC2983, LTC2986, LTM2985 Multi-sensor Temperature system 8 9maintainers: 10 - Nuno Sá <nuno.sa@analog.com> 11 12description: | 13 Analog Devices LTC2983, LTC2984, LTC2986, LTM2985 Multi-Sensor Digital 14 Temperature Measurement Systems 15 16 https://www.analog.com/media/en/technical-documentation/data-sheets/2983fc.pdf 17 https://www.analog.com/media/en/technical-documentation/data-sheets/2984fb.pdf 18 https://www.analog.com/media/en/technical-documentation/data-sheets/29861fa.pdf 19 https://www.analog.com/media/en/technical-documentation/data-sheets/ltm2985.pdf 20 21$defs: 22 sensor-node: 23 type: object 24 description: Sensor node common constraints 25 26 properties: 27 reg: 28 description: 29 Channel number. Connects the sensor to the channel with this number 30 of the device. 31 minimum: 1 32 maximum: 20 33 34 adi,sensor-type: 35 description: Type of sensor connected to the device. 36 $ref: /schemas/types.yaml#/definitions/uint32 37 38 required: 39 - reg 40 - adi,sensor-type 41 42 43properties: 44 compatible: 45 oneOf: 46 - enum: 47 - adi,ltc2983 48 - adi,ltc2986 49 - adi,ltm2985 50 - items: 51 - const: adi,ltc2984 52 - const: adi,ltc2983 53 54 reg: 55 maxItems: 1 56 57 interrupts: 58 maxItems: 1 59 60 vdd-supply: true 61 62 adi,mux-delay-config-us: 63 description: | 64 Extra delay prior to each conversion, in addition to the internal 1ms 65 delay, for the multiplexer to switch input configurations and 66 excitation values. 67 68 This property is supposed to be in microseconds, but to maintain 69 compatibility, this value will be multiplied by 100 before usage. 70 maximum: 255 71 default: 0 72 73 adi,filter-notch-freq: 74 description: 75 Notch frequency of the digital filter. 76 0 - 50/60Hz rejection 77 1 - 60Hz rejection 78 2 - 50Hz rejection 79 $ref: /schemas/types.yaml#/definitions/uint32 80 minimum: 0 81 maximum: 2 82 default: 0 83 84 '#address-cells': 85 const: 1 86 87 '#size-cells': 88 const: 0 89 90patternProperties: 91 "^thermocouple@": 92 $ref: '#/$defs/sensor-node' 93 unevaluatedProperties: false 94 95 description: Thermocouple sensor. 96 97 properties: 98 adi,sensor-type: 99 description: | 100 1 - Type J Thermocouple 101 2 - Type K Thermocouple 102 3 - Type E Thermocouple 103 4 - Type N Thermocouple 104 5 - Type R Thermocouple 105 6 - Type S Thermocouple 106 7 - Type T Thermocouple 107 8 - Type B Thermocouple 108 9 - Custom Thermocouple 109 $ref: /schemas/types.yaml#/definitions/uint32 110 minimum: 1 111 maximum: 9 112 113 adi,single-ended: 114 description: Whether the sensor is single-ended. 115 type: boolean 116 117 adi,sensor-oc-current-microamp: 118 description: Pulsed current value applied during open-circuit detect. 119 enum: [10, 100, 500, 1000] 120 default: 10 121 122 adi,cold-junction-handle: 123 description: 124 Sensor responsible for measuring the thermocouple cold junction 125 temperature. 126 $ref: /schemas/types.yaml#/definitions/phandle 127 128 adi,custom-thermocouple: 129 description: 130 Used for digitizing custom thermocouples. 131 See Page 59 of the datasheet. 132 $ref: /schemas/types.yaml#/definitions/int64-matrix 133 minItems: 3 134 maxItems: 64 135 items: 136 items: 137 - description: Voltage point in nV, signed. 138 - description: Temperature point in uK. 139 140 allOf: 141 - if: 142 properties: 143 adi,sensor-type: 144 const: 9 145 then: 146 required: 147 - adi,custom-thermocouple 148 149 "^diode@": 150 $ref: '#/$defs/sensor-node' 151 unevaluatedProperties: false 152 153 description: Diode sensor. 154 155 properties: 156 adi,sensor-type: 157 description: Sensor type for diodes. 158 $ref: /schemas/types.yaml#/definitions/uint32 159 const: 28 160 161 adi,single-ended: 162 description: Whether the sensor is single-ended. 163 type: boolean 164 165 adi,three-conversion-cycles: 166 description: 167 Whether to use three conversion cycles to remove parasitic 168 resistance between the device and the diode. 169 type: boolean 170 171 adi,average-on: 172 description: 173 Whether to use a running average of the diode temperature 174 reading to reduce the noise when the diode is used as a cold 175 junction temperature element on an isothermal block where 176 temperatures change slowly. 177 type: boolean 178 179 adi,excitation-current-microamp: 180 description: 181 Magnitude of the 1l excitation current applied to the diode. 182 4l excitation current will be 4 times this value, and 8l 183 excitation current will be 8 times value. 184 enum: [10, 20, 40, 80] 185 default: 10 186 187 adi,ideal-factor-value: 188 description: 189 Diode ideality factor. 190 Set this property to 1000000 times the real value. 191 $ref: /schemas/types.yaml#/definitions/uint32 192 default: 0 193 194 "^rtd@": 195 $ref: '#/$defs/sensor-node' 196 unevaluatedProperties: false 197 description: RTD sensor. 198 199 properties: 200 reg: 201 minimum: 2 202 maximum: 20 203 204 adi,sensor-type: 205 description: | 206 10 - RTD PT-10 207 11 - RTD PT-50 208 12 - RTD PT-100 209 13 - RTD PT-200 210 14 - RTD PT-500 211 15 - RTD PT-1000 212 16 - RTD PT-1000 (0.00375) 213 17 - RTD NI-120 214 18 - RTD Custom 215 $ref: /schemas/types.yaml#/definitions/uint32 216 minimum: 10 217 maximum: 18 218 219 adi,rsense-handle: 220 description: Associated sense resistor sensor. 221 $ref: /schemas/types.yaml#/definitions/phandle 222 223 adi,number-of-wires: 224 description: 225 Number of wires used by the RTD. 226 5 means 4 wires with Kelvin sense resistor. 227 $ref: /schemas/types.yaml#/definitions/uint32 228 enum: [2, 3, 4, 5] 229 default: 2 230 231 adi,rsense-share: 232 description: 233 Whether to enable sense resistor sharing, where one sense 234 resistor is used by multiple sensors. 235 type: boolean 236 237 adi,excitation-current-microamp: 238 description: Excitation current applied to the RTD. 239 enum: [5, 10, 25, 50, 100, 250, 500, 1000] 240 default: 5 241 242 adi,rtd-curve: 243 description: | 244 RTD curve and the corresponding Callendar-VanDusen constants. 245 0 - European 246 1 - American 247 2 - Japanese 248 3 - ITS-90 249 $ref: /schemas/types.yaml#/definitions/uint32 250 minimum: 0 251 maximum: 3 252 default: 0 253 254 adi,custom-rtd: 255 description: 256 Used for digitizing custom RTDs. 257 See Page 62 of the datasheet. 258 $ref: /schemas/types.yaml#/definitions/uint64-matrix 259 minItems: 3 260 maxItems: 64 261 items: 262 items: 263 - description: Resistance point in uOhms. 264 - description: Temperature point in uK. 265 266 required: 267 - adi,rsense-handle 268 269 allOf: 270 - if: 271 properties: 272 adi,number-of-wires: 273 const: 4 274 then: 275 properties: 276 adi,current-rotate: 277 description: 278 Whether to enable excitation current rotation to automatically 279 remove parasitic thermocouple effects. 280 type: boolean 281 282 dependencies: 283 adi,current-rotate: [ "adi,rsense-share" ] 284 285 - if: 286 properties: 287 adi,sensor-type: 288 const: 18 289 then: 290 required: 291 - adi,custom-rtd 292 293 "^thermistor@": 294 $ref: '#/$defs/sensor-node' 295 unevaluatedProperties: false 296 description: Thermistor sensor. 297 298 properties: 299 adi,sensor-type: 300 description: 301 19 - Thermistor 44004/44033 2.252kohm at 25°C 302 20 - Thermistor 44005/44030 3kohm at 25°C 303 21 - Thermistor 44007/44034 5kohm at 25°C 304 22 - Thermistor 44006/44031 10kohm at 25°C 305 23 - Thermistor 44008/44032 30kohm at 25°C 306 24 - Thermistor YSI 400 2.252kohm at 25°C 307 25 - Thermistor Spectrum 1003k 1kohm 308 26 - Thermistor Custom Steinhart-Hart 309 27 - Custom Thermistor 310 $ref: /schemas/types.yaml#/definitions/uint32 311 minimum: 19 312 maximum: 27 313 314 adi,rsense-handle: 315 description: Associated sense resistor sensor. 316 $ref: /schemas/types.yaml#/definitions/phandle 317 318 adi,single-ended: 319 description: Whether the sensor is single-ended. 320 type: boolean 321 322 adi,rsense-share: 323 description: 324 Whether to enable sense resistor sharing, where one sense 325 resistor is used by multiple sensors. 326 type: boolean 327 328 adi,current-rotate: 329 description: 330 Whether to enable excitation current rotation to automatically 331 remove parasitic thermocouple effects. 332 type: boolean 333 334 adi,excitation-current-nanoamp: 335 description: 336 Excitation current applied to the thermistor. 337 0 sets the sensor in auto-range mode. 338 enum: [0, 250, 500, 1000, 5000, 10000, 25000, 50000, 100000, 250000, 339 500000, 1000000] 340 default: 0 341 342 adi,custom-thermistor: 343 description: 344 Used for digitizing custom thermistors. 345 See Page 65 of the datasheet. 346 $ref: /schemas/types.yaml#/definitions/uint64-matrix 347 minItems: 3 348 maxItems: 64 349 items: 350 items: 351 - description: Resistance point in uOhms. 352 - description: Temperature point in uK. 353 354 adi,custom-steinhart: 355 description: 356 Steinhart-Hart coefficients in raw format, used for digitizing 357 custom thermistors. 358 See Page 68 of the datasheet. 359 $ref: /schemas/types.yaml#/definitions/uint32-array 360 minItems: 6 361 maxItems: 6 362 363 required: 364 - adi,rsense-handle 365 366 dependencies: 367 adi,current-rotate: [ "adi,rsense-share" ] 368 369 allOf: 370 - if: 371 properties: 372 adi,sensor-type: 373 const: 26 374 then: 375 properties: 376 adi,excitation-current-nanoamp: 377 enum: [250, 500, 1000, 5000, 10000, 25000, 50000, 100000, 378 250000, 500000, 1000000] 379 default: 1000 380 required: 381 - adi,custom-steinhart 382 - if: 383 properties: 384 adi,sensor-type: 385 const: 27 386 then: 387 properties: 388 adi,excitation-current-nanoamp: 389 enum: [250, 500, 1000, 5000, 10000, 25000, 50000, 100000, 390 250000, 500000, 1000000] 391 default: 1000 392 required: 393 - adi,custom-thermistor 394 395 "^adc@": 396 $ref: '#/$defs/sensor-node' 397 unevaluatedProperties: false 398 description: Direct ADC sensor. 399 400 properties: 401 adi,sensor-type: 402 description: Sensor type for direct ADC sensors. 403 $ref: /schemas/types.yaml#/definitions/uint32 404 const: 30 405 406 adi,single-ended: 407 description: Whether the sensor is single-ended. 408 type: boolean 409 410 "^temp@": 411 $ref: '#/$defs/sensor-node' 412 unevaluatedProperties: false 413 description: Active analog temperature sensor. 414 415 properties: 416 adi,sensor-type: 417 description: Sensor type for active analog temperature sensors. 418 $ref: /schemas/types.yaml#/definitions/uint32 419 const: 31 420 421 adi,single-ended: 422 description: Whether the sensor is single-ended. 423 type: boolean 424 425 adi,custom-temp: 426 description: 427 Used for digitizing active analog temperature sensors. 428 See Page 67 of the LTM2985 datasheet. 429 $ref: /schemas/types.yaml#/definitions/uint64-matrix 430 minItems: 3 431 maxItems: 64 432 items: 433 items: 434 - description: Voltage point in nV, signed. 435 - description: Temperature point in uK. 436 437 required: 438 - adi,custom-temp 439 440 "^rsense@": 441 $ref: '#/$defs/sensor-node' 442 unevaluatedProperties: false 443 description: Sense resistor sensor. 444 445 properties: 446 reg: 447 minimum: 2 448 maximum: 20 449 450 adi,sensor-type: 451 description: Sensor type sense resistor sensors. 452 $ref: /schemas/types.yaml#/definitions/uint32 453 const: 29 454 455 adi,rsense-val-milli-ohms: 456 description: Value of the sense resistor. 457 458 required: 459 - adi,rsense-val-milli-ohms 460 461required: 462 - compatible 463 - reg 464 - interrupts 465 - vdd-supply 466 467additionalProperties: false 468 469allOf: 470 - if: 471 properties: 472 compatible: 473 contains: 474 enum: 475 - adi,ltc2983 476 - adi,ltc2984 477 then: 478 patternProperties: 479 "^temp@": false 480 481examples: 482 - | 483 #include <dt-bindings/interrupt-controller/irq.h> 484 spi { 485 #address-cells = <1>; 486 #size-cells = <0>; 487 488 temperature-sensor@0 { 489 compatible = "adi,ltc2983"; 490 reg = <0>; 491 492 #address-cells = <1>; 493 #size-cells = <0>; 494 495 vdd-supply = <&supply>; 496 interrupts = <20 IRQ_TYPE_EDGE_RISING>; 497 interrupt-parent = <&gpio>; 498 499 thermocouple@18 { 500 reg = <18>; 501 adi,sensor-type = <8>; //Type B 502 adi,sensor-oc-current-microamp = <10>; 503 adi,cold-junction-handle = <&diode5>; 504 }; 505 506 diode5: diode@5 { 507 reg = <5>; 508 adi,sensor-type = <28>; 509 }; 510 511 rsense2: rsense@2 { 512 reg = <2>; 513 adi,sensor-type = <29>; 514 adi,rsense-val-milli-ohms = <1200000>; //1.2Kohms 515 }; 516 517 rtd@14 { 518 reg = <14>; 519 adi,sensor-type = <15>; //PT1000 520 /*2-wire, internal gnd, no current rotation*/ 521 adi,number-of-wires = <2>; 522 adi,rsense-share; 523 adi,excitation-current-microamp = <500>; 524 adi,rsense-handle = <&rsense2>; 525 }; 526 527 adc@10 { 528 reg = <10>; 529 adi,sensor-type = <30>; 530 adi,single-ended; 531 }; 532 533 thermistor@12 { 534 reg = <12>; 535 adi,sensor-type = <26>; //Steinhart 536 adi,rsense-handle = <&rsense2>; 537 adi,custom-steinhart = <0x00f371ec 0x12345678 538 0x2c0f8733 0x10018c66 0xa0feaccd 539 0x90021d99>; //6 entries 540 }; 541 542 thermocouple@20 { 543 reg = <20>; 544 adi,sensor-type = <9>; //custom thermocouple 545 adi,single-ended; 546 adi,custom-thermocouple = 547 /bits/ 64 <(-50220000) 0>, 548 /bits/ 64 <(-30200000) 99100000>, 549 /bits/ 64 <(-5300000) 135400000>, 550 /bits/ 64 <0 273150000>, 551 /bits/ 64 <40200000 361200000>, 552 /bits/ 64 <55300000 522100000>, 553 /bits/ 64 <88300000 720300000>, 554 /bits/ 64 <132200000 811200000>, 555 /bits/ 64 <188700000 922500000>, 556 /bits/ 64 <460400000 1000000000>; //10 pairs 557 }; 558 }; 559 }; 560... 561