162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci# Copyright 2020 Analog Devices Inc.
362306a36Sopenharmony_ci%YAML 1.2
462306a36Sopenharmony_ci---
562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/iio/dac/adi,ad5770r.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: Analog Devices AD5770R DAC device driver
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cimaintainers:
1162306a36Sopenharmony_ci  - Alexandru Tachici <alexandru.tachici@analog.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |
1462306a36Sopenharmony_ci  Bindings for the Analog Devices AD5770R current DAC device. Datasheet can be
1562306a36Sopenharmony_ci  found here:
1662306a36Sopenharmony_ci    https://www.analog.com/media/en/technical-documentation/data-sheets/AD5770R.pdf
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciproperties:
1962306a36Sopenharmony_ci  compatible:
2062306a36Sopenharmony_ci    enum:
2162306a36Sopenharmony_ci      - adi,ad5770r
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci  reg:
2462306a36Sopenharmony_ci    maxItems: 1
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci  avdd-supply:
2762306a36Sopenharmony_ci    description:
2862306a36Sopenharmony_ci      AVdd voltage supply. Represents two different supplies in the datasheet
2962306a36Sopenharmony_ci      that are in fact the same.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  iovdd-supply:
3262306a36Sopenharmony_ci    description:
3362306a36Sopenharmony_ci      Voltage supply for the chip interface.
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  vref-supply:
3662306a36Sopenharmony_ci    description: Specify the voltage of the external reference used.
3762306a36Sopenharmony_ci      Available reference options are 1.25 V or 2.5 V. If no
3862306a36Sopenharmony_ci      external reference declared then the device will use the
3962306a36Sopenharmony_ci      internal reference of 1.25 V.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci  adi,external-resistor:
4262306a36Sopenharmony_ci    description: Specify if an external 2.5k ohm resistor is used. If not
4362306a36Sopenharmony_ci      specified the device will use an internal 2.5k ohm resistor.
4462306a36Sopenharmony_ci      The precision resistor is used for reference current generation.
4562306a36Sopenharmony_ci    type: boolean
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci  reset-gpios:
4862306a36Sopenharmony_ci    description: GPIO spec for the RESET pin. If specified, it will be
4962306a36Sopenharmony_ci      asserted during driver probe.
5062306a36Sopenharmony_ci    maxItems: 1
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  '#address-cells':
5362306a36Sopenharmony_ci    const: 1
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  '#size-cells':
5662306a36Sopenharmony_ci    const: 0
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci  channel@0:
5962306a36Sopenharmony_ci    description: Represents an external channel which are
6062306a36Sopenharmony_ci      connected to the DAC. Channel 0 can act both as a current
6162306a36Sopenharmony_ci      source and sink.
6262306a36Sopenharmony_ci    type: object
6362306a36Sopenharmony_ci    additionalProperties: false
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci    properties:
6662306a36Sopenharmony_ci      reg:
6762306a36Sopenharmony_ci        description: This represents the channel number.
6862306a36Sopenharmony_ci        const: 0
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci      adi,range-microamp:
7162306a36Sopenharmony_ci        description: Output range of the channel.
7262306a36Sopenharmony_ci        oneOf:
7362306a36Sopenharmony_ci          - items:
7462306a36Sopenharmony_ci              - const: 0
7562306a36Sopenharmony_ci              - const: 300000
7662306a36Sopenharmony_ci          - items:
7762306a36Sopenharmony_ci              - const: -60000
7862306a36Sopenharmony_ci              - const: 0
7962306a36Sopenharmony_ci          - items:
8062306a36Sopenharmony_ci              - const: -60000
8162306a36Sopenharmony_ci              - const: 300000
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci  channel@1:
8462306a36Sopenharmony_ci    description: Represents an external channel which are
8562306a36Sopenharmony_ci      connected to the DAC.
8662306a36Sopenharmony_ci    type: object
8762306a36Sopenharmony_ci    additionalProperties: false
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci    properties:
9062306a36Sopenharmony_ci      reg:
9162306a36Sopenharmony_ci        description: This represents the channel number.
9262306a36Sopenharmony_ci        const: 1
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci      adi,range-microamp:
9562306a36Sopenharmony_ci        description: Output range of the channel.
9662306a36Sopenharmony_ci        items:
9762306a36Sopenharmony_ci          - const: 0
9862306a36Sopenharmony_ci          - enum: [140000, 250000]
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci  channel@2:
10162306a36Sopenharmony_ci    description: Represents an external channel which are
10262306a36Sopenharmony_ci      connected to the DAC.
10362306a36Sopenharmony_ci    type: object
10462306a36Sopenharmony_ci    additionalProperties: false
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci    properties:
10762306a36Sopenharmony_ci      reg:
10862306a36Sopenharmony_ci        description: This represents the channel number.
10962306a36Sopenharmony_ci        const: 2
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci      adi,range-microamp:
11262306a36Sopenharmony_ci        description: Output range of the channel.
11362306a36Sopenharmony_ci        items:
11462306a36Sopenharmony_ci          - const: 0
11562306a36Sopenharmony_ci          - enum: [55000, 150000]
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_cipatternProperties:
11862306a36Sopenharmony_ci  "^channel@([3-5])$":
11962306a36Sopenharmony_ci    type: object
12062306a36Sopenharmony_ci    additionalProperties: false
12162306a36Sopenharmony_ci    description: Represents the external channels which are connected to the DAC.
12262306a36Sopenharmony_ci    properties:
12362306a36Sopenharmony_ci      reg:
12462306a36Sopenharmony_ci        description: This represents the channel number.
12562306a36Sopenharmony_ci        minimum: 3
12662306a36Sopenharmony_ci        maximum: 5
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci      adi,range-microamp:
12962306a36Sopenharmony_ci        description: Output range of the channel.
13062306a36Sopenharmony_ci        items:
13162306a36Sopenharmony_ci          - const: 0
13262306a36Sopenharmony_ci          - enum: [45000, 100000]
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_cirequired:
13562306a36Sopenharmony_ci  - reg
13662306a36Sopenharmony_ci  - channel@0
13762306a36Sopenharmony_ci  - channel@1
13862306a36Sopenharmony_ci  - channel@2
13962306a36Sopenharmony_ci  - channel@3
14062306a36Sopenharmony_ci  - channel@4
14162306a36Sopenharmony_ci  - channel@5
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ciallOf:
14462306a36Sopenharmony_ci  - $ref: /schemas/spi/spi-peripheral-props.yaml#
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ciunevaluatedProperties: false
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ciexamples:
14962306a36Sopenharmony_ci  - |
15062306a36Sopenharmony_ci    spi {
15162306a36Sopenharmony_ci        #address-cells = <1>;
15262306a36Sopenharmony_ci        #size-cells = <0>;
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci        ad5770r@0 {
15562306a36Sopenharmony_ci            compatible = "adi,ad5770r";
15662306a36Sopenharmony_ci            reg = <0>;
15762306a36Sopenharmony_ci            spi-max-frequency = <1000000>;
15862306a36Sopenharmony_ci            vref-supply = <&vref>;
15962306a36Sopenharmony_ci            adi,external-resistor;
16062306a36Sopenharmony_ci            reset-gpios = <&gpio 22 0>;
16162306a36Sopenharmony_ci            #address-cells = <1>;
16262306a36Sopenharmony_ci            #size-cells = <0>;
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ci            channel@0 {
16562306a36Sopenharmony_ci                reg = <0>;
16662306a36Sopenharmony_ci                adi,range-microamp = <0 300000>;
16762306a36Sopenharmony_ci            };
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci            channel@1 {
17062306a36Sopenharmony_ci                reg = <1>;
17162306a36Sopenharmony_ci                adi,range-microamp = <0 140000>;
17262306a36Sopenharmony_ci            };
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci            channel@2 {
17562306a36Sopenharmony_ci                reg = <2>;
17662306a36Sopenharmony_ci                adi,range-microamp = <0 55000>;
17762306a36Sopenharmony_ci            };
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ci            channel@3 {
18062306a36Sopenharmony_ci                reg = <3>;
18162306a36Sopenharmony_ci                adi,range-microamp = <0 45000>;
18262306a36Sopenharmony_ci            };
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ci            channel@4 {
18562306a36Sopenharmony_ci                reg = <4>;
18662306a36Sopenharmony_ci                adi,range-microamp = <0 45000>;
18762306a36Sopenharmony_ci            };
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci            channel@5 {
19062306a36Sopenharmony_ci                reg = <5>;
19162306a36Sopenharmony_ci                adi,range-microamp = <0 45000>;
19262306a36Sopenharmony_ci            };
19362306a36Sopenharmony_ci        };
19462306a36Sopenharmony_ci    };
19562306a36Sopenharmony_ci...
196