# 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
               };

        };
    };
...
