1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2# Copyright 2019 Analog Devices Inc.
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/iio/adc/adi,ad7124.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Analog Devices AD7124 ADC device driver
9
10maintainers:
11  - Stefan Popa <stefan.popa@analog.com>
12
13description: |
14  Bindings for the Analog Devices AD7124 ADC device. Datasheet can be
15  found here:
16    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7124-8.pdf
17
18properties:
19  compatible:
20    enum:
21      - adi,ad7124-4
22      - adi,ad7124-8
23
24  reg:
25    description: SPI chip select number for the device
26    maxItems: 1
27
28  clocks:
29    maxItems: 1
30    description: phandle to the master clock (mclk)
31
32  clock-names:
33    items:
34      - const: mclk
35
36  interrupts:
37    description: IRQ line for the ADC
38    maxItems: 1
39
40  '#address-cells':
41    const: 1
42
43  '#size-cells':
44    const: 0
45
46  refin1-supply:
47    description: refin1 supply can be used as reference for conversion.
48
49  refin2-supply:
50    description: refin2 supply can be used as reference for conversion.
51
52  avdd-supply:
53    description: avdd supply can be used as reference for conversion.
54
55  spi-max-frequency: true
56
57required:
58  - compatible
59  - reg
60  - clocks
61  - clock-names
62  - interrupts
63
64patternProperties:
65  "^channel@([0-9]|1[0-5])$":
66    $ref: "adc.yaml"
67    type: object
68    description: |
69      Represents the external channels which are connected to the ADC.
70
71    properties:
72      reg:
73        description: |
74          The channel number. It can have up to 8 channels on ad7124-4
75          and 16 channels on ad7124-8, numbered from 0 to 15.
76        items:
77          minimum: 0
78          maximum: 15
79
80      adi,reference-select:
81        description: |
82          Select the reference source to use when converting on
83          the specific channel. Valid values are:
84          0: REFIN1(+)/REFIN1(−).
85          1: REFIN2(+)/REFIN2(−).
86          3: AVDD
87          If this field is left empty, internal reference is selected.
88        $ref: /schemas/types.yaml#/definitions/uint32
89        enum: [0, 1, 3]
90
91      diff-channels: true
92
93      bipolar: true
94
95      adi,buffered-positive:
96        description: Enable buffered mode for positive input.
97        type: boolean
98
99      adi,buffered-negative:
100        description: Enable buffered mode for negative input.
101        type: boolean
102
103    required:
104      - reg
105      - diff-channels
106
107    additionalProperties: false
108
109additionalProperties: false
110
111examples:
112  - |
113    spi {
114      #address-cells = <1>;
115      #size-cells = <0>;
116
117      adc@0 {
118        compatible = "adi,ad7124-4";
119        reg = <0>;
120        spi-max-frequency = <5000000>;
121        interrupts = <25 2>;
122        interrupt-parent = <&gpio>;
123        refin1-supply = <&adc_vref>;
124        clocks = <&ad7124_mclk>;
125        clock-names = "mclk";
126
127        #address-cells = <1>;
128        #size-cells = <0>;
129
130        channel@0 {
131          reg = <0>;
132          diff-channels = <0 1>;
133          adi,reference-select = <0>;
134          adi,buffered-positive;
135        };
136
137        channel@1 {
138          reg = <1>;
139          bipolar;
140          diff-channels = <2 3>;
141          adi,reference-select = <0>;
142          adi,buffered-positive;
143          adi,buffered-negative;
144        };
145
146        channel@2 {
147          reg = <2>;
148          diff-channels = <4 5>;
149        };
150
151        channel@3 {
152          reg = <3>;
153          diff-channels = <6 7>;
154        };
155      };
156    };
157