summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/iio/dac/adi,ltc2688.yaml
blob: 15cc6bf59b1309c71b5b276d93c63a98bc69e2ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/dac/adi,ltc2688.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices LTC2688 DAC

maintainers:
  - Nuno Sá <nuno.sa@analog.com>

description: |
  Analog Devices LTC2688 16 channel, 16 bit, +-15V DAC
  https://www.analog.com/media/en/technical-documentation/data-sheets/ltc2688.pdf

properties:
  compatible:
    enum:
      - adi,ltc2688

  reg:
    maxItems: 1

  vcc-supply:
    description: Analog Supply Voltage Input.

  iovcc-supply:
    description: Digital Input/Output Supply Voltage.

  vref-supply:
    description:
      Reference Input/Output. The voltage at the REF pin sets the full-scale
      range of all channels. If not provided the internal reference is used and
      also provided on the VREF pin".

  clr-gpios:
    description:
      If specified, it will be asserted during driver probe. As the line is
      active low, it should be marked GPIO_ACTIVE_LOW.
    maxItems: 1

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

patternProperties:
  "^channel@([0-9]|1[0-5])$":
    type: object
    additionalProperties: false

    properties:
      reg:
        description: The channel number representing the DAC output channel.
        maximum: 15

      adi,toggle-mode:
        description:
          Set the channel as a toggle enabled channel. Toggle operation enables
          fast switching of a DAC output between two different DAC codes without
          any SPI transaction.
        type: boolean

      adi,output-range-microvolt:
        description: Specify the channel output full scale range.
        oneOf:
          - items:
              - const: 0
              - enum: [5000000, 10000000]
          - items:
              - const: -5000000
              - const: 5000000
          - items:
              - const: -10000000
              - const: 10000000
          - items:
              - const: -15000000
              - const: 15000000

      adi,overrange:
        description: Enable 5% overrange over the selected full scale range.
        type: boolean

      clocks:
        maxItems: 1

      adi,toggle-dither-input:
        description:
          Selects the TGPx pin to be associated with this channel. This setting
          only makes sense for toggle or dither enabled channels. If
          @adi,toggle-mode is not set and this property is given, the channel is
          assumed to be a dither capable channel. Note that multiple channels
          can be mapped to the same pin. If this setting is given, the
          respective @clock must also be provided. Mappings between this and
          input pins
            0 - TGP1
            1 - TGP2
            2 - TGP3
        $ref: /schemas/types.yaml#/definitions/uint32
        enum: [0, 1, 2]

    dependencies:
      adi,toggle-dither-input: [ clocks ]

    required:
      - reg

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |

    spi {
          #address-cells = <1>;
          #size-cells = <0>;
          ltc2688: ltc2688@0 {
                  compatible = "adi,ltc2688";
                  reg = <0>;

                  vcc-supply = <&vcc>;
                  iovcc-supply = <&vcc>;
                  vref-supply = <&vref>;

                  #address-cells = <1>;
                  #size-cells = <0>;
                  channel@0 {
                          reg = <0>;
                          adi,toggle-mode;
                          adi,overrange;
                  };

                  channel@1 {
                          reg = <1>;
                          adi,output-range-microvolt = <0 10000000>;

                          clocks = <&clock_tgp3>;
                          adi,toggle-dither-input = <2>;
                  };
          };
    };

...