xref: /linux/Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml (revision 1260ed77798502de9c98020040d2995008de10cc)
196472f18SMarcelo Schmitt# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
296472f18SMarcelo Schmitt%YAML 1.2
396472f18SMarcelo Schmitt---
496472f18SMarcelo Schmitt$id: http://devicetree.org/schemas/iio/adc/adi,ad4000.yaml#
596472f18SMarcelo Schmitt$schema: http://devicetree.org/meta-schemas/core.yaml#
696472f18SMarcelo Schmitt
796472f18SMarcelo Schmitttitle: Analog Devices AD4000 and similar Analog to Digital Converters
896472f18SMarcelo Schmitt
996472f18SMarcelo Schmittmaintainers:
1096472f18SMarcelo Schmitt  - Marcelo Schmitt <marcelo.schmitt@analog.com>
1196472f18SMarcelo Schmitt
1296472f18SMarcelo Schmittdescription: |
1396472f18SMarcelo Schmitt  Analog Devices AD4000 family of Analog to Digital Converters with SPI support.
1496472f18SMarcelo Schmitt  Specifications can be found at:
1596472f18SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4000-4004-4008.pdf
1696472f18SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4001-4005.pdf
1796472f18SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4002-4006-4010.pdf
1896472f18SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4003-4007-4011.pdf
1996472f18SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4020-4021-4022.pdf
2096472f18SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4001.pdf
2196472f18SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4003.pdf
22*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7685.pdf
23*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7686.pdf
24*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7687.pdf
25*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7688.pdf
26*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7690.pdf
27*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7691.pdf
28*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7693.pdf
29*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7942.pdf
30*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7946.pdf
31*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7980.pdf
32*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7982.pdf
33*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7983.pdf
34*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7984.pdf
35*c54b9094SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7988-1_7988-5.pdf
3696472f18SMarcelo Schmitt
3796472f18SMarcelo Schmitt$ref: /schemas/spi/spi-peripheral-props.yaml#
3896472f18SMarcelo Schmitt
3996472f18SMarcelo Schmittproperties:
4096472f18SMarcelo Schmitt  compatible:
4196472f18SMarcelo Schmitt    oneOf:
42*c54b9094SMarcelo Schmitt      - enum:
43*c54b9094SMarcelo Schmitt          - adi,ad4000
44*c54b9094SMarcelo Schmitt          - adi,ad4001
45*c54b9094SMarcelo Schmitt          - adi,ad4002
46*c54b9094SMarcelo Schmitt          - adi,ad4003
47*c54b9094SMarcelo Schmitt          - adi,ad4020
48*c54b9094SMarcelo Schmitt          - adi,adaq4001
49*c54b9094SMarcelo Schmitt          - adi,adaq4003
50*c54b9094SMarcelo Schmitt          - adi,ad7687
51*c54b9094SMarcelo Schmitt          - adi,ad7691
52*c54b9094SMarcelo Schmitt          - adi,ad7942
53*c54b9094SMarcelo Schmitt          - adi,ad7946
54*c54b9094SMarcelo Schmitt          - adi,ad7983
5596472f18SMarcelo Schmitt      - items:
5696472f18SMarcelo Schmitt          - enum:
5796472f18SMarcelo Schmitt              - adi,ad4004
5896472f18SMarcelo Schmitt              - adi,ad4008
5996472f18SMarcelo Schmitt          - const: adi,ad4000
6096472f18SMarcelo Schmitt      - items:
6196472f18SMarcelo Schmitt          - enum:
6296472f18SMarcelo Schmitt              - adi,ad4005
6396472f18SMarcelo Schmitt          - const: adi,ad4001
6496472f18SMarcelo Schmitt      - items:
6596472f18SMarcelo Schmitt          - enum:
6696472f18SMarcelo Schmitt              - adi,ad4006
6796472f18SMarcelo Schmitt              - adi,ad4010
6896472f18SMarcelo Schmitt          - const: adi,ad4002
6996472f18SMarcelo Schmitt      - items:
7096472f18SMarcelo Schmitt          - enum:
7196472f18SMarcelo Schmitt              - adi,ad4007
7296472f18SMarcelo Schmitt              - adi,ad4011
7396472f18SMarcelo Schmitt          - const: adi,ad4003
7496472f18SMarcelo Schmitt      - items:
7596472f18SMarcelo Schmitt          - enum:
7696472f18SMarcelo Schmitt              - adi,ad4021
7796472f18SMarcelo Schmitt              - adi,ad4022
7896472f18SMarcelo Schmitt          - const: adi,ad4020
79*c54b9094SMarcelo Schmitt      - items:
80*c54b9094SMarcelo Schmitt          - enum:
81*c54b9094SMarcelo Schmitt              - adi,ad7685
82*c54b9094SMarcelo Schmitt              - adi,ad7686
83*c54b9094SMarcelo Schmitt              - adi,ad7980
84*c54b9094SMarcelo Schmitt              - adi,ad7988-1
85*c54b9094SMarcelo Schmitt              - adi,ad7988-5
86*c54b9094SMarcelo Schmitt          - const: adi,ad7983
87*c54b9094SMarcelo Schmitt      - items:
88*c54b9094SMarcelo Schmitt          - enum:
89*c54b9094SMarcelo Schmitt              - adi,ad7688
90*c54b9094SMarcelo Schmitt              - adi,ad7693
91*c54b9094SMarcelo Schmitt          - const: adi,ad7687
92*c54b9094SMarcelo Schmitt      - items:
93*c54b9094SMarcelo Schmitt          - enum:
94*c54b9094SMarcelo Schmitt              - adi,ad7690
95*c54b9094SMarcelo Schmitt              - adi,ad7982
96*c54b9094SMarcelo Schmitt              - adi,ad7984
97*c54b9094SMarcelo Schmitt          - const: adi,ad7691
9896472f18SMarcelo Schmitt
9996472f18SMarcelo Schmitt  reg:
10096472f18SMarcelo Schmitt    maxItems: 1
10196472f18SMarcelo Schmitt
10296472f18SMarcelo Schmitt  spi-max-frequency:
10396472f18SMarcelo Schmitt    maximum: 102040816 # for VIO > 2.7 V, 81300813 for VIO > 1.7 V
10496472f18SMarcelo Schmitt
10596472f18SMarcelo Schmitt  adi,sdi-pin:
10696472f18SMarcelo Schmitt    $ref: /schemas/types.yaml#/definitions/string
10796472f18SMarcelo Schmitt    enum: [ high, low, cs, sdi ]
10896472f18SMarcelo Schmitt    default: sdi
10996472f18SMarcelo Schmitt    description:
11096472f18SMarcelo Schmitt      Describes how the ADC SDI pin is wired. A value of "sdi" indicates that
11196472f18SMarcelo Schmitt      the ADC SDI is connected to host SDO. "high" indicates that the ADC SDI
11296472f18SMarcelo Schmitt      pin is hard-wired to logic high (VIO). "low" indicates that it is
11396472f18SMarcelo Schmitt      hard-wired low (GND). "cs" indicates that the ADC SDI pin is connected to
11496472f18SMarcelo Schmitt      the host CS line.
11596472f18SMarcelo Schmitt
11696472f18SMarcelo Schmitt  '#daisy-chained-devices': true
11796472f18SMarcelo Schmitt
11896472f18SMarcelo Schmitt  vdd-supply:
11996472f18SMarcelo Schmitt    description: A 1.8V supply that powers the chip (VDD).
12096472f18SMarcelo Schmitt
12196472f18SMarcelo Schmitt  vio-supply:
12296472f18SMarcelo Schmitt    description:
12396472f18SMarcelo Schmitt      A 1.8V to 5.5V supply for the digital inputs and outputs (VIO).
12496472f18SMarcelo Schmitt
12596472f18SMarcelo Schmitt  ref-supply:
12696472f18SMarcelo Schmitt    description:
12796472f18SMarcelo Schmitt      A 2.5 to 5V supply for the external reference voltage (REF).
12896472f18SMarcelo Schmitt
12996472f18SMarcelo Schmitt  cnv-gpios:
13096472f18SMarcelo Schmitt    description:
13196472f18SMarcelo Schmitt      When provided, this property indicates the GPIO that is connected to the
13296472f18SMarcelo Schmitt      CNV pin.
13396472f18SMarcelo Schmitt    maxItems: 1
13496472f18SMarcelo Schmitt
13596472f18SMarcelo Schmitt  adi,high-z-input:
13696472f18SMarcelo Schmitt    type: boolean
13796472f18SMarcelo Schmitt    description:
13896472f18SMarcelo Schmitt      High-Z mode allows the amplifier and RC filter in front of the ADC to be
13996472f18SMarcelo Schmitt      chosen based on the signal bandwidth of interest, rather than the settling
14096472f18SMarcelo Schmitt      requirements of the switched capacitor SAR ADC inputs.
14196472f18SMarcelo Schmitt
14296472f18SMarcelo Schmitt  adi,gain-milli:
14396472f18SMarcelo Schmitt    description: |
14496472f18SMarcelo Schmitt      The hardware gain applied to the ADC input (in milli units).
14596472f18SMarcelo Schmitt      The gain provided by the ADC input scaler is defined by the hardware
14696472f18SMarcelo Schmitt      connections between chip pins OUT+, R1K-, R1K1-, R1K+, R1K1+, and OUT-.
14796472f18SMarcelo Schmitt      If not present, default to 1000 (no actual gain applied).
14896472f18SMarcelo Schmitt    $ref: /schemas/types.yaml#/definitions/uint16
14996472f18SMarcelo Schmitt    enum: [454, 909, 1000, 1900]
15096472f18SMarcelo Schmitt    default: 1000
15196472f18SMarcelo Schmitt
15296472f18SMarcelo Schmitt  interrupts:
15396472f18SMarcelo Schmitt    description:
15496472f18SMarcelo Schmitt      The SDO pin can also function as a busy indicator. This node should be
15596472f18SMarcelo Schmitt      connected to an interrupt that is triggered when the SDO line goes low
15696472f18SMarcelo Schmitt      while the SDI line is high and the CNV line is low ("3-wire" mode) or the
15796472f18SMarcelo Schmitt      SDI line is low and the CNV line is high ("4-wire" mode); or when the SDO
15896472f18SMarcelo Schmitt      line goes high while the SDI and CNV lines are high (chain mode),
15996472f18SMarcelo Schmitt    maxItems: 1
16096472f18SMarcelo Schmitt
16196472f18SMarcelo Schmittrequired:
16296472f18SMarcelo Schmitt  - compatible
16396472f18SMarcelo Schmitt  - reg
16496472f18SMarcelo Schmitt  - vdd-supply
16596472f18SMarcelo Schmitt  - vio-supply
16696472f18SMarcelo Schmitt  - ref-supply
16796472f18SMarcelo Schmitt
16896472f18SMarcelo SchmittallOf:
169*c54b9094SMarcelo Schmitt  # Single-channel PulSAR devices have SDI either tied to VIO, GND, or host CS.
170*c54b9094SMarcelo Schmitt  - if:
171*c54b9094SMarcelo Schmitt      properties:
172*c54b9094SMarcelo Schmitt        compatible:
173*c54b9094SMarcelo Schmitt          contains:
174*c54b9094SMarcelo Schmitt            enum:
175*c54b9094SMarcelo Schmitt              - adi,ad7687
176*c54b9094SMarcelo Schmitt              - adi,ad7691
177*c54b9094SMarcelo Schmitt              - adi,ad7942
178*c54b9094SMarcelo Schmitt              - adi,ad7946
179*c54b9094SMarcelo Schmitt              - adi,ad7983
180*c54b9094SMarcelo Schmitt    then:
181*c54b9094SMarcelo Schmitt      properties:
182*c54b9094SMarcelo Schmitt        adi,sdi-pin:
183*c54b9094SMarcelo Schmitt          enum: [ high, low, cs ]
184*c54b9094SMarcelo Schmitt          default: cs
18596472f18SMarcelo Schmitt  # The configuration register can only be accessed if SDI is connected to MOSI
18696472f18SMarcelo Schmitt  - if:
18796472f18SMarcelo Schmitt      required:
18896472f18SMarcelo Schmitt        - adi,sdi-pin
18996472f18SMarcelo Schmitt    then:
19096472f18SMarcelo Schmitt      properties:
19196472f18SMarcelo Schmitt        adi,high-z-input: false
19296472f18SMarcelo Schmitt  # chain mode has lower SCLK max rate
19396472f18SMarcelo Schmitt  - if:
19496472f18SMarcelo Schmitt      required:
19596472f18SMarcelo Schmitt        - '#daisy-chained-devices'
19696472f18SMarcelo Schmitt    then:
19796472f18SMarcelo Schmitt      properties:
19896472f18SMarcelo Schmitt        spi-max-frequency:
19996472f18SMarcelo Schmitt          maximum: 50000000 # for VIO > 2.7 V, 40000000 for VIO > 1.7 V
20096472f18SMarcelo Schmitt  # Gain property only applies to ADAQ devices
20196472f18SMarcelo Schmitt  - if:
20296472f18SMarcelo Schmitt      properties:
20396472f18SMarcelo Schmitt        compatible:
20496472f18SMarcelo Schmitt          not:
20596472f18SMarcelo Schmitt            contains:
20696472f18SMarcelo Schmitt              enum:
20796472f18SMarcelo Schmitt                - adi,adaq4001
20896472f18SMarcelo Schmitt                - adi,adaq4003
20996472f18SMarcelo Schmitt    then:
21096472f18SMarcelo Schmitt      properties:
21196472f18SMarcelo Schmitt        adi,gain-milli: false
21296472f18SMarcelo Schmitt
21396472f18SMarcelo SchmittunevaluatedProperties: false
21496472f18SMarcelo Schmitt
21596472f18SMarcelo Schmittexamples:
21696472f18SMarcelo Schmitt  - |
21796472f18SMarcelo Schmitt    #include <dt-bindings/gpio/gpio.h>
21896472f18SMarcelo Schmitt    spi {
21996472f18SMarcelo Schmitt        #address-cells = <1>;
22096472f18SMarcelo Schmitt        #size-cells = <0>;
22196472f18SMarcelo Schmitt        adc@0 {
22296472f18SMarcelo Schmitt            compatible = "adi,ad4020";
22396472f18SMarcelo Schmitt            reg = <0>;
22496472f18SMarcelo Schmitt            spi-max-frequency = <71000000>;
22596472f18SMarcelo Schmitt            vdd-supply = <&supply_1_8V>;
22696472f18SMarcelo Schmitt            vio-supply = <&supply_1_8V>;
22796472f18SMarcelo Schmitt            ref-supply = <&supply_5V>;
22896472f18SMarcelo Schmitt            adi,sdi-pin = "cs";
22996472f18SMarcelo Schmitt            cnv-gpios = <&gpio0 88 GPIO_ACTIVE_HIGH>;
23096472f18SMarcelo Schmitt        };
23196472f18SMarcelo Schmitt    };
23296472f18SMarcelo Schmitt  - |
23396472f18SMarcelo Schmitt    spi {
23496472f18SMarcelo Schmitt        #address-cells = <1>;
23596472f18SMarcelo Schmitt        #size-cells = <0>;
23696472f18SMarcelo Schmitt        adc@0 {
23796472f18SMarcelo Schmitt            compatible = "adi,adaq4003";
23896472f18SMarcelo Schmitt            reg = <0>;
23996472f18SMarcelo Schmitt            spi-max-frequency = <80000000>;
24096472f18SMarcelo Schmitt            vdd-supply = <&supply_1_8V>;
24196472f18SMarcelo Schmitt            vio-supply = <&supply_1_8V>;
24296472f18SMarcelo Schmitt            ref-supply = <&supply_5V>;
24396472f18SMarcelo Schmitt            adi,high-z-input;
24496472f18SMarcelo Schmitt            adi,gain-milli = /bits/ 16 <454>;
24596472f18SMarcelo Schmitt        };
24696472f18SMarcelo Schmitt    };
247