18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/iio/addac/adi,ad74413r.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Analog Devices AD74412R/AD74413R device
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Cosmin Tanislav <cosmin.tanislav@analog.com>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |
138c2ecf20Sopenharmony_ci  The AD74412R and AD74413R are quad-channel software configurable input/output
148c2ecf20Sopenharmony_ci  solutions for building and process control applications. They contain
158c2ecf20Sopenharmony_ci  functionality for analog output, analog input, digital input, resistance
168c2ecf20Sopenharmony_ci  temperature detector, and thermocouple measurements integrated
178c2ecf20Sopenharmony_ci  into a single chip solution with an SPI interface.
188c2ecf20Sopenharmony_ci  The devices feature a 16-bit ADC and four configurable 13-bit DACs to provide
198c2ecf20Sopenharmony_ci  four configurable input/output channels and a suite of diagnostic functions.
208c2ecf20Sopenharmony_ci  The AD74413R differentiates itself from the AD74412R by being HART-compatible.
218c2ecf20Sopenharmony_ci    https://www.analog.com/en/products/ad74412r.html
228c2ecf20Sopenharmony_ci    https://www.analog.com/en/products/ad74413r.html
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciproperties:
258c2ecf20Sopenharmony_ci  compatible:
268c2ecf20Sopenharmony_ci    enum:
278c2ecf20Sopenharmony_ci      - adi,ad74412r
288c2ecf20Sopenharmony_ci      - adi,ad74413r
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci  reg:
318c2ecf20Sopenharmony_ci    maxItems: 1
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci  '#address-cells':
348c2ecf20Sopenharmony_ci    const: 1
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci  '#size-cells':
378c2ecf20Sopenharmony_ci    const: 0
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci  spi-max-frequency:
408c2ecf20Sopenharmony_ci    maximum: 1000000
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci  spi-cpol: true
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci  interrupts:
458c2ecf20Sopenharmony_ci    maxItems: 1
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci  refin-supply: true
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci  shunt-resistor-micro-ohms:
508c2ecf20Sopenharmony_ci    description:
518c2ecf20Sopenharmony_ci      Shunt (sense) resistor value in micro-Ohms.
528c2ecf20Sopenharmony_ci    default: 100000000
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_cirequired:
558c2ecf20Sopenharmony_ci  - compatible
568c2ecf20Sopenharmony_ci  - reg
578c2ecf20Sopenharmony_ci  - spi-max-frequency
588c2ecf20Sopenharmony_ci  - spi-cpol
598c2ecf20Sopenharmony_ci  - refin-supply
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ciadditionalProperties: false
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_cipatternProperties:
648c2ecf20Sopenharmony_ci  "^channel@[0-3]$":
658c2ecf20Sopenharmony_ci    type: object
668c2ecf20Sopenharmony_ci    description: Represents the external channels which are connected to the device.
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci    properties:
698c2ecf20Sopenharmony_ci      reg:
708c2ecf20Sopenharmony_ci        description: |
718c2ecf20Sopenharmony_ci          The channel number. It can have up to 4 channels numbered from 0 to 3.
728c2ecf20Sopenharmony_ci        minimum: 0
738c2ecf20Sopenharmony_ci        maximum: 3
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci      adi,ch-func:
768c2ecf20Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
778c2ecf20Sopenharmony_ci        description: |
788c2ecf20Sopenharmony_ci          Channel function.
798c2ecf20Sopenharmony_ci          HART functions are not supported on AD74412R.
808c2ecf20Sopenharmony_ci          0 - CH_FUNC_HIGH_IMPEDANCE
818c2ecf20Sopenharmony_ci          1 - CH_FUNC_VOLTAGE_OUTPUT
828c2ecf20Sopenharmony_ci          2 - CH_FUNC_CURRENT_OUTPUT
838c2ecf20Sopenharmony_ci          3 - CH_FUNC_VOLTAGE_INPUT
848c2ecf20Sopenharmony_ci          4 - CH_FUNC_CURRENT_INPUT_EXT_POWER
858c2ecf20Sopenharmony_ci          5 - CH_FUNC_CURRENT_INPUT_LOOP_POWER
868c2ecf20Sopenharmony_ci          6 - CH_FUNC_RESISTANCE_INPUT
878c2ecf20Sopenharmony_ci          7 - CH_FUNC_DIGITAL_INPUT_LOGIC
888c2ecf20Sopenharmony_ci          8 - CH_FUNC_DIGITAL_INPUT_LOOP_POWER
898c2ecf20Sopenharmony_ci          9 - CH_FUNC_CURRENT_INPUT_EXT_POWER_HART
908c2ecf20Sopenharmony_ci          10 - CH_FUNC_CURRENT_INPUT_LOOP_POWER_HART
918c2ecf20Sopenharmony_ci        minimum: 0
928c2ecf20Sopenharmony_ci        maximum: 10
938c2ecf20Sopenharmony_ci        default: 0
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci      adi,gpo-comparator:
968c2ecf20Sopenharmony_ci        type: boolean
978c2ecf20Sopenharmony_ci        description: |
988c2ecf20Sopenharmony_ci          Whether to configure GPO as a comparator or not.
998c2ecf20Sopenharmony_ci          When not configured as a comparator, the GPO will be treated as an
1008c2ecf20Sopenharmony_ci          output-only GPIO.
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci    required:
1038c2ecf20Sopenharmony_ci      - reg
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ciexamples:
1068c2ecf20Sopenharmony_ci  - |
1078c2ecf20Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
1088c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
1098c2ecf20Sopenharmony_ci    #include <dt-bindings/iio/addac/adi,ad74413r.h>
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci    spi {
1128c2ecf20Sopenharmony_ci      #address-cells = <1>;
1138c2ecf20Sopenharmony_ci      #size-cells = <0>;
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci      cs-gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
1168c2ecf20Sopenharmony_ci      status = "okay";
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci      ad74413r@0 {
1198c2ecf20Sopenharmony_ci        compatible = "adi,ad74413r";
1208c2ecf20Sopenharmony_ci        reg = <0>;
1218c2ecf20Sopenharmony_ci        spi-max-frequency = <1000000>;
1228c2ecf20Sopenharmony_ci        spi-cpol;
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci        #address-cells = <1>;
1258c2ecf20Sopenharmony_ci        #size-cells = <0>;
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ci        interrupt-parent = <&gpio>;
1288c2ecf20Sopenharmony_ci        interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
1298c2ecf20Sopenharmony_ci
1308c2ecf20Sopenharmony_ci        refin-supply = <&ad74413r_refin>;
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci        channel@0 {
1338c2ecf20Sopenharmony_ci          reg = <0>;
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ci          adi,ch-func = <CH_FUNC_VOLTAGE_OUTPUT>;
1368c2ecf20Sopenharmony_ci        };
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci        channel@1 {
1398c2ecf20Sopenharmony_ci          reg = <1>;
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ci          adi,ch-func = <CH_FUNC_CURRENT_OUTPUT>;
1428c2ecf20Sopenharmony_ci        };
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ci        channel@2 {
1458c2ecf20Sopenharmony_ci          reg = <2>;
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci          adi,ch-func = <CH_FUNC_DIGITAL_INPUT_LOGIC>;
1488c2ecf20Sopenharmony_ci          adi,gpo-comparator;
1498c2ecf20Sopenharmony_ci        };
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci        channel@3 {
1528c2ecf20Sopenharmony_ci          reg = <3>;
1538c2ecf20Sopenharmony_ci
1548c2ecf20Sopenharmony_ci          adi,ch-func = <CH_FUNC_CURRENT_INPUT_EXT_POWER>;
1558c2ecf20Sopenharmony_ci        };
1568c2ecf20Sopenharmony_ci      };
1578c2ecf20Sopenharmony_ci    };
1588c2ecf20Sopenharmony_ci...
159