| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/iio/temperature/adi,ltc2983.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Analog Devices LTC2983 Multi-sensor Temperature system |
| |
| maintainers: |
| - Nuno Sá <nuno.sa@analog.com> |
| |
| description: | |
| Analog Devices LTC2983 Multi-Sensor Digital Temperature Measurement System |
| https://www.analog.com/media/en/technical-documentation/data-sheets/2983fc.pdf |
| |
| properties: |
| compatible: |
| enum: |
| - adi,ltc2983 |
| |
| reg: |
| maxItems: 1 |
| |
| interrupts: |
| maxItems: 1 |
| |
| adi,mux-delay-config-us: |
| description: |
| The LTC2983 performs 2 or 3 internal conversion cycles per temperature |
| result. Each conversion cycle is performed with different excitation and |
| input multiplexer configurations. Prior to each conversion, these |
| excitation circuits and input switch configurations are changed and an |
| internal 1ms delay ensures settling prior to the conversion cycle in most |
| cases. An extra delay can be configured using this property. The value is |
| rounded to nearest 100us. |
| maximum: 255 |
| |
| adi,filter-notch-freq: |
| description: |
| Set's the default setting of the digital filter. The default is |
| simultaneous 50/60Hz rejection. |
| 0 - 50/60Hz rejection |
| 1 - 60Hz rejection |
| 2 - 50Hz rejection |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| minimum: 0 |
| maximum: 2 |
| |
| '#address-cells': |
| const: 1 |
| |
| '#size-cells': |
| const: 0 |
| |
| patternProperties: |
| "@([1-9]|1[0-9]|20)$": |
| type: object |
| |
| properties: |
| reg: |
| description: |
| The channel number. It can be connected to one of the 20 channels of |
| the device. |
| minimum: 1 |
| maximum: 20 |
| |
| adi,sensor-type: |
| description: Identifies the type of sensor connected to the device. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| |
| required: |
| - reg |
| - adi,sensor-type |
| |
| "^thermocouple@": |
| type: object |
| description: |
| Represents a thermocouple sensor which is connected to one of the device |
| channels. |
| |
| properties: |
| adi,sensor-type: |
| description: | |
| 1 - Type J Thermocouple |
| 2 - Type K Thermocouple |
| 3 - Type E Thermocouple |
| 4 - Type N Thermocouple |
| 5 - Type R Thermocouple |
| 6 - Type S Thermocouple |
| 7 - Type T Thermocouple |
| 8 - Type B Thermocouple |
| 9 - Custom Thermocouple |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| minimum: 1 |
| maximum: 9 |
| |
| adi,single-ended: |
| description: |
| Boolean property which set's the thermocouple as single-ended. |
| type: boolean |
| |
| adi,sensor-oc-current-microamp: |
| description: |
| This property set's the pulsed current value applied during |
| open-circuit detect. |
| enum: [10, 100, 500, 1000] |
| |
| adi,cold-junction-handle: |
| description: |
| Phandle which points to a sensor object responsible for measuring |
| the thermocouple cold junction temperature. |
| $ref: "/schemas/types.yaml#/definitions/phandle" |
| |
| adi,custom-thermocouple: |
| description: |
| This is a table, where each entry should be a pair of |
| voltage(mv)-temperature(K). The entries must be given in nv and uK |
| so that, the original values must be multiplied by 1000000. For |
| more details look at table 69 and 70. |
| Note should be signed, but dtc doesn't currently maintain the |
| sign. |
| $ref: /schemas/types.yaml#/definitions/uint64-matrix |
| minItems: 3 |
| maxItems: 64 |
| items: |
| minItems: 2 |
| maxItems: 2 |
| |
| "^diode@": |
| type: object |
| description: |
| Represents a diode sensor which is connected to one of the device |
| channels. |
| |
| properties: |
| adi,sensor-type: |
| description: Identifies the sensor as a diode. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| const: 28 |
| |
| adi,single-ended: |
| description: Boolean property which set's the diode as single-ended. |
| type: boolean |
| |
| adi,three-conversion-cycles: |
| description: |
| Boolean property which set's three conversion cycles removing |
| parasitic resistance effects between the LTC2983 and the diode. |
| type: boolean |
| |
| adi,average-on: |
| description: |
| Boolean property which enables a running average of the diode |
| temperature reading. This reduces the noise when the diode is used |
| as a cold junction temperature element on an isothermal block |
| where temperatures change slowly. |
| type: boolean |
| |
| adi,excitation-current-microamp: |
| description: |
| This property controls the magnitude of the excitation current |
| applied to the diode. Depending on the number of conversions |
| cycles, this property will assume different predefined values on |
| each cycle. Just set the value of the first cycle (1l). |
| enum: [10, 20, 40, 80] |
| |
| adi,ideal-factor-value: |
| description: |
| This property sets the diode ideality factor. The real value must |
| be multiplied by 1000000 to remove the fractional part. For more |
| information look at table 20 of the datasheet. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| |
| "^rtd@": |
| type: object |
| description: |
| Represents a rtd sensor which is connected to one of the device channels. |
| |
| properties: |
| reg: |
| minimum: 2 |
| maximum: 20 |
| |
| adi,sensor-type: |
| description: | |
| 10 - RTD PT-10 |
| 11 - RTD PT-50 |
| 12 - RTD PT-100 |
| 13 - RTD PT-200 |
| 14 - RTD PT-500 |
| 15 - RTD PT-1000 |
| 16 - RTD PT-1000 (0.00375) |
| 17 - RTD NI-120 |
| 18 - RTD Custom |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| minimum: 10 |
| maximum: 18 |
| |
| adi,rsense-handle: |
| description: |
| Phandle pointing to a rsense object associated with this RTD. |
| $ref: "/schemas/types.yaml#/definitions/phandle" |
| |
| adi,number-of-wires: |
| description: |
| Identifies the number of wires used by the RTD. Setting this |
| property to 5 means 4 wires with Kelvin Rsense. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [2, 3, 4, 5] |
| |
| adi,rsense-share: |
| description: |
| Boolean property which enables Rsense sharing, where one sense |
| resistor is used for multiple 2-, 3-, and/or 4-wire RTDs. |
| type: boolean |
| |
| adi,current-rotate: |
| description: |
| Boolean property which enables excitation current rotation to |
| automatically remove parasitic thermocouple effects. Note that |
| this property is not allowed for 2- and 3-wire RTDs. |
| type: boolean |
| |
| adi,excitation-current-microamp: |
| description: |
| This property controls the magnitude of the excitation current |
| applied to the RTD. |
| enum: [5, 10, 25, 50, 100, 250, 500, 1000] |
| |
| adi,rtd-curve: |
| description: |
| This property set the RTD curve used and the corresponding |
| Callendar-VanDusen constants. Look at table 30 of the datasheet. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| minimum: 0 |
| maximum: 3 |
| |
| adi,custom-rtd: |
| description: |
| This is a table, where each entry should be a pair of |
| resistance(ohm)-temperature(K). The entries added here are in uohm |
| and uK. For more details values look at table 74 and 75. |
| $ref: /schemas/types.yaml#/definitions/uint64-matrix |
| items: |
| minItems: 3 |
| maxItems: 64 |
| items: |
| minItems: 2 |
| maxItems: 2 |
| |
| required: |
| - adi,rsense-handle |
| |
| dependencies: |
| adi,current-rotate: [ "adi,rsense-share" ] |
| |
| "^thermistor@": |
| type: object |
| description: |
| Represents a thermistor sensor which is connected to one of the device |
| channels. |
| |
| properties: |
| adi,sensor-type: |
| description: |
| 19 - Thermistor 44004/44033 2.252kohm at 25°C |
| 20 - Thermistor 44005/44030 3kohm at 25°C |
| 21 - Thermistor 44007/44034 5kohm at 25°C |
| 22 - Thermistor 44006/44031 10kohm at 25°C |
| 23 - Thermistor 44008/44032 30kohm at 25°C |
| 24 - Thermistor YSI 400 2.252kohm at 25°C |
| 25 - Thermistor Spectrum 1003k 1kohm |
| 26 - Thermistor Custom Steinhart-Hart |
| 27 - Custom Thermistor |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| minimum: 19 |
| maximum: 27 |
| |
| adi,rsense-handle: |
| description: |
| Phandle pointing to a rsense object associated with this |
| thermistor. |
| $ref: "/schemas/types.yaml#/definitions/phandle" |
| |
| adi,single-ended: |
| description: |
| Boolean property which set's the thermistor as single-ended. |
| type: boolean |
| |
| adi,rsense-share: |
| description: |
| Boolean property which enables Rsense sharing, where one sense |
| resistor is used for multiple thermistors. Note that this property |
| is ignored if adi,single-ended is set. |
| type: boolean |
| |
| adi,current-rotate: |
| description: |
| Boolean property which enables excitation current rotation to |
| automatically remove parasitic thermocouple effects. |
| type: boolean |
| |
| adi,excitation-current-nanoamp: |
| description: |
| This property controls the magnitude of the excitation current |
| applied to the thermistor. Value 0 set's the sensor in auto-range |
| mode. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [0, 250, 500, 1000, 5000, 10000, 25000, 50000, 100000, 250000, |
| 500000, 1000000] |
| |
| adi,custom-thermistor: |
| description: |
| This is a table, where each entry should be a pair of |
| resistance(ohm)-temperature(K). The entries added here are in uohm |
| and uK only for custom thermistors. For more details look at table |
| 78 and 79. |
| $ref: /schemas/types.yaml#/definitions/uint64-matrix |
| minItems: 3 |
| maxItems: 64 |
| items: |
| minItems: 2 |
| maxItems: 2 |
| |
| adi,custom-steinhart: |
| description: |
| Steinhart-Hart coefficients are also supported and can |
| be programmed into the device memory using this property. For |
| Steinhart sensors the coefficients are given in the raw |
| format. Look at table 82 for more information. |
| $ref: /schemas/types.yaml#/definitions/uint32-array |
| items: |
| minItems: 6 |
| maxItems: 6 |
| |
| required: |
| - adi,rsense-handle |
| |
| dependencies: |
| adi,current-rotate: [ "adi,rsense-share" ] |
| |
| "^adc@": |
| type: object |
| description: Represents a channel which is being used as a direct adc. |
| |
| properties: |
| adi,sensor-type: |
| description: Identifies the sensor as a direct adc. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| const: 30 |
| |
| adi,single-ended: |
| description: Boolean property which set's the adc as single-ended. |
| type: boolean |
| |
| "^rsense@": |
| type: object |
| description: |
| Represents a rsense which is connected to one of the device channels. |
| Rsense are used by thermistors and RTD's. |
| |
| properties: |
| reg: |
| minimum: 2 |
| maximum: 20 |
| |
| adi,sensor-type: |
| description: Identifies the sensor as a rsense. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| const: 29 |
| |
| adi,rsense-val-milli-ohms: |
| description: |
| Sets the value of the sense resistor. Look at table 20 of the |
| datasheet for information. |
| |
| required: |
| - adi,rsense-val-milli-ohms |
| |
| required: |
| - compatible |
| - reg |
| - interrupts |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/interrupt-controller/irq.h> |
| spi { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| sensor_ltc2983: ltc2983@0 { |
| compatible = "adi,ltc2983"; |
| reg = <0>; |
| |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| interrupts = <20 IRQ_TYPE_EDGE_RISING>; |
| interrupt-parent = <&gpio>; |
| |
| thermocouple@18 { |
| reg = <18>; |
| adi,sensor-type = <8>; //Type B |
| adi,sensor-oc-current-microamp = <10>; |
| adi,cold-junction-handle = <&diode5>; |
| }; |
| |
| diode5: diode@5 { |
| reg = <5>; |
| adi,sensor-type = <28>; |
| }; |
| |
| rsense2: rsense@2 { |
| reg = <2>; |
| adi,sensor-type = <29>; |
| adi,rsense-val-milli-ohms = <1200000>; //1.2Kohms |
| }; |
| |
| rtd@14 { |
| reg = <14>; |
| adi,sensor-type = <15>; //PT1000 |
| /*2-wire, internal gnd, no current rotation*/ |
| adi,number-of-wires = <2>; |
| adi,rsense-share; |
| adi,excitation-current-microamp = <500>; |
| adi,rsense-handle = <&rsense2>; |
| }; |
| |
| adc@10 { |
| reg = <10>; |
| adi,sensor-type = <30>; |
| adi,single-ended; |
| }; |
| |
| thermistor@12 { |
| reg = <12>; |
| adi,sensor-type = <26>; //Steinhart |
| adi,rsense-handle = <&rsense2>; |
| adi,custom-steinhart = <0x00F371EC 0x12345678 |
| 0x2C0F8733 0x10018C66 0xA0FEACCD |
| 0x90021D99>; //6 entries |
| }; |
| |
| thermocouple@20 { |
| reg = <20>; |
| adi,sensor-type = <9>; //custom thermocouple |
| adi,single-ended; |
| adi,custom-thermocouple = |
| /bits/ 64 <(-50220000) 0>, |
| /bits/ 64 <(-30200000) 99100000>, |
| /bits/ 64 <(-5300000) 135400000>, |
| /bits/ 64 <0 273150000>, |
| /bits/ 64 <40200000 361200000>, |
| /bits/ 64 <55300000 522100000>, |
| /bits/ 64 <88300000 720300000>, |
| /bits/ 64 <132200000 811200000>, |
| /bits/ 64 <188700000 922500000>, |
| /bits/ 64 <460400000 1000000000>; //10 pairs |
| }; |
| |
| }; |
| }; |
| ... |