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/dac/adi,ad5064.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Analog Devices AD5064 and similar DACs
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Lars-Peter Clausen <lars@metafoo.de>
1162306a36Sopenharmony_ci  - Jonathan Cameron <jic23@kernel.org>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |
1462306a36Sopenharmony_ci   A range of similar DAC devices with between 1 and 12 channels. Some parts
1562306a36Sopenharmony_ci   have internal references, others require a single shared external reference
1662306a36Sopenharmony_ci   and the remainder have a separate reference pin for each DAC.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciproperties:
1962306a36Sopenharmony_ci  compatible:
2062306a36Sopenharmony_ci    oneOf:
2162306a36Sopenharmony_ci      - description: I2C devics
2262306a36Sopenharmony_ci        enum:
2362306a36Sopenharmony_ci          - adi,ad5024
2462306a36Sopenharmony_ci          - adi,ad5025
2562306a36Sopenharmony_ci          - adi,ad5044
2662306a36Sopenharmony_ci          - adi,ad5045
2762306a36Sopenharmony_ci          - adi,ad5064
2862306a36Sopenharmony_ci          - adi,ad5064-1
2962306a36Sopenharmony_ci          - adi,ad5065
3062306a36Sopenharmony_ci          - adi,ad5628-1
3162306a36Sopenharmony_ci          - adi,ad5628-2
3262306a36Sopenharmony_ci          - adi,ad5648-1
3362306a36Sopenharmony_ci          - adi,ad5648-2
3462306a36Sopenharmony_ci          - adi,ad5666-1
3562306a36Sopenharmony_ci          - adi,ad5666-2
3662306a36Sopenharmony_ci          - adi,ad5668-1
3762306a36Sopenharmony_ci          - adi,ad5668-2
3862306a36Sopenharmony_ci          - adi,ad5668-3
3962306a36Sopenharmony_ci      - description: SPI devices
4062306a36Sopenharmony_ci        enum:
4162306a36Sopenharmony_ci          - adi,ad5625
4262306a36Sopenharmony_ci          - adi,ad5625r-1v25
4362306a36Sopenharmony_ci          - adi,ad5625r-2v5
4462306a36Sopenharmony_ci          - adi,ad5627
4562306a36Sopenharmony_ci          - adi,ad5627r-1v25
4662306a36Sopenharmony_ci          - adi,ad5627r-2v5
4762306a36Sopenharmony_ci          - adi,ad5629-1
4862306a36Sopenharmony_ci          - adi,ad5629-2
4962306a36Sopenharmony_ci          - adi,ad5629-3
5062306a36Sopenharmony_ci          - adi,ad5645r-1v25
5162306a36Sopenharmony_ci          - adi,ad5645r-2v5
5262306a36Sopenharmony_ci          - adi,ad5665
5362306a36Sopenharmony_ci          - adi,ad5665r-1v25
5462306a36Sopenharmony_ci          - adi,ad5665r-2v5
5562306a36Sopenharmony_ci          - adi,ad5667
5662306a36Sopenharmony_ci          - adi,ad5667r-1v25
5762306a36Sopenharmony_ci          - adi,ad5667r-2v5
5862306a36Sopenharmony_ci          - adi,ad5669-1
5962306a36Sopenharmony_ci          - adi,ad5669-2
6062306a36Sopenharmony_ci          - adi,ad5669-3
6162306a36Sopenharmony_ci          - lltc,ltc2606
6262306a36Sopenharmony_ci          - lltc,ltc2607
6362306a36Sopenharmony_ci          - lltc,ltc2609
6462306a36Sopenharmony_ci          - lltc,ltc2616
6562306a36Sopenharmony_ci          - lltc,ltc2617
6662306a36Sopenharmony_ci          - lltc,ltc2619
6762306a36Sopenharmony_ci          - lltc,ltc2626
6862306a36Sopenharmony_ci          - lltc,ltc2627
6962306a36Sopenharmony_ci          - lltc,ltc2629
7062306a36Sopenharmony_ci          - lltc,ltc2631-l12
7162306a36Sopenharmony_ci          - lltc,ltc2631-h12
7262306a36Sopenharmony_ci          - lltc,ltc2631-l10
7362306a36Sopenharmony_ci          - lltc,ltc2631-h10
7462306a36Sopenharmony_ci          - lltc,ltc2631-l8
7562306a36Sopenharmony_ci          - lltc,ltc2631-h8
7662306a36Sopenharmony_ci          - lltc,ltc2633-l12
7762306a36Sopenharmony_ci          - lltc,ltc2633-h12
7862306a36Sopenharmony_ci          - lltc,ltc2633-l10
7962306a36Sopenharmony_ci          - lltc,ltc2633-h10
8062306a36Sopenharmony_ci          - lltc,ltc2633-l8
8162306a36Sopenharmony_ci          - lltc,ltc2633-h8
8262306a36Sopenharmony_ci          - lltc,ltc2635-l12
8362306a36Sopenharmony_ci          - lltc,ltc2635-h12
8462306a36Sopenharmony_ci          - lltc,ltc2635-l10
8562306a36Sopenharmony_ci          - lltc,ltc2635-h10
8662306a36Sopenharmony_ci          - lltc,ltc2635-l8
8762306a36Sopenharmony_ci          - lltc,ltc2635-h8
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci  reg:
9062306a36Sopenharmony_ci    maxItems: 1
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci  vrefA-supply: true
9362306a36Sopenharmony_ci  vrefB-supply: true
9462306a36Sopenharmony_ci  vrefC-supply: true
9562306a36Sopenharmony_ci  vrefD-supply: true
9662306a36Sopenharmony_ci  vref-supply: true
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_cirequired:
9962306a36Sopenharmony_ci  - compatible
10062306a36Sopenharmony_ci  - reg
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ciallOf:
10362306a36Sopenharmony_ci  - $ref: /schemas/spi/spi-peripheral-props.yaml#
10462306a36Sopenharmony_ci  - # Shared external vref, no internal reference
10562306a36Sopenharmony_ci    if:
10662306a36Sopenharmony_ci      properties:
10762306a36Sopenharmony_ci        compatible:
10862306a36Sopenharmony_ci          contains:
10962306a36Sopenharmony_ci            enum:
11062306a36Sopenharmony_ci              - adi,ad5064-1
11162306a36Sopenharmony_ci              - adi,ad5625
11262306a36Sopenharmony_ci              - adi,ad5627
11362306a36Sopenharmony_ci              - adi,ad5665
11462306a36Sopenharmony_ci              - adi,ad5667
11562306a36Sopenharmony_ci              - lltc,ltc2606
11662306a36Sopenharmony_ci              - lltc,ltc2607
11762306a36Sopenharmony_ci              - lltc,ltc2616
11862306a36Sopenharmony_ci              - lltc,ltc2617
11962306a36Sopenharmony_ci              - lltc,ltc2626
12062306a36Sopenharmony_ci              - lltc,ltc2627
12162306a36Sopenharmony_ci    then:
12262306a36Sopenharmony_ci      properties:
12362306a36Sopenharmony_ci        vref-supply: true
12462306a36Sopenharmony_ci        vrefA-supply: false
12562306a36Sopenharmony_ci        vrefB-supply: false
12662306a36Sopenharmony_ci        vrefC-supply: false
12762306a36Sopenharmony_ci        vrefD-supply: false
12862306a36Sopenharmony_ci      required:
12962306a36Sopenharmony_ci        - vref-supply
13062306a36Sopenharmony_ci  - # Shared external vref, internal reference available
13162306a36Sopenharmony_ci    if:
13262306a36Sopenharmony_ci      properties:
13362306a36Sopenharmony_ci        compatible:
13462306a36Sopenharmony_ci          contains:
13562306a36Sopenharmony_ci            enum:
13662306a36Sopenharmony_ci              - adi,ad5625r-1v25
13762306a36Sopenharmony_ci              - adi,ad5625r-2v5
13862306a36Sopenharmony_ci              - adi,ad5627r-1v25
13962306a36Sopenharmony_ci              - adi,ad5627r-2v5
14062306a36Sopenharmony_ci              - adi,ad5628-1
14162306a36Sopenharmony_ci              - adi,ad5628-2
14262306a36Sopenharmony_ci              - adi,ad5629-1
14362306a36Sopenharmony_ci              - adi,ad5629-2
14462306a36Sopenharmony_ci              - adi,ad5629-3
14562306a36Sopenharmony_ci              - adi,ad5645r-1v25
14662306a36Sopenharmony_ci              - adi,ad5645r-2v5
14762306a36Sopenharmony_ci              - adi,ad5647r-1v25
14862306a36Sopenharmony_ci              - adi,ad5647r-2v5
14962306a36Sopenharmony_ci              - adi,ad5648-1
15062306a36Sopenharmony_ci              - adi,ad5648-2
15162306a36Sopenharmony_ci              - adi,ad5665r-1v25
15262306a36Sopenharmony_ci              - adi,ad5665r-2v5
15362306a36Sopenharmony_ci              - adi,ad5666-1
15462306a36Sopenharmony_ci              - adi,ad5666-2
15562306a36Sopenharmony_ci              - adi,ad5667r-1v25
15662306a36Sopenharmony_ci              - adi,ad5667r-2v5
15762306a36Sopenharmony_ci              - adi,ad5668-1
15862306a36Sopenharmony_ci              - adi,ad5668-2
15962306a36Sopenharmony_ci              - adi,ad5668-3
16062306a36Sopenharmony_ci              - adi,ad5669-1
16162306a36Sopenharmony_ci              - adi,ad5669-2
16262306a36Sopenharmony_ci              - adi,ad5669-3
16362306a36Sopenharmony_ci              - lltc,ltc2631-l12
16462306a36Sopenharmony_ci              - lltc,ltc2631-h12
16562306a36Sopenharmony_ci              - lltc,ltc2631-l10
16662306a36Sopenharmony_ci              - lltc,ltc2631-h10
16762306a36Sopenharmony_ci              - lltc,ltc2631-l8
16862306a36Sopenharmony_ci              - lltc,ltc2631-h8
16962306a36Sopenharmony_ci              - lltc,ltc2633-l12
17062306a36Sopenharmony_ci              - lltc,ltc2633-h12
17162306a36Sopenharmony_ci              - lltc,ltc2633-l10
17262306a36Sopenharmony_ci              - lltc,ltc2633-h10
17362306a36Sopenharmony_ci              - lltc,ltc2633-l8
17462306a36Sopenharmony_ci              - lltc,ltc2633-h8
17562306a36Sopenharmony_ci              - lltc,ltc2635-l12
17662306a36Sopenharmony_ci              - lltc,ltc2635-h12
17762306a36Sopenharmony_ci              - lltc,ltc2635-l10
17862306a36Sopenharmony_ci              - lltc,ltc2635-h10
17962306a36Sopenharmony_ci              - lltc,ltc2635-l8
18062306a36Sopenharmony_ci              - lltc,ltc2635-h8
18162306a36Sopenharmony_ci    then:
18262306a36Sopenharmony_ci      properties:
18362306a36Sopenharmony_ci        vref-supply: true
18462306a36Sopenharmony_ci        vrefA-supply: false
18562306a36Sopenharmony_ci        vrefB-supply: false
18662306a36Sopenharmony_ci        vrefC-supply: false
18762306a36Sopenharmony_ci        vrefD-supply: false
18862306a36Sopenharmony_ci  - # 4 input devices, separate vrefs, no internal reference
18962306a36Sopenharmony_ci    if:
19062306a36Sopenharmony_ci      properties:
19162306a36Sopenharmony_ci        compatible:
19262306a36Sopenharmony_ci          contains:
19362306a36Sopenharmony_ci            enum:
19462306a36Sopenharmony_ci              - adi,ad5024
19562306a36Sopenharmony_ci              - adi,ad5044
19662306a36Sopenharmony_ci              - adi,ad5064
19762306a36Sopenharmony_ci              - lltc,ltc2609
19862306a36Sopenharmony_ci              - lltc,ltc2619
19962306a36Sopenharmony_ci              - lltc,ltc2629
20062306a36Sopenharmony_ci    then:
20162306a36Sopenharmony_ci      properties:
20262306a36Sopenharmony_ci        vrefA-supply: true
20362306a36Sopenharmony_ci        vrefB-supply: true
20462306a36Sopenharmony_ci        vrefC-supply: true
20562306a36Sopenharmony_ci        vrefD-supply: true
20662306a36Sopenharmony_ci        vref-supply: false
20762306a36Sopenharmony_ci      required:
20862306a36Sopenharmony_ci        - vrefA-supply
20962306a36Sopenharmony_ci        - vrefB-supply
21062306a36Sopenharmony_ci        - vrefC-supply
21162306a36Sopenharmony_ci        - vrefD-supply
21262306a36Sopenharmony_ci  - # 2 input devices, separate vrefs, no internal reference
21362306a36Sopenharmony_ci    if:
21462306a36Sopenharmony_ci      properties:
21562306a36Sopenharmony_ci        compatible:
21662306a36Sopenharmony_ci          contains:
21762306a36Sopenharmony_ci            enum:
21862306a36Sopenharmony_ci              - adi,ad5025
21962306a36Sopenharmony_ci              - adi,ad5045
22062306a36Sopenharmony_ci              - adi,ad5065
22162306a36Sopenharmony_ci    then:
22262306a36Sopenharmony_ci      properties:
22362306a36Sopenharmony_ci        vrefA-supply: true
22462306a36Sopenharmony_ci        vrefB-supply: true
22562306a36Sopenharmony_ci        vrefC-supply: false
22662306a36Sopenharmony_ci        vrefD-supply: false
22762306a36Sopenharmony_ci        vref-supply: false
22862306a36Sopenharmony_ci      required:
22962306a36Sopenharmony_ci        - vrefA-supply
23062306a36Sopenharmony_ci        - vrefB-supply
23162306a36Sopenharmony_ci
23262306a36Sopenharmony_ciunevaluatedProperties: false
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_ciexamples:
23562306a36Sopenharmony_ci  - |
23662306a36Sopenharmony_ci    spi {
23762306a36Sopenharmony_ci        #address-cells = <1>;
23862306a36Sopenharmony_ci        #size-cells = <0>;
23962306a36Sopenharmony_ci        dac@0 {
24062306a36Sopenharmony_ci            reg = <0>;
24162306a36Sopenharmony_ci            compatible = "adi,ad5625";
24262306a36Sopenharmony_ci            vref-supply = <&dac_vref>;
24362306a36Sopenharmony_ci        };
24462306a36Sopenharmony_ci    };
24562306a36Sopenharmony_ci  - |
24662306a36Sopenharmony_ci    spi {
24762306a36Sopenharmony_ci        #address-cells = <1>;
24862306a36Sopenharmony_ci        #size-cells = <0>;
24962306a36Sopenharmony_ci        dac@0 {
25062306a36Sopenharmony_ci            reg = <0>;
25162306a36Sopenharmony_ci            compatible = "adi,ad5625r-1v25";
25262306a36Sopenharmony_ci        };
25362306a36Sopenharmony_ci    };
25462306a36Sopenharmony_ci  - |
25562306a36Sopenharmony_ci    i2c {
25662306a36Sopenharmony_ci        #address-cells = <1>;
25762306a36Sopenharmony_ci        #size-cells = <0>;
25862306a36Sopenharmony_ci        dac@42 {
25962306a36Sopenharmony_ci            reg = <0x42>;
26062306a36Sopenharmony_ci            compatible = "adi,ad5024";
26162306a36Sopenharmony_ci            vrefA-supply = <&dac_vref>;
26262306a36Sopenharmony_ci            vrefB-supply = <&dac_vref>;
26362306a36Sopenharmony_ci            vrefC-supply = <&dac_vref2>;
26462306a36Sopenharmony_ci            vrefD-supply = <&dac_vref2>;
26562306a36Sopenharmony_ci        };
26662306a36Sopenharmony_ci    };
26762306a36Sopenharmony_ci...
268