File Index
Files and directories
Sign in
FILE

adi,ltc2983.yaml

File preview with syntax highlighting.

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