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 Multi-sensor Temperature system 8 9maintainers: 10 - Nuno Sá <nuno.sa@analog.com> 11 12description: | 13 Analog Devices LTC2983 Multi-Sensor Digital Temperature Measurement System 14 https://www.analog.com/media/en/technical-documentation/data-sheets/2983fc.pdf 15 16properties: 17 compatible: 18 enum: 19 - adi,ltc2983 20 21 reg: 22 maxItems: 1 23 24 interrupts: 25 maxItems: 1 26 27 adi,mux-delay-config-us: 28 description: 29 The LTC2983 performs 2 or 3 internal conversion cycles per temperature 30 result. Each conversion cycle is performed with different excitation and 31 input multiplexer configurations. Prior to each conversion, these 32 excitation circuits and input switch configurations are changed and an 33 internal 1ms delay ensures settling prior to the conversion cycle in most 34 cases. An extra delay can be configured using this property. The value is 35 rounded to nearest 100us. 36 maximum: 255 37 38 adi,filter-notch-freq: 39 description: 40 Set's the default setting of the digital filter. The default is 41 simultaneous 50/60Hz rejection. 42 0 - 50/60Hz rejection 43 1 - 60Hz rejection 44 2 - 50Hz rejection 45 allOf: 46 - $ref: /schemas/types.yaml#/definitions/uint32 47 - minimum: 0 48 maximum: 2 49 50 '#address-cells': 51 const: 1 52 53 '#size-cells': 54 const: 0 55 56patternProperties: 57 "@([1-9]|1[0-9]|20)$": 58 type: object 59 60 properties: 61 reg: 62 description: 63 The channel number. It can be connected to one of the 20 channels of 64 the device. 65 minimum: 1 66 maximum: 20 67 68 adi,sensor-type: 69 description: Identifies the type of sensor connected to the device. 70 $ref: /schemas/types.yaml#/definitions/uint32 71 72 required: 73 - reg 74 - adi,sensor-type 75 76 "^thermocouple@": 77 type: object 78 description: 79 Represents a thermocouple sensor which is connected to one of the device 80 channels. 81 82 properties: 83 adi,sensor-type: 84 description: | 85 1 - Type J Thermocouple 86 2 - Type K Thermocouple 87 3 - Type E Thermocouple 88 4 - Type N Thermocouple 89 5 - Type R Thermocouple 90 6 - Type S Thermocouple 91 7 - Type T Thermocouple 92 8 - Type B Thermocouple 93 9 - Custom Thermocouple 94 allOf: 95 - $ref: /schemas/types.yaml#/definitions/uint32 96 minimum: 1 97 maximum: 9 98 99 adi,single-ended: 100 description: 101 Boolean property which set's the thermocouple as single-ended. 102 type: boolean 103 104 adi,sensor-oc-current-microamp: 105 description: 106 This property set's the pulsed current value applied during 107 open-circuit detect. 108 enum: [10, 100, 500, 1000] 109 110 adi,cold-junction-handle: 111 description: 112 Phandle which points to a sensor object responsible for measuring 113 the thermocouple cold junction temperature. 114 $ref: "/schemas/types.yaml#/definitions/phandle" 115 116 adi,custom-thermocouple: 117 description: 118 This is a table, where each entry should be a pair of 119 voltage(mv)-temperature(K). The entries must be given in nv and uK 120 so that, the original values must be multiplied by 1000000. For 121 more details look at table 69 and 70. 122 Note should be signed, but dtc doesn't currently maintain the 123 sign. 124 allOf: 125 - $ref: /schemas/types.yaml#/definitions/uint64-matrix 126 minItems: 3 127 maxItems: 64 128 items: 129 minItems: 2 130 maxItems: 2 131 132 "^diode@": 133 type: object 134 description: 135 Represents a diode sensor which is connected to one of the device 136 channels. 137 138 properties: 139 adi,sensor-type: 140 description: Identifies the sensor as a diode. 141 allOf: 142 - $ref: /schemas/types.yaml#/definitions/uint32 143 const: 28 144 145 adi,single-ended: 146 description: Boolean property which set's the diode as single-ended. 147 type: boolean 148 149 adi,three-conversion-cycles: 150 description: 151 Boolean property which set's three conversion cycles removing 152 parasitic resistance effects between the LTC2983 and the diode. 153 type: boolean 154 155 adi,average-on: 156 description: 157 Boolean property which enables a running average of the diode 158 temperature reading. This reduces the noise when the diode is used 159 as a cold junction temperature element on an isothermal block 160 where temperatures change slowly. 161 type: boolean 162 163 adi,excitation-current-microamp: 164 description: 165 This property controls the magnitude of the excitation current 166 applied to the diode. Depending on the number of conversions 167 cycles, this property will assume different predefined values on 168 each cycle. Just set the value of the first cycle (1l). 169 enum: [10, 20, 40, 80] 170 171 adi,ideal-factor-value: 172 description: 173 This property sets the diode ideality factor. The real value must 174 be multiplied by 1000000 to remove the fractional part. For more 175 information look at table 20 of the datasheet. 176 $ref: /schemas/types.yaml#/definitions/uint32 177 178 "^rtd@": 179 type: object 180 description: 181 Represents a rtd sensor which is connected to one of the device channels. 182 183 properties: 184 reg: 185 minimum: 2 186 maximum: 20 187 188 adi,sensor-type: 189 description: | 190 10 - RTD PT-10 191 11 - RTD PT-50 192 12 - RTD PT-100 193 13 - RTD PT-200 194 14 - RTD PT-500 195 15 - RTD PT-1000 196 16 - RTD PT-1000 (0.00375) 197 17 - RTD NI-120 198 18 - RTD Custom 199 allOf: 200 - $ref: /schemas/types.yaml#/definitions/uint32 201 minimum: 10 202 maximum: 18 203 204 adi,rsense-handle: 205 description: 206 Phandle pointing to a rsense object associated with this RTD. 207 $ref: "/schemas/types.yaml#/definitions/phandle" 208 209 adi,number-of-wires: 210 description: 211 Identifies the number of wires used by the RTD. Setting this 212 property to 5 means 4 wires with Kelvin Rsense. 213 allOf: 214 - $ref: /schemas/types.yaml#/definitions/uint32 215 - enum: [2, 3, 4, 5] 216 217 adi,rsense-share: 218 description: 219 Boolean property which enables Rsense sharing, where one sense 220 resistor is used for multiple 2-, 3-, and/or 4-wire RTDs. 221 type: boolean 222 223 adi,current-rotate: 224 description: 225 Boolean property which enables excitation current rotation to 226 automatically remove parasitic thermocouple effects. Note that 227 this property is not allowed for 2- and 3-wire RTDs. 228 type: boolean 229 230 adi,excitation-current-microamp: 231 description: 232 This property controls the magnitude of the excitation current 233 applied to the RTD. 234 enum: [5, 10, 25, 50, 100, 250, 500, 1000] 235 236 adi,rtd-curve: 237 description: 238 This property set the RTD curve used and the corresponding 239 Callendar-VanDusen constants. Look at table 30 of the datasheet. 240 allOf: 241 - $ref: /schemas/types.yaml#/definitions/uint32 242 - minimum: 0 243 maximum: 3 244 245 adi,custom-rtd: 246 description: 247 This is a table, where each entry should be a pair of 248 resistance(ohm)-temperature(K). The entries added here are in uohm 249 and uK. For more details values look at table 74 and 75. 250 allOf: 251 - $ref: /schemas/types.yaml#/definitions/uint64-matrix 252 items: 253 minItems: 3 254 maxItems: 64 255 items: 256 minItems: 2 257 maxItems: 2 258 259 required: 260 - adi,rsense-handle 261 262 dependencies: 263 adi,current-rotate: [ adi,rsense-share ] 264 265 "^thermistor@": 266 type: object 267 description: 268 Represents a thermistor sensor which is connected to one of the device 269 channels. 270 271 properties: 272 adi,sensor-type: 273 description: 274 19 - Thermistor 44004/44033 2.252kohm at 25°C 275 20 - Thermistor 44005/44030 3kohm at 25°C 276 21 - Thermistor 44007/44034 5kohm at 25°C 277 22 - Thermistor 44006/44031 10kohm at 25°C 278 23 - Thermistor 44008/44032 30kohm at 25°C 279 24 - Thermistor YSI 400 2.252kohm at 25°C 280 25 - Thermistor Spectrum 1003k 1kohm 281 26 - Thermistor Custom Steinhart-Hart 282 27 - Custom Thermistor 283 allOf: 284 - $ref: /schemas/types.yaml#/definitions/uint32 285 minimum: 19 286 maximum: 27 287 288 adi,rsense-handle: 289 description: 290 Phandle pointing to a rsense object associated with this 291 thermistor. 292 $ref: "/schemas/types.yaml#/definitions/phandle" 293 294 adi,single-ended: 295 description: 296 Boolean property which set's the thermistor as single-ended. 297 type: boolean 298 299 adi,rsense-share: 300 description: 301 Boolean property which enables Rsense sharing, where one sense 302 resistor is used for multiple thermistors. Note that this property 303 is ignored if adi,single-ended is set. 304 type: boolean 305 306 adi,current-rotate: 307 description: 308 Boolean property which enables excitation current rotation to 309 automatically remove parasitic thermocouple effects. 310 type: boolean 311 312 adi,excitation-current-nanoamp: 313 description: 314 This property controls the magnitude of the excitation current 315 applied to the thermistor. Value 0 set's the sensor in auto-range 316 mode. 317 allOf: 318 - $ref: /schemas/types.yaml#/definitions/uint32 319 - enum: [0, 250, 500, 1000, 5000, 10000, 25000, 50000, 100000, 320 250000, 500000, 1000000] 321 322 adi,custom-thermistor: 323 description: 324 This is a table, where each entry should be a pair of 325 resistance(ohm)-temperature(K). The entries added here are in uohm 326 and uK only for custom thermistors. For more details look at table 327 78 and 79. 328 allOf: 329 - $ref: /schemas/types.yaml#/definitions/uint64-matrix 330 minItems: 3 331 maxItems: 64 332 items: 333 minItems: 2 334 maxItems: 2 335 336 adi,custom-steinhart: 337 description: 338 Steinhart-Hart coefficients are also supported and can 339 be programmed into the device memory using this property. For 340 Steinhart sensors the coefficients are given in the raw 341 format. Look at table 82 for more information. 342 allOf: 343 - $ref: /schemas/types.yaml#/definitions/uint32-array 344 items: 345 minItems: 6 346 maxItems: 6 347 348 required: 349 - adi,rsense-handle 350 351 dependencies: 352 adi,current-rotate: [ adi,rsense-share ] 353 354 "^adc@": 355 type: object 356 description: Represents a channel which is being used as a direct adc. 357 358 properties: 359 adi,sensor-type: 360 description: Identifies the sensor as a direct adc. 361 allOf: 362 - $ref: /schemas/types.yaml#/definitions/uint32 363 const: 30 364 365 adi,single-ended: 366 description: Boolean property which set's the adc as single-ended. 367 type: boolean 368 369 "^rsense@": 370 type: object 371 description: 372 Represents a rsense which is connected to one of the device channels. 373 Rsense are used by thermistors and RTD's. 374 375 properties: 376 reg: 377 minimum: 2 378 maximum: 20 379 380 adi,sensor-type: 381 description: Identifies the sensor as a rsense. 382 allOf: 383 - $ref: /schemas/types.yaml#/definitions/uint32 384 const: 29 385 386 adi,rsense-val-milli-ohms: 387 description: 388 Sets the value of the sense resistor. Look at table 20 of the 389 datasheet for information. 390 391 required: 392 - adi,rsense-val-milli-ohms 393 394required: 395 - compatible 396 - reg 397 - interrupts 398 399additionalProperties: false 400 401examples: 402 - | 403 #include <dt-bindings/interrupt-controller/irq.h> 404 spi { 405 #address-cells = <1>; 406 #size-cells = <0>; 407 408 sensor_ltc2983: ltc2983@0 { 409 compatible = "adi,ltc2983"; 410 reg = <0>; 411 412 #address-cells = <1>; 413 #size-cells = <0>; 414 415 interrupts = <20 IRQ_TYPE_EDGE_RISING>; 416 interrupt-parent = <&gpio>; 417 418 thermocouple@18 { 419 reg = <18>; 420 adi,sensor-type = <8>; //Type B 421 adi,sensor-oc-current-microamp = <10>; 422 adi,cold-junction-handle = <&diode5>; 423 }; 424 425 diode5: diode@5 { 426 reg = <5>; 427 adi,sensor-type = <28>; 428 }; 429 430 rsense2: rsense@2 { 431 reg = <2>; 432 adi,sensor-type = <29>; 433 adi,rsense-val-milli-ohms = <1200000>; //1.2Kohms 434 }; 435 436 rtd@14 { 437 reg = <14>; 438 adi,sensor-type = <15>; //PT1000 439 /*2-wire, internal gnd, no current rotation*/ 440 adi,number-of-wires = <2>; 441 adi,rsense-share; 442 adi,excitation-current-microamp = <500>; 443 adi,rsense-handle = <&rsense2>; 444 }; 445 446 adc@10 { 447 reg = <10>; 448 adi,sensor-type = <30>; 449 adi,single-ended; 450 }; 451 452 thermistor@12 { 453 reg = <12>; 454 adi,sensor-type = <26>; //Steinhart 455 adi,rsense-handle = <&rsense2>; 456 adi,custom-steinhart = <0x00F371EC 0x12345678 457 0x2C0F8733 0x10018C66 0xA0FEACCD 458 0x90021D99>; //6 entries 459 }; 460 461 thermocouple@20 { 462 reg = <20>; 463 adi,sensor-type = <9>; //custom thermocouple 464 adi,single-ended; 465 adi,custom-thermocouple = /bits/ 64 466 <(-50220000) 0>, 467 <(-30200000) 99100000>, 468 <(-5300000) 135400000>, 469 <0 273150000>, 470 <40200000 361200000>, 471 <55300000 522100000>, 472 <88300000 720300000>, 473 <132200000 811200000>, 474 <188700000 922500000>, 475 <460400000 1000000000>; //10 pairs 476 }; 477 478 }; 479 }; 480... 481