xref: /linux/Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
12f472da9SKim Seer Paller# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22f472da9SKim Seer Paller%YAML 1.2
32f472da9SKim Seer Paller---
42f472da9SKim Seer Paller$id: http://devicetree.org/schemas/iio/dac/adi,ltc2664.yaml#
52f472da9SKim Seer Paller$schema: http://devicetree.org/meta-schemas/core.yaml#
62f472da9SKim Seer Paller
72f472da9SKim Seer Pallertitle: Analog Devices LTC2664 DAC
82f472da9SKim Seer Paller
92f472da9SKim Seer Pallermaintainers:
102f472da9SKim Seer Paller  - Michael Hennerich <michael.hennerich@analog.com>
112f472da9SKim Seer Paller  - Kim Seer Paller <kimseer.paller@analog.com>
122f472da9SKim Seer Paller
132f472da9SKim Seer Pallerdescription: |
142f472da9SKim Seer Paller  Analog Devices LTC2664 4 channel, 12-/16-Bit, +-10V DAC
152f472da9SKim Seer Paller  https://www.analog.com/media/en/technical-documentation/data-sheets/2664fa.pdf
162f472da9SKim Seer Paller
172f472da9SKim Seer Pallerproperties:
182f472da9SKim Seer Paller  compatible:
192f472da9SKim Seer Paller    enum:
202f472da9SKim Seer Paller      - adi,ltc2664
212f472da9SKim Seer Paller
222f472da9SKim Seer Paller  reg:
232f472da9SKim Seer Paller    maxItems: 1
242f472da9SKim Seer Paller
252f472da9SKim Seer Paller  spi-max-frequency:
262f472da9SKim Seer Paller    maximum: 50000000
272f472da9SKim Seer Paller
282f472da9SKim Seer Paller  vcc-supply:
292f472da9SKim Seer Paller    description: Analog Supply Voltage Input.
302f472da9SKim Seer Paller
312f472da9SKim Seer Paller  v-pos-supply:
322f472da9SKim Seer Paller    description: Positive Supply Voltage Input.
332f472da9SKim Seer Paller
342f472da9SKim Seer Paller  v-neg-supply:
352f472da9SKim Seer Paller    description: Negative Supply Voltage Input.
362f472da9SKim Seer Paller
372f472da9SKim Seer Paller  iovcc-supply:
382f472da9SKim Seer Paller    description: Digital Input/Output Supply Voltage.
392f472da9SKim Seer Paller
402f472da9SKim Seer Paller  ref-supply:
412f472da9SKim Seer Paller    description:
422f472da9SKim Seer Paller      Reference Input/Output. The voltage at the REF pin sets the full-scale
432f472da9SKim Seer Paller      range of all channels. If not provided the internal reference is used and
442f472da9SKim Seer Paller      also provided on the VREF pin.
452f472da9SKim Seer Paller
462f472da9SKim Seer Paller  reset-gpios:
472f472da9SKim Seer Paller    description:
482f472da9SKim Seer Paller      Active-low Asynchronous Clear Input. A logic low at this level-triggered
492f472da9SKim Seer Paller      input clears the part to the reset code and range determined by the
502f472da9SKim Seer Paller      hardwired option chosen using the MSPAN pins. The control registers are
512f472da9SKim Seer Paller      cleared to zero.
522f472da9SKim Seer Paller    maxItems: 1
532f472da9SKim Seer Paller
542f472da9SKim Seer Paller  adi,manual-span-operation-config:
552f472da9SKim Seer Paller    description:
562f472da9SKim Seer Paller      This property must mimic the MSPAN pin configurations. By tying the MSPAN
572f472da9SKim Seer Paller      pins (MSP2, MSP1 and MSP0) to GND and/or VCC, any output range can be
582f472da9SKim Seer Paller      hardware-configured with different mid-scale or zero-scale reset options.
592f472da9SKim Seer Paller      The hardware configuration is latched during power on reset for proper
602f472da9SKim Seer Paller      operation.
612f472da9SKim Seer Paller        0 - MPS2=GND, MPS1=GND, MSP0=GND (+-10V, reset to 0V)
622f472da9SKim Seer Paller        1 - MPS2=GND, MPS1=GND, MSP0=VCC (+-5V, reset to 0V)
632f472da9SKim Seer Paller        2 - MPS2=GND, MPS1=VCC, MSP0=GND (+-2.5V, reset to 0V)
642f472da9SKim Seer Paller        3 - MPS2=GND, MPS1=VCC, MSP0=VCC (0V to 10, reset to 0V)
652f472da9SKim Seer Paller        4 - MPS2=VCC, MPS1=GND, MSP0=GND (0V to 10V, reset to 5V)
662f472da9SKim Seer Paller        5 - MPS2=VCC, MPS1=GND, MSP0=VCC (0V to 5V, reset to 0V)
672f472da9SKim Seer Paller        6 - MPS2=VCC, MPS1=VCC, MSP0=GND (0V to 5V, reset to 2.5V)
682f472da9SKim Seer Paller        7 - MPS2=VCC, MPS1=VCC, MSP0=VCC (0V to 5V, reset to 0V, enables SoftSpan)
692f472da9SKim Seer Paller    $ref: /schemas/types.yaml#/definitions/uint32
702f472da9SKim Seer Paller    enum: [0, 1, 2, 3, 4, 5, 6, 7]
712f472da9SKim Seer Paller    default: 7
722f472da9SKim Seer Paller
732f472da9SKim Seer Paller  io-channels:
742f472da9SKim Seer Paller    description:
752f472da9SKim Seer Paller      ADC channel to monitor voltages and temperature at the MUXOUT pin.
762f472da9SKim Seer Paller    maxItems: 1
772f472da9SKim Seer Paller
782f472da9SKim Seer Paller  '#address-cells':
792f472da9SKim Seer Paller    const: 1
802f472da9SKim Seer Paller
812f472da9SKim Seer Paller  '#size-cells':
822f472da9SKim Seer Paller    const: 0
832f472da9SKim Seer Paller
842f472da9SKim Seer PallerpatternProperties:
852f472da9SKim Seer Paller  "^channel@[0-3]$":
862f472da9SKim Seer Paller    $ref: dac.yaml
872f472da9SKim Seer Paller    type: object
882f472da9SKim Seer Paller    additionalProperties: false
892f472da9SKim Seer Paller
902f472da9SKim Seer Paller    properties:
912f472da9SKim Seer Paller      reg:
922f472da9SKim Seer Paller        description: The channel number representing the DAC output channel.
932f472da9SKim Seer Paller        maximum: 3
942f472da9SKim Seer Paller
952f472da9SKim Seer Paller      adi,toggle-mode:
962f472da9SKim Seer Paller        description:
972f472da9SKim Seer Paller          Set the channel as a toggle enabled channel. Toggle operation enables
982f472da9SKim Seer Paller          fast switching of a DAC output between two different DAC codes without
992f472da9SKim Seer Paller          any SPI transaction.
1002f472da9SKim Seer Paller        type: boolean
1012f472da9SKim Seer Paller
1022f472da9SKim Seer Paller      output-range-microvolt:
1032f472da9SKim Seer Paller        description:
1042f472da9SKim Seer Paller          This property is only allowed when SoftSpan is enabled. If not present,
1052f472da9SKim Seer Paller          [0, 5000000] is the default output range.
1062f472da9SKim Seer Paller        oneOf:
1072f472da9SKim Seer Paller          - items:
1082f472da9SKim Seer Paller              - const: 0
1092f472da9SKim Seer Paller              - enum: [5000000, 10000000]
1102f472da9SKim Seer Paller          - items:
1112f472da9SKim Seer Paller              - const: -5000000
1122f472da9SKim Seer Paller              - const: 5000000
1132f472da9SKim Seer Paller          - items:
1142f472da9SKim Seer Paller              - const: -10000000
1152f472da9SKim Seer Paller              - const: 10000000
1162f472da9SKim Seer Paller          - items:
1172f472da9SKim Seer Paller              - const: -2500000
1182f472da9SKim Seer Paller              - const: 2500000
1192f472da9SKim Seer Paller
1202f472da9SKim Seer Paller    required:
1212f472da9SKim Seer Paller      - reg
1222f472da9SKim Seer Paller
1232f472da9SKim Seer Paller    allOf:
1242f472da9SKim Seer Paller      - if:
1252f472da9SKim Seer Paller          not:
1262f472da9SKim Seer Paller            properties:
1272f472da9SKim Seer Paller              adi,manual-span-operation-config:
1282f472da9SKim Seer Paller                const: 7
1292f472da9SKim Seer Paller        then:
1302f472da9SKim Seer Paller          patternProperties:
1312f472da9SKim Seer Paller            "^channel@[0-3]$":
1322f472da9SKim Seer Paller              properties:
1332f472da9SKim Seer Paller                output-range-microvolt: false
1342f472da9SKim Seer Paller
1352f472da9SKim Seer Pallerrequired:
1362f472da9SKim Seer Paller  - compatible
1372f472da9SKim Seer Paller  - reg
1382f472da9SKim Seer Paller  - spi-max-frequency
1392f472da9SKim Seer Paller  - vcc-supply
1402f472da9SKim Seer Paller  - iovcc-supply
1412f472da9SKim Seer Paller  - v-pos-supply
1422f472da9SKim Seer Paller  - v-neg-supply
1432f472da9SKim Seer Paller
1442f472da9SKim Seer PallerallOf:
1452f472da9SKim Seer Paller  - $ref: /schemas/spi/spi-peripheral-props.yaml#
1462f472da9SKim Seer Paller
147*58fe539eSKrzysztof KozlowskiunevaluatedProperties: false
1482f472da9SKim Seer Paller
1492f472da9SKim Seer Pallerexamples:
1502f472da9SKim Seer Paller  - |
1512f472da9SKim Seer Paller    spi {
1522f472da9SKim Seer Paller        #address-cells = <1>;
1532f472da9SKim Seer Paller        #size-cells = <0>;
1542f472da9SKim Seer Paller        dac@0 {
1552f472da9SKim Seer Paller            compatible = "adi,ltc2664";
1562f472da9SKim Seer Paller            reg = <0>;
1572f472da9SKim Seer Paller            spi-max-frequency = <10000000>;
1582f472da9SKim Seer Paller
1592f472da9SKim Seer Paller            vcc-supply = <&vcc>;
1602f472da9SKim Seer Paller            iovcc-supply = <&vcc>;
1612f472da9SKim Seer Paller            ref-supply = <&vref>;
1622f472da9SKim Seer Paller            v-pos-supply = <&vpos>;
1632f472da9SKim Seer Paller            v-neg-supply = <&vneg>;
1642f472da9SKim Seer Paller
1652f472da9SKim Seer Paller            io-channels = <&adc 0>;
1662f472da9SKim Seer Paller
1672f472da9SKim Seer Paller            #address-cells = <1>;
1682f472da9SKim Seer Paller            #size-cells = <0>;
1692f472da9SKim Seer Paller            channel@0 {
1702f472da9SKim Seer Paller                reg = <0>;
1712f472da9SKim Seer Paller                adi,toggle-mode;
1722f472da9SKim Seer Paller                output-range-microvolt = <(-10000000) 10000000>;
1732f472da9SKim Seer Paller            };
1742f472da9SKim Seer Paller
1752f472da9SKim Seer Paller            channel@1 {
1762f472da9SKim Seer Paller                reg = <1>;
1772f472da9SKim Seer Paller                output-range-microvolt= <0 10000000>;
1782f472da9SKim Seer Paller            };
1792f472da9SKim Seer Paller        };
1802f472da9SKim Seer Paller    };
1812f472da9SKim Seer Paller...
182