162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/iio/dac/adi,ltc2688.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Analog Devices LTC2688 DAC
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Nuno Sá <nuno.sa@analog.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  Analog Devices LTC2688 16 channel, 16 bit, +-15V DAC
1462306a36Sopenharmony_ci  https://www.analog.com/media/en/technical-documentation/data-sheets/ltc2688.pdf
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciproperties:
1762306a36Sopenharmony_ci  compatible:
1862306a36Sopenharmony_ci    enum:
1962306a36Sopenharmony_ci      - adi,ltc2688
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci  reg:
2262306a36Sopenharmony_ci    maxItems: 1
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  vcc-supply:
2562306a36Sopenharmony_ci    description: Analog Supply Voltage Input.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  iovcc-supply:
2862306a36Sopenharmony_ci    description: Digital Input/Output Supply Voltage.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  vref-supply:
3162306a36Sopenharmony_ci    description:
3262306a36Sopenharmony_ci      Reference Input/Output. The voltage at the REF pin sets the full-scale
3362306a36Sopenharmony_ci      range of all channels. If not provided the internal reference is used and
3462306a36Sopenharmony_ci      also provided on the VREF pin".
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci  clr-gpios:
3762306a36Sopenharmony_ci    description:
3862306a36Sopenharmony_ci      If specified, it will be asserted during driver probe. As the line is
3962306a36Sopenharmony_ci      active low, it should be marked GPIO_ACTIVE_LOW.
4062306a36Sopenharmony_ci    maxItems: 1
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci  '#address-cells':
4362306a36Sopenharmony_ci    const: 1
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  '#size-cells':
4662306a36Sopenharmony_ci    const: 0
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_cipatternProperties:
4962306a36Sopenharmony_ci  "^channel@([0-9]|1[0-5])$":
5062306a36Sopenharmony_ci    type: object
5162306a36Sopenharmony_ci    additionalProperties: false
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci    properties:
5462306a36Sopenharmony_ci      reg:
5562306a36Sopenharmony_ci        description: The channel number representing the DAC output channel.
5662306a36Sopenharmony_ci        maximum: 15
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci      adi,toggle-mode:
5962306a36Sopenharmony_ci        description:
6062306a36Sopenharmony_ci          Set the channel as a toggle enabled channel. Toggle operation enables
6162306a36Sopenharmony_ci          fast switching of a DAC output between two different DAC codes without
6262306a36Sopenharmony_ci          any SPI transaction.
6362306a36Sopenharmony_ci        type: boolean
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci      adi,output-range-microvolt:
6662306a36Sopenharmony_ci        description: Specify the channel output full scale range.
6762306a36Sopenharmony_ci        oneOf:
6862306a36Sopenharmony_ci          - items:
6962306a36Sopenharmony_ci              - const: 0
7062306a36Sopenharmony_ci              - enum: [5000000, 10000000]
7162306a36Sopenharmony_ci          - items:
7262306a36Sopenharmony_ci              - const: -5000000
7362306a36Sopenharmony_ci              - const: 5000000
7462306a36Sopenharmony_ci          - items:
7562306a36Sopenharmony_ci              - const: -10000000
7662306a36Sopenharmony_ci              - const: 10000000
7762306a36Sopenharmony_ci          - items:
7862306a36Sopenharmony_ci              - const: -15000000
7962306a36Sopenharmony_ci              - const: 15000000
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci      adi,overrange:
8262306a36Sopenharmony_ci        description: Enable 5% overrange over the selected full scale range.
8362306a36Sopenharmony_ci        type: boolean
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci      clocks:
8662306a36Sopenharmony_ci        maxItems: 1
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci      adi,toggle-dither-input:
8962306a36Sopenharmony_ci        description:
9062306a36Sopenharmony_ci          Selects the TGPx pin to be associated with this channel. This setting
9162306a36Sopenharmony_ci          only makes sense for toggle or dither enabled channels. If
9262306a36Sopenharmony_ci          @adi,toggle-mode is not set and this property is given, the channel is
9362306a36Sopenharmony_ci          assumed to be a dither capable channel. Note that multiple channels
9462306a36Sopenharmony_ci          can be mapped to the same pin. If this setting is given, the
9562306a36Sopenharmony_ci          respective @clock must also be provided. Mappings between this and
9662306a36Sopenharmony_ci          input pins
9762306a36Sopenharmony_ci            0 - TGP1
9862306a36Sopenharmony_ci            1 - TGP2
9962306a36Sopenharmony_ci            2 - TGP3
10062306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
10162306a36Sopenharmony_ci        enum: [0, 1, 2]
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci    dependencies:
10462306a36Sopenharmony_ci      adi,toggle-dither-input: [ clocks ]
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci    required:
10762306a36Sopenharmony_ci      - reg
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_cirequired:
11062306a36Sopenharmony_ci  - compatible
11162306a36Sopenharmony_ci  - reg
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ciadditionalProperties: false
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ciexamples:
11662306a36Sopenharmony_ci  - |
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci    spi {
11962306a36Sopenharmony_ci        #address-cells = <1>;
12062306a36Sopenharmony_ci        #size-cells = <0>;
12162306a36Sopenharmony_ci        ltc2688: ltc2688@0 {
12262306a36Sopenharmony_ci            compatible = "adi,ltc2688";
12362306a36Sopenharmony_ci            reg = <0>;
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci            vcc-supply = <&vcc>;
12662306a36Sopenharmony_ci            iovcc-supply = <&vcc>;
12762306a36Sopenharmony_ci            vref-supply = <&vref>;
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci            #address-cells = <1>;
13062306a36Sopenharmony_ci            #size-cells = <0>;
13162306a36Sopenharmony_ci            channel@0 {
13262306a36Sopenharmony_ci                reg = <0>;
13362306a36Sopenharmony_ci                adi,toggle-mode;
13462306a36Sopenharmony_ci                adi,overrange;
13562306a36Sopenharmony_ci            };
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci            channel@1 {
13862306a36Sopenharmony_ci                reg = <1>;
13962306a36Sopenharmony_ci                adi,output-range-microvolt = <0 10000000>;
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci                clocks = <&clock_tgp3>;
14262306a36Sopenharmony_ci                adi,toggle-dither-input = <2>;
14362306a36Sopenharmony_ci            };
14462306a36Sopenharmony_ci        };
14562306a36Sopenharmony_ci    };
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci...
148