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