# 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, LTC2986, LTM2985 Multi-sensor Temperature system

maintainers:
  - Nuno Sá <nuno.sa@analog.com>

description: |
  Analog Devices LTC2983, LTC2984, LTC2986, LTM2985 Multi-Sensor Digital
  Temperature Measurement Systems

  https://www.analog.com/media/en/technical-documentation/data-sheets/2983fc.pdf
  https://www.analog.com/media/en/technical-documentation/data-sheets/2984fb.pdf
  https://www.analog.com/media/en/technical-documentation/data-sheets/29861fa.pdf
  https://www.analog.com/media/en/technical-documentation/data-sheets/ltm2985.pdf

$defs:
  sensor-node:
    type: object
    description: Sensor node common constraints

    properties:
      reg:
        description:
          Channel number. Connects the sensor to the channel with this number
          of the device.
        minimum: 1
        maximum: 20

      adi,sensor-type:
        description: Type of sensor connected to the device.
        $ref: /schemas/types.yaml#/definitions/uint32

    required:
      - reg
      - adi,sensor-type


properties:
  compatible:
    oneOf:
      - enum:
          - adi,ltc2983
          - adi,ltc2986
          - adi,ltm2985
      - items:
          - const: adi,ltc2984
          - const: adi,ltc2983

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  adi,mux-delay-config-us:
    description: |
      Extra delay prior to each conversion, in addition to the internal 1ms
      delay, for the multiplexer to switch input configurations and
      excitation values.

      This property is supposed to be in microseconds, but to maintain
      compatibility, this value will be multiplied by 100 before usage.
    maximum: 255
    default: 0

  adi,filter-notch-freq:
    description:
      Notch frequency of the digital filter.
      0 - 50/60Hz rejection
      1 - 60Hz rejection
      2 - 50Hz rejection
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 2
    default: 0

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

patternProperties:
  "^thermocouple@":
    $ref: '#/$defs/sensor-node'
    unevaluatedProperties: false

    description: Thermocouple sensor.

    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: Whether the sensor is single-ended.
        type: boolean

      adi,sensor-oc-current-microamp:
        description: Pulsed current value applied during open-circuit detect.
        enum: [10, 100, 500, 1000]
        default: 10

      adi,cold-junction-handle:
        description:
          Sensor responsible for measuring the thermocouple cold junction
          temperature.
        $ref: /schemas/types.yaml#/definitions/phandle

      adi,custom-thermocouple:
        description:
          Used for digitizing custom thermocouples.
          See Page 59 of the datasheet.
        $ref: /schemas/types.yaml#/definitions/int64-matrix
        minItems: 3
        maxItems: 64
        items:
          items:
            - description: Voltage point in nV, signed.
            - description: Temperature point in uK.

    allOf:
      - if:
          properties:
            adi,sensor-type:
              const: 9
        then:
          required:
            - adi,custom-thermocouple

  "^diode@":
    $ref: '#/$defs/sensor-node'
    unevaluatedProperties: false

    description: Diode sensor.

    properties:
      adi,sensor-type:
        description: Sensor type for diodes.
        $ref: /schemas/types.yaml#/definitions/uint32
        const: 28

      adi,single-ended:
        description: Whether the sensor is single-ended.
        type: boolean

      adi,three-conversion-cycles:
        description:
          Whether to use three conversion cycles to remove parasitic
          resistance between the device and the diode.
        type: boolean

      adi,average-on:
        description:
          Whether to use a running average of the diode temperature
          reading to reduce 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:
          Magnitude of the 1l excitation current applied to the diode.
          4l excitation current will be 4 times this value, and 8l
          excitation current will be 8 times value.
        enum: [10, 20, 40, 80]
        default: 10

      adi,ideal-factor-value:
        description:
          Diode ideality factor.
          Set this property to 1000000 times the real value.
        $ref: /schemas/types.yaml#/definitions/uint32
        default: 0

  "^rtd@":
    $ref: '#/$defs/sensor-node'
    unevaluatedProperties: false
    description: RTD sensor.

    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: Associated sense resistor sensor.
        $ref: /schemas/types.yaml#/definitions/phandle

      adi,number-of-wires:
        description:
          Number of wires used by the RTD.
          5 means 4 wires with Kelvin sense resistor.
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [2, 3, 4, 5]
        default: 2

      adi,rsense-share:
        description:
          Whether to enable sense resistor sharing, where one sense
          resistor is used by multiple sensors.
        type: boolean

      adi,excitation-current-microamp:
        description: Excitation current applied to the RTD.
        enum: [5, 10, 25, 50, 100, 250, 500, 1000]
        default: 5

      adi,rtd-curve:
        description: |
          RTD curve and the corresponding Callendar-VanDusen constants.
          0 - European
          1 - American
          2 - Japanese
          3 - ITS-90
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 3
        default: 0

      adi,custom-rtd:
        description:
          Used for digitizing custom RTDs.
          See Page 62 of the datasheet.
        $ref: /schemas/types.yaml#/definitions/uint64-matrix
        minItems: 3
        maxItems: 64
        items:
          items:
            - description: Resistance point in uOhms.
            - description: Temperature point in uK.

    required:
      - adi,rsense-handle

    allOf:
      - if:
          properties:
            adi,number-of-wires:
              const: 4
        then:
          properties:
            adi,current-rotate:
              description:
                Whether to enable excitation current rotation to automatically
                remove parasitic thermocouple effects.
              type: boolean

          dependencies:
            adi,current-rotate: [ "adi,rsense-share" ]

      - if:
          properties:
            adi,sensor-type:
              const: 18
        then:
          required:
            - adi,custom-rtd

  "^thermistor@":
    $ref: '#/$defs/sensor-node'
    unevaluatedProperties: false
    description: Thermistor sensor.

    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: Associated sense resistor sensor.
        $ref: /schemas/types.yaml#/definitions/phandle

      adi,single-ended:
        description: Whether the sensor is single-ended.
        type: boolean

      adi,rsense-share:
        description:
          Whether to enable sense resistor sharing, where one sense
          resistor is used by multiple sensors.
        type: boolean

      adi,current-rotate:
        description:
          Whether to enable excitation current rotation to automatically
          remove parasitic thermocouple effects.
        type: boolean

      adi,excitation-current-nanoamp:
        description:
          Excitation current applied to the thermistor.
          0 sets the sensor in auto-range mode.
        enum: [0, 250, 500, 1000, 5000, 10000, 25000, 50000, 100000, 250000,
               500000, 1000000]
        default: 0

      adi,custom-thermistor:
        description:
          Used for digitizing custom thermistors.
          See Page 65 of the datasheet.
        $ref: /schemas/types.yaml#/definitions/uint64-matrix
        minItems: 3
        maxItems: 64
        items:
          items:
            - description: Resistance point in uOhms.
            - description: Temperature point in uK.

      adi,custom-steinhart:
        description:
          Steinhart-Hart coefficients in raw format, used for digitizing
          custom thermistors.
          See Page 68 of the datasheet.
        $ref: /schemas/types.yaml#/definitions/uint32-array
        minItems: 6
        maxItems: 6

    required:
      - adi,rsense-handle

    dependencies:
      adi,current-rotate: [ "adi,rsense-share" ]

    allOf:
      - if:
          properties:
            adi,sensor-type:
              const: 26
        then:
          properties:
            adi,excitation-current-nanoamp:
              enum: [250, 500, 1000, 5000, 10000, 25000, 50000, 100000,
                     250000, 500000, 1000000]
              default: 1000
          required:
            - adi,custom-steinhart
      - if:
          properties:
            adi,sensor-type:
              const: 27
        then:
          properties:
            adi,excitation-current-nanoamp:
              enum: [250, 500, 1000, 5000, 10000, 25000, 50000, 100000,
                     250000, 500000, 1000000]
              default: 1000
          required:
            - adi,custom-thermistor

  "^adc@":
    $ref: '#/$defs/sensor-node'
    unevaluatedProperties: false
    description: Direct ADC sensor.

    properties:
      adi,sensor-type:
        description: Sensor type for direct ADC sensors.
        $ref: /schemas/types.yaml#/definitions/uint32
        const: 30

      adi,single-ended:
        description: Whether the sensor is single-ended.
        type: boolean

  "^temp@":
    $ref: '#/$defs/sensor-node'
    unevaluatedProperties: false
    description: Active analog temperature sensor.

    properties:
      adi,sensor-type:
        description: Sensor type for active analog temperature sensors.
        $ref: /schemas/types.yaml#/definitions/uint32
        const: 31

      adi,single-ended:
        description: Whether the sensor is single-ended.
        type: boolean

      adi,custom-temp:
        description:
          Used for digitizing active analog temperature sensors.
          See Page 67 of the LTM2985 datasheet.
        $ref: /schemas/types.yaml#/definitions/uint64-matrix
        minItems: 3
        maxItems: 64
        items:
          items:
            - description: Voltage point in nV, signed.
            - description: Temperature point in uK.

    required:
      - adi,custom-temp

  "^rsense@":
    $ref: '#/$defs/sensor-node'
    unevaluatedProperties: false
    description: Sense resistor sensor.

    properties:
      reg:
        minimum: 2
        maximum: 20

      adi,sensor-type:
        description: Sensor type sense resistor sensors.
        $ref: /schemas/types.yaml#/definitions/uint32
        const: 29

      adi,rsense-val-milli-ohms:
        description: Value of the sense resistor.

    required:
      - adi,rsense-val-milli-ohms

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - adi,ltc2983
              - adi,ltc2984
    then:
      patternProperties:
        "^temp@": false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        temperature-sensor@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
            };
        };
    };
...
