# 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>,
                                 <(-30200000) 99100000>,
                                 <(-5300000) 135400000>,
                                 <0 273150000>,
                                 <40200000 361200000>,
                                 <55300000 522100000>,
                                 <88300000 720300000>,
                                 <132200000 811200000>,
                                 <188700000 922500000>,
                                 <460400000 1000000000>; //10 pairs
               };

        };
    };
...
