1e67e8565SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2e67e8565SEmmanuel Vadot%YAML 1.2
3e67e8565SEmmanuel Vadot---
4e67e8565SEmmanuel Vadot$id: http://devicetree.org/schemas/iio/addac/adi,ad74413r.yaml#
5e67e8565SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6e67e8565SEmmanuel Vadot
7e67e8565SEmmanuel Vadottitle: Analog Devices AD74412R/AD74413R device
8e67e8565SEmmanuel Vadot
9e67e8565SEmmanuel Vadotmaintainers:
10e67e8565SEmmanuel Vadot  - Cosmin Tanislav <cosmin.tanislav@analog.com>
11e67e8565SEmmanuel Vadot
12e67e8565SEmmanuel Vadotdescription: |
13e67e8565SEmmanuel Vadot  The AD74412R and AD74413R are quad-channel software configurable input/output
14e67e8565SEmmanuel Vadot  solutions for building and process control applications. They contain
15e67e8565SEmmanuel Vadot  functionality for analog output, analog input, digital input, resistance
16e67e8565SEmmanuel Vadot  temperature detector, and thermocouple measurements integrated
17e67e8565SEmmanuel Vadot  into a single chip solution with an SPI interface.
18e67e8565SEmmanuel Vadot  The devices feature a 16-bit ADC and four configurable 13-bit DACs to provide
19e67e8565SEmmanuel Vadot  four configurable input/output channels and a suite of diagnostic functions.
20e67e8565SEmmanuel Vadot  The AD74413R differentiates itself from the AD74412R by being HART-compatible.
21e67e8565SEmmanuel Vadot    https://www.analog.com/en/products/ad74412r.html
22e67e8565SEmmanuel Vadot    https://www.analog.com/en/products/ad74413r.html
23e67e8565SEmmanuel Vadot
24e67e8565SEmmanuel Vadotproperties:
25e67e8565SEmmanuel Vadot  compatible:
26e67e8565SEmmanuel Vadot    enum:
27e67e8565SEmmanuel Vadot      - adi,ad74412r
28e67e8565SEmmanuel Vadot      - adi,ad74413r
29e67e8565SEmmanuel Vadot
30e67e8565SEmmanuel Vadot  reg:
31e67e8565SEmmanuel Vadot    maxItems: 1
32e67e8565SEmmanuel Vadot
33e67e8565SEmmanuel Vadot  '#address-cells':
34e67e8565SEmmanuel Vadot    const: 1
35e67e8565SEmmanuel Vadot
36e67e8565SEmmanuel Vadot  '#size-cells':
37e67e8565SEmmanuel Vadot    const: 0
38e67e8565SEmmanuel Vadot
39e67e8565SEmmanuel Vadot  spi-max-frequency:
40e67e8565SEmmanuel Vadot    maximum: 1000000
41e67e8565SEmmanuel Vadot
42e67e8565SEmmanuel Vadot  spi-cpol: true
43e67e8565SEmmanuel Vadot
44e67e8565SEmmanuel Vadot  interrupts:
45e67e8565SEmmanuel Vadot    maxItems: 1
46e67e8565SEmmanuel Vadot
47e67e8565SEmmanuel Vadot  refin-supply: true
48e67e8565SEmmanuel Vadot
49e67e8565SEmmanuel Vadot  shunt-resistor-micro-ohms:
50e67e8565SEmmanuel Vadot    description:
51e67e8565SEmmanuel Vadot      Shunt (sense) resistor value in micro-Ohms.
52e67e8565SEmmanuel Vadot    default: 100000000
53e67e8565SEmmanuel Vadot
548bab661aSEmmanuel Vadot  reset-gpios:
558bab661aSEmmanuel Vadot    maxItems: 1
568bab661aSEmmanuel Vadot
57e67e8565SEmmanuel Vadotrequired:
58e67e8565SEmmanuel Vadot  - compatible
59e67e8565SEmmanuel Vadot  - reg
60e67e8565SEmmanuel Vadot  - spi-max-frequency
61e67e8565SEmmanuel Vadot  - spi-cpol
62e67e8565SEmmanuel Vadot  - refin-supply
63e67e8565SEmmanuel Vadot
64e67e8565SEmmanuel VadotpatternProperties:
65e67e8565SEmmanuel Vadot  "^channel@[0-3]$":
66e67e8565SEmmanuel Vadot    type: object
677ef62cebSEmmanuel Vadot    additionalProperties: false
68e67e8565SEmmanuel Vadot    description: Represents the external channels which are connected to the device.
69e67e8565SEmmanuel Vadot
70e67e8565SEmmanuel Vadot    properties:
71e67e8565SEmmanuel Vadot      reg:
72e67e8565SEmmanuel Vadot        description: |
73e67e8565SEmmanuel Vadot          The channel number. It can have up to 4 channels numbered from 0 to 3.
74e67e8565SEmmanuel Vadot        minimum: 0
75e67e8565SEmmanuel Vadot        maximum: 3
76e67e8565SEmmanuel Vadot
77e67e8565SEmmanuel Vadot      adi,ch-func:
78e67e8565SEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
79e67e8565SEmmanuel Vadot        description: |
80e67e8565SEmmanuel Vadot          Channel function.
81e67e8565SEmmanuel Vadot          HART functions are not supported on AD74412R.
82e67e8565SEmmanuel Vadot          0 - CH_FUNC_HIGH_IMPEDANCE
83e67e8565SEmmanuel Vadot          1 - CH_FUNC_VOLTAGE_OUTPUT
84e67e8565SEmmanuel Vadot          2 - CH_FUNC_CURRENT_OUTPUT
85e67e8565SEmmanuel Vadot          3 - CH_FUNC_VOLTAGE_INPUT
86e67e8565SEmmanuel Vadot          4 - CH_FUNC_CURRENT_INPUT_EXT_POWER
87e67e8565SEmmanuel Vadot          5 - CH_FUNC_CURRENT_INPUT_LOOP_POWER
88e67e8565SEmmanuel Vadot          6 - CH_FUNC_RESISTANCE_INPUT
89e67e8565SEmmanuel Vadot          7 - CH_FUNC_DIGITAL_INPUT_LOGIC
90e67e8565SEmmanuel Vadot          8 - CH_FUNC_DIGITAL_INPUT_LOOP_POWER
91e67e8565SEmmanuel Vadot          9 - CH_FUNC_CURRENT_INPUT_EXT_POWER_HART
92e67e8565SEmmanuel Vadot          10 - CH_FUNC_CURRENT_INPUT_LOOP_POWER_HART
93e67e8565SEmmanuel Vadot        minimum: 0
94e67e8565SEmmanuel Vadot        maximum: 10
95e67e8565SEmmanuel Vadot        default: 0
96e67e8565SEmmanuel Vadot
97e67e8565SEmmanuel Vadot      adi,gpo-comparator:
98e67e8565SEmmanuel Vadot        type: boolean
99e67e8565SEmmanuel Vadot        description: |
100e67e8565SEmmanuel Vadot          Whether to configure GPO as a comparator or not.
101e67e8565SEmmanuel Vadot          When not configured as a comparator, the GPO will be treated as an
102e67e8565SEmmanuel Vadot          output-only GPIO.
103e67e8565SEmmanuel Vadot
104*fac71e4eSEmmanuel Vadot      drive-strength-microamp:
105*fac71e4eSEmmanuel Vadot        description: |
106*fac71e4eSEmmanuel Vadot          For channels configured as digital input, this configures the sink
107*fac71e4eSEmmanuel Vadot          current.
108*fac71e4eSEmmanuel Vadot        minimum: 0
109*fac71e4eSEmmanuel Vadot        maximum: 1800
110*fac71e4eSEmmanuel Vadot        default: 0
111*fac71e4eSEmmanuel Vadot        multipleOf: 120
112*fac71e4eSEmmanuel Vadot
113e67e8565SEmmanuel Vadot    required:
114e67e8565SEmmanuel Vadot      - reg
115e67e8565SEmmanuel Vadot
1168bab661aSEmmanuel VadotallOf:
1178bab661aSEmmanuel Vadot  - $ref: /schemas/spi/spi-peripheral-props.yaml#
1188bab661aSEmmanuel Vadot
1198bab661aSEmmanuel VadotunevaluatedProperties: false
1208bab661aSEmmanuel Vadot
121e67e8565SEmmanuel Vadotexamples:
122e67e8565SEmmanuel Vadot  - |
123e67e8565SEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
124e67e8565SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
125e67e8565SEmmanuel Vadot    #include <dt-bindings/iio/addac/adi,ad74413r.h>
126e67e8565SEmmanuel Vadot
127e67e8565SEmmanuel Vadot    spi {
128e67e8565SEmmanuel Vadot      #address-cells = <1>;
129e67e8565SEmmanuel Vadot      #size-cells = <0>;
130e67e8565SEmmanuel Vadot
1318bab661aSEmmanuel Vadot      addac@0 {
132e67e8565SEmmanuel Vadot        compatible = "adi,ad74413r";
133e67e8565SEmmanuel Vadot        reg = <0>;
134e67e8565SEmmanuel Vadot        spi-max-frequency = <1000000>;
135e67e8565SEmmanuel Vadot        spi-cpol;
136e67e8565SEmmanuel Vadot
137e67e8565SEmmanuel Vadot        #address-cells = <1>;
138e67e8565SEmmanuel Vadot        #size-cells = <0>;
139e67e8565SEmmanuel Vadot
140e67e8565SEmmanuel Vadot        interrupt-parent = <&gpio>;
141e67e8565SEmmanuel Vadot        interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
142e67e8565SEmmanuel Vadot
143e67e8565SEmmanuel Vadot        refin-supply = <&ad74413r_refin>;
1448bab661aSEmmanuel Vadot        reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
145e67e8565SEmmanuel Vadot
146e67e8565SEmmanuel Vadot        channel@0 {
147e67e8565SEmmanuel Vadot          reg = <0>;
148e67e8565SEmmanuel Vadot
149e67e8565SEmmanuel Vadot          adi,ch-func = <CH_FUNC_VOLTAGE_OUTPUT>;
150e67e8565SEmmanuel Vadot        };
151e67e8565SEmmanuel Vadot
152e67e8565SEmmanuel Vadot        channel@1 {
153e67e8565SEmmanuel Vadot          reg = <1>;
154e67e8565SEmmanuel Vadot
155e67e8565SEmmanuel Vadot          adi,ch-func = <CH_FUNC_CURRENT_OUTPUT>;
156e67e8565SEmmanuel Vadot        };
157e67e8565SEmmanuel Vadot
158e67e8565SEmmanuel Vadot        channel@2 {
159e67e8565SEmmanuel Vadot          reg = <2>;
160e67e8565SEmmanuel Vadot
161e67e8565SEmmanuel Vadot          adi,ch-func = <CH_FUNC_DIGITAL_INPUT_LOGIC>;
162e67e8565SEmmanuel Vadot          adi,gpo-comparator;
163e67e8565SEmmanuel Vadot        };
164e67e8565SEmmanuel Vadot
165e67e8565SEmmanuel Vadot        channel@3 {
166e67e8565SEmmanuel Vadot          reg = <3>;
167e67e8565SEmmanuel Vadot
168e67e8565SEmmanuel Vadot          adi,ch-func = <CH_FUNC_CURRENT_INPUT_EXT_POWER>;
169e67e8565SEmmanuel Vadot        };
170e67e8565SEmmanuel Vadot      };
171e67e8565SEmmanuel Vadot    };
172e67e8565SEmmanuel Vadot...
173