162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/iio/adc/renesas,rcar-gyroadc.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Renesas R-Car GyroADC
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Marek Vasut <marek.vasut+renesas@gmail.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  The GyroADC block is a reduced SPI block with up to 8 chipselect lines,
1462306a36Sopenharmony_ci  which supports the SPI protocol of a selected few SPI ADCs. The SPI ADCs
1562306a36Sopenharmony_ci  are sampled by the GyroADC block in a round-robin fashion and the result
1662306a36Sopenharmony_ci  presented in the GyroADC registers.
1762306a36Sopenharmony_ci  The ADC bindings should match with that of the devices connected to a
1862306a36Sopenharmony_ci  full featured SPI bus.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciproperties:
2162306a36Sopenharmony_ci  compatible:
2262306a36Sopenharmony_ci    items:
2362306a36Sopenharmony_ci      - enum:
2462306a36Sopenharmony_ci          - renesas,r8a7791-gyroadc
2562306a36Sopenharmony_ci          - renesas,r8a7792-gyroadc
2662306a36Sopenharmony_ci      - const: renesas,rcar-gyroadc
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci  reg:
2962306a36Sopenharmony_ci    maxItems: 1
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  clocks:
3262306a36Sopenharmony_ci    maxItems: 1
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  clock-names:
3562306a36Sopenharmony_ci    const: fck
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  power-domains:
3862306a36Sopenharmony_ci    maxItems: 1
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  resets:
4162306a36Sopenharmony_ci    maxItems: 1
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  "#address-cells":
4462306a36Sopenharmony_ci    const: 1
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci  "#size-cells":
4762306a36Sopenharmony_ci    const: 0
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciadditionalProperties: false
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_cirequired:
5262306a36Sopenharmony_ci  - compatible
5362306a36Sopenharmony_ci  - reg
5462306a36Sopenharmony_ci  - clocks
5562306a36Sopenharmony_ci  - clock-names
5662306a36Sopenharmony_ci  - power-domains
5762306a36Sopenharmony_ci  - resets
5862306a36Sopenharmony_ci  - "#address-cells"
5962306a36Sopenharmony_ci  - "#size-cells"
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_cipatternProperties:
6262306a36Sopenharmony_ci  "@[0-7]$":
6362306a36Sopenharmony_ci    type: object
6462306a36Sopenharmony_ci    properties:
6562306a36Sopenharmony_ci      compatible:
6662306a36Sopenharmony_ci        description: |
6762306a36Sopenharmony_ci          fujitsu,mb88101a
6862306a36Sopenharmony_ci          - Fujitsu MB88101A compatible mode,
6962306a36Sopenharmony_ci            12bit sampling, up to 4 channels can be sampled in round-robin
7062306a36Sopenharmony_ci            fashion. One Fujitsu chip supplies four GyroADC channels with
7162306a36Sopenharmony_ci            data as it contains four ADCs on the chip and thus for 4-channel
7262306a36Sopenharmony_ci            operation, single MB88101A is required. The Cx chipselect lines
7362306a36Sopenharmony_ci            of the MB88101A connect directly to two CHS lines of the GyroADC,
7462306a36Sopenharmony_ci            no demuxer is required. The data out line of each MB88101A
7562306a36Sopenharmony_ci            connects to a shared input pin of the GyroADC.
7662306a36Sopenharmony_ci          ti,adcs7476 or ti,adc121 or adi,ad7476
7762306a36Sopenharmony_ci          - TI ADCS7476 / TI ADC121 / ADI AD7476 compatible mode, 15bit
7862306a36Sopenharmony_ci            sampling, up to 8 channels can be sampled in round-robin
7962306a36Sopenharmony_ci            fashion. One TI/ADI chip supplies single ADC channel with data,
8062306a36Sopenharmony_ci            thus for 8-channel operation, 8 chips are required.
8162306a36Sopenharmony_ci            A 3:8 chipselect demuxer is  required to connect the nCS line
8262306a36Sopenharmony_ci            of the TI/ADI chips to the GyroADC, while MISO line of each
8362306a36Sopenharmony_ci            TI/ADI ADC connects to a shared input pin of the GyroADC.
8462306a36Sopenharmony_ci          maxim,max1162 or maxim,max11100
8562306a36Sopenharmony_ci          - Maxim MAX1162 / Maxim MAX11100 compatible mode,  16bit sampling,
8662306a36Sopenharmony_ci            up to 8 channels can be sampled in round-robin fashion. One
8762306a36Sopenharmony_ci            Maxim chip supplies single ADC channel with data, thus for
8862306a36Sopenharmony_ci            8-channel operation, 8 chips are required.
8962306a36Sopenharmony_ci            A 3:8 chipselect demuxer is required to connect the nCS line
9062306a36Sopenharmony_ci            of the MAX chips to the GyroADC, while MISO line of each Maxim
9162306a36Sopenharmony_ci            ADC connects to a shared input pin of the GyroADC.
9262306a36Sopenharmony_ci        enum:
9362306a36Sopenharmony_ci          - adi,ad7476
9462306a36Sopenharmony_ci          - fujitsu,mb88101a
9562306a36Sopenharmony_ci          - maxim,max1162
9662306a36Sopenharmony_ci          - maxim,max11100
9762306a36Sopenharmony_ci          - ti,adcs7476
9862306a36Sopenharmony_ci          - ti,adc121
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci      reg:
10162306a36Sopenharmony_ci        minimum: 0
10262306a36Sopenharmony_ci        maximum: 7
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci      vref-supply: true
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci    additionalProperties: false
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci    required:
10962306a36Sopenharmony_ci      - compatible
11062306a36Sopenharmony_ci      - reg
11162306a36Sopenharmony_ci      - vref-supply
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ciexamples:
11462306a36Sopenharmony_ci  - |
11562306a36Sopenharmony_ci    #include <dt-bindings/clock/r8a7791-cpg-mssr.h>
11662306a36Sopenharmony_ci    #include <dt-bindings/power/r8a7791-sysc.h>
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci    adc@e6e54000 {
11962306a36Sopenharmony_ci        compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc";
12062306a36Sopenharmony_ci        reg = <0xe6e54000 64>;
12162306a36Sopenharmony_ci        clocks = <&cpg CPG_MOD 901>;
12262306a36Sopenharmony_ci        clock-names = "fck";
12362306a36Sopenharmony_ci        power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
12462306a36Sopenharmony_ci        resets = <&cpg 901>;
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci        #address-cells = <1>;
12762306a36Sopenharmony_ci        #size-cells = <0>;
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci        adc@0 {
13062306a36Sopenharmony_ci            reg = <0>;
13162306a36Sopenharmony_ci            compatible = "maxim,max1162";
13262306a36Sopenharmony_ci            vref-supply = <&vref_max1162>;
13362306a36Sopenharmony_ci        };
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci        adc@1 {
13662306a36Sopenharmony_ci            reg = <1>;
13762306a36Sopenharmony_ci            compatible = "maxim,max1162";
13862306a36Sopenharmony_ci            vref-supply = <&vref_max1162>;
13962306a36Sopenharmony_ci        };
14062306a36Sopenharmony_ci    };
14162306a36Sopenharmony_ci...
142