summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/iio/adc/adi,ad4130.yaml
blob: d00690a8d3fbd92ad1c46353b75a26fe88ef2402 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2022 Analog Devices Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/adc/adi,ad4130.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices AD4130 ADC device driver

maintainers:
  - Cosmin Tanislav <cosmin.tanislav@analog.com>

description: |
  Bindings for the Analog Devices AD4130 ADC. Datasheet can be found here:
    https://www.analog.com/media/en/technical-documentation/data-sheets/AD4130-8.pdf

properties:
  compatible:
    enum:
      - adi,ad4130

  reg:
    maxItems: 1

  clocks:
    maxItems: 1
    description: phandle to the master clock (mclk)

  clock-names:
    items:
      - const: mclk

  interrupts:
    maxItems: 1

  interrupt-names:
    description: |
      Specify which interrupt pin should be configured as Data Ready / FIFO
      interrupt.
      Default if not supplied is int.
    enum:
      - int
      - clk
      - p2
      - dout

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

  '#clock-cells':
    const: 0

  clock-output-names:
    maxItems: 1

  refin1-supply:
    description: refin1 supply. Can be used as reference for conversion.

  refin2-supply:
    description: refin2 supply. Can be used as reference for conversion.

  avdd-supply:
    description: AVDD voltage supply. Can be used as reference for conversion.

  iovdd-supply:
    description: IOVDD voltage supply. Used for the chip interface.

  spi-max-frequency:
    maximum: 5000000

  adi,ext-clk-freq-hz:
    description: Specify the frequency of the external clock.
    enum: [76800, 153600]
    default: 76800

  adi,bipolar:
    description: Specify if the device should be used in bipolar mode.
    type: boolean

  adi,vbias-pins:
    description: Analog inputs to apply a voltage bias of (AVDD − AVSS) / 2 to.
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 1
    maxItems: 16
    items:
      minimum: 0
      maximum: 15

required:
  - compatible
  - reg
  - interrupts

patternProperties:
  "^channel@([0-9a-f])$":
    type: object
    $ref: adc.yaml
    unevaluatedProperties: false

    properties:
      reg:
        description: The channel number.
        minimum: 0
        maximum: 15

      diff-channels:
        description: |
          Besides the analog inputs available, internal inputs can be used.
          16: Internal temperature sensor.
          17: AVSS
          18: Internal reference
          19: DGND
          20: (AVDD − AVSS)/6+
          21: (AVDD − AVSS)/6-
          22: (IOVDD − DGND)/6+
          23: (IOVDD − DGND)/6-
          24: (ALDO − AVSS)/6+
          25: (ALDO − AVSS)/6-
          26: (DLDO − DGND)/6+
          27: (DLDO − DGND)/6-
          28: V_MV_P
          29: V_MV_M
        items:
          minimum: 0
          maximum: 29

      adi,reference-select:
        description: |
          Select the reference source to use when converting on the
          specific channel. Valid values are:
          0: REFIN1(+)/REFIN1(−)
          1: REFIN2(+)/REFIN2(−)
          2: REFOUT/AVSS (Internal reference)
          3: AVDD/AVSS
          If not specified, REFIN1 is used.
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2, 3]
        default: 0

      adi,excitation-pin-0:
        description: |
          Analog input to apply excitation current to while the channel
          is active.
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 15
        default: 0

      adi,excitation-pin-1:
        description: |
          Analog input to apply excitation current to while this channel
          is active.
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 15
        default: 0

      adi,excitation-current-0-nanoamp:
        description: |
          Excitation current in nanoamps to be applied to pin specified in
          adi,excitation-pin-0 while this channel is active.
        enum: [0, 100, 10000, 20000, 50000, 100000, 150000, 200000]
        default: 0

      adi,excitation-current-1-nanoamp:
        description: |
          Excitation current in nanoamps to be applied to pin specified in
          adi,excitation-pin-1 while this channel is active.
        enum: [0, 100, 10000, 20000, 50000, 100000, 150000, 200000]
        default: 0

      adi,burnout-current-nanoamp:
        description: |
          Burnout current in nanoamps to be applied for this channel.
        enum: [0, 500, 2000, 4000]
        default: 0

      adi,buffered-positive:
        description: Enable buffered mode for positive input.
        type: boolean

      adi,buffered-negative:
        description: Enable buffered mode for negative input.
        type: boolean

    required:
      - reg
      - diff-channels

allOf:
  - $ref: /schemas/spi/spi-peripheral-props.yaml#

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    spi {
      #address-cells = <1>;
      #size-cells = <0>;

      adc@0 {
        compatible = "adi,ad4130";
        reg = <0>;

        #address-cells = <1>;
        #size-cells = <0>;

        spi-max-frequency = <5000000>;
        interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
        interrupt-parent = <&gpio>;

        channel@0 {
          reg = <0>;

          adi,reference-select = <2>;

          /* AIN8, AIN9 */
          diff-channels = <8 9>;
        };

        channel@1 {
          reg = <1>;

          adi,reference-select = <2>;

          /* AIN10, AIN11 */
          diff-channels = <10 11>;
        };

        channel@2 {
          reg = <2>;

          adi,reference-select = <2>;

          /* Temperature Sensor, DGND */
          diff-channels = <16 19>;
        };

        channel@3 {
          reg = <3>;

          adi,reference-select = <2>;

          /* Internal reference, DGND */
          diff-channels = <18 19>;
        };

        channel@4 {
          reg = <4>;

          adi,reference-select = <2>;

          /* DGND, DGND */
          diff-channels = <19 19>;
        };
      };
    };