Back to home page

OSCL-LXR

 
 

    


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 ...