1dd29b129SJonathan Cameron# SPDX-License-Identifier: GPL-2.0
2dd29b129SJonathan Cameron%YAML 1.2
3dd29b129SJonathan Cameron---
4dd29b129SJonathan Cameron$id: http://devicetree.org/schemas/iio/adc/adi,ad7768-1.yaml#
5dd29b129SJonathan Cameron$schema: http://devicetree.org/meta-schemas/core.yaml#
6dd29b129SJonathan Cameron
7dd29b129SJonathan Camerontitle: Analog Devices AD7768-1 ADC device driver
8dd29b129SJonathan Cameron
9dd29b129SJonathan Cameronmaintainers:
10dd29b129SJonathan Cameron  - Michael Hennerich <michael.hennerich@analog.com>
11dd29b129SJonathan Cameron
12dd29b129SJonathan Camerondescription: |
13dd29b129SJonathan Cameron  Datasheet at:
14dd29b129SJonathan Cameron    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7768-1.pdf
15dd29b129SJonathan Cameron
16dd29b129SJonathan Cameronproperties:
17dd29b129SJonathan Cameron  compatible:
18dd29b129SJonathan Cameron    const: adi,ad7768-1
19dd29b129SJonathan Cameron
20dd29b129SJonathan Cameron  reg:
21dd29b129SJonathan Cameron    maxItems: 1
22dd29b129SJonathan Cameron
23dd29b129SJonathan Cameron  clocks:
24dd29b129SJonathan Cameron    maxItems: 1
25dd29b129SJonathan Cameron
26dd29b129SJonathan Cameron  clock-names:
27dd29b129SJonathan Cameron    const: mclk
28dd29b129SJonathan Cameron
29dd29b129SJonathan Cameron  interrupts:
30dd29b129SJonathan Cameron    maxItems: 1
31dd29b129SJonathan Cameron
32*7d4156ddSCristian Pop  '#address-cells':
33*7d4156ddSCristian Pop    const: 1
34*7d4156ddSCristian Pop
35*7d4156ddSCristian Pop  '#size-cells':
36*7d4156ddSCristian Pop    const: 0
37*7d4156ddSCristian Pop
38dd29b129SJonathan Cameron  vref-supply:
39dd29b129SJonathan Cameron    description:
40dd29b129SJonathan Cameron      ADC reference voltage supply
41dd29b129SJonathan Cameron
42dd29b129SJonathan Cameron  adi,sync-in-gpios:
43dd29b129SJonathan Cameron    description:
44dd29b129SJonathan Cameron      Enables synchronization of multiple devices that require simultaneous
45dd29b129SJonathan Cameron      sampling. A pulse is always required if the configuration is changed
46dd29b129SJonathan Cameron      in any way, for example if the filter decimation rate changes.
47dd29b129SJonathan Cameron      As the line is active low, it should be marked GPIO_ACTIVE_LOW.
48dd29b129SJonathan Cameron
49dd29b129SJonathan Cameron  reset-gpios:
50dd29b129SJonathan Cameron    maxItems: 1
51dd29b129SJonathan Cameron
52dd29b129SJonathan Cameron  spi-max-frequency: true
53dd29b129SJonathan Cameron
54dd29b129SJonathan Cameron  spi-cpol: true
55dd29b129SJonathan Cameron  spi-cpha : true
56dd29b129SJonathan Cameron
57dd29b129SJonathan Cameron  "#io-channel-cells":
58dd29b129SJonathan Cameron    const: 1
59dd29b129SJonathan Cameron
60dd29b129SJonathan Cameronrequired:
61dd29b129SJonathan Cameron  - compatible
62dd29b129SJonathan Cameron  - reg
63dd29b129SJonathan Cameron  - clocks
64dd29b129SJonathan Cameron  - clock-names
65dd29b129SJonathan Cameron  - vref-supply
66dd29b129SJonathan Cameron  - spi-cpol
67dd29b129SJonathan Cameron  - spi-cpha
68dd29b129SJonathan Cameron  - adi,sync-in-gpios
69dd29b129SJonathan Cameron
70*7d4156ddSCristian PoppatternProperties:
71*7d4156ddSCristian Pop  "^channel@([0-9]|1[0-5])$":
72*7d4156ddSCristian Pop    type: object
73*7d4156ddSCristian Pop    description: |
74*7d4156ddSCristian Pop      Represents the external channels which are connected to the device.
75*7d4156ddSCristian Pop
76*7d4156ddSCristian Pop    properties:
77*7d4156ddSCristian Pop      reg:
78*7d4156ddSCristian Pop        description: |
79*7d4156ddSCristian Pop          The channel number.
80*7d4156ddSCristian Pop
81*7d4156ddSCristian Pop      label:
82*7d4156ddSCristian Pop        description: |
83*7d4156ddSCristian Pop          Unique name to identify which channel this is.
84*7d4156ddSCristian Pop    required:
85*7d4156ddSCristian Pop      - reg
86*7d4156ddSCristian Pop    additionalProperties: false
87*7d4156ddSCristian Pop
88dd29b129SJonathan CameronadditionalProperties: false
89dd29b129SJonathan Cameron
90dd29b129SJonathan Cameronexamples:
91dd29b129SJonathan Cameron  - |
92dd29b129SJonathan Cameron    #include <dt-bindings/interrupt-controller/irq.h>
93dd29b129SJonathan Cameron    #include <dt-bindings/gpio/gpio.h>
94dd29b129SJonathan Cameron    spi {
95dd29b129SJonathan Cameron        #address-cells = <1>;
96dd29b129SJonathan Cameron        #size-cells = <0>;
97dd29b129SJonathan Cameron
98dd29b129SJonathan Cameron        adc@0 {
99dd29b129SJonathan Cameron            compatible = "adi,ad7768-1";
100dd29b129SJonathan Cameron            reg = <0>;
101dd29b129SJonathan Cameron            spi-max-frequency = <2000000>;
102dd29b129SJonathan Cameron            spi-cpol;
103dd29b129SJonathan Cameron            spi-cpha;
104dd29b129SJonathan Cameron            vref-supply = <&adc_vref>;
105dd29b129SJonathan Cameron            interrupts = <25 IRQ_TYPE_EDGE_RISING>;
106dd29b129SJonathan Cameron            interrupt-parent = <&gpio>;
107dd29b129SJonathan Cameron            adi,sync-in-gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
108dd29b129SJonathan Cameron            reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
109dd29b129SJonathan Cameron            clocks = <&ad7768_mclk>;
110dd29b129SJonathan Cameron            clock-names = "mclk";
111*7d4156ddSCristian Pop
112*7d4156ddSCristian Pop            #address-cells = <1>;
113*7d4156ddSCristian Pop            #size-cells = <0>;
114*7d4156ddSCristian Pop
115*7d4156ddSCristian Pop            channel@0 {
116*7d4156ddSCristian Pop                reg = <0>;
117*7d4156ddSCristian Pop                label = "channel_0";
118*7d4156ddSCristian Pop            };
119dd29b129SJonathan Cameron        };
120dd29b129SJonathan Cameron    };
121dd29b129SJonathan Cameron...
122