Add documentation for ltc2664 and ltc2672. Co-developed-by: Michael Hennerich <michael.hennerich@xxxxxxxxxx> Signed-off-by: Michael Hennerich <michael.hennerich@xxxxxxxxxx> Signed-off-by: Kim Seer Paller <kimseer.paller@xxxxxxxxxx> --- .../bindings/iio/dac/adi,ltc2664.yaml | 230 ++++++++++++++++++ MAINTAINERS | 8 + 2 files changed, 238 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml new file mode 100644 index 000000000..2f581a9e5 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml @@ -0,0 +1,230 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/dac/adi,ltc2664.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Analog Devices LTC2664 and LTC2672 DAC + +maintainers: + - Michael Hennerich <michael.hennerich@xxxxxxxxxx> + - Kim Seer Paller <kimseer.paller@xxxxxxxxxx> + +description: | + Analog Devices LTC2664 4 channel, 16 bit, +-10V DAC + Analog Devices LTC2672 5 channel, 16 bit, 300mA DAC + https://www.analog.com/media/en/technical-documentation/data-sheets/ltc2664.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/ltc2672.pdf + +$defs: + toggle-operation: + type: object + description: Toggle mode channel setting. + + properties: + reg: + description: Channel number. + minimum: 0 + maximum: 4 + + 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 + +patternProperties: + "^channel@[0-4]$": + type: object + +properties: + compatible: + enum: + - adi,ltc2664 + - adi,ltc2672 + + reg: + maxItems: 1 + + spi-max-frequency: + maximum: 50000000 + + 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 + +allOf: + - if: + properties: + compatible: + contains: + const: adi,ltc2664 + then: + properties: + adi,manual-span-operation-config: + description: + This property must mimic the MSPAN pin configurations. + By tying the MSPAN pins (MSP2, MSP1 and MSP0) to GND + and/or VCC, any output range can be hardware-configured + with different mid-scale or zero-scale reset options. + The hardware configuration is latched during power on reset + for proper operation. + 0 - MPS2=GND, MPS1=GND, MSP0=GND + 1 - MPS2=GND, MPS1=GND, MSP0=VCC + 2 - MPS2=GND, MPS1=VCC, MSP0=GND + 3 - MPS2=GND, MPS1=VCC, MSP0=VCC + 4 - MPS2=VCC, MPS1=GND, MSP0=GND + 5 - MPS2=VCC, MPS1=GND, MSP0=VCC + 6 - MPS2=VCC, MPS1=VCC, MSP0=GND + 7 - MPS2=VCC, MPS1=VCC, MSP0=VCC (enables SoftSpan feature) + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3, 4, 5, 6, 7] + default: 7 + + patternProperties: + "^channel@([0-3])$": + $ref: '#/$defs/toggle-operation' + unevaluatedProperties: false + + description: Channel in toggle functionality. + + properties: + 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: -2500000 + - const: 2500000 + + required: + - adi,output-range-microvolt + + - if: + properties: + compatible: + contains: + const: adi,ltc2672 + then: + properties: + adi,rfsadj-ohms: + description: If FSADJ is tied to VCC, an internal RFSADJ (20 kΩ) is + selected, which results in nominal output ranges. When an external + resistor of 19 kΩ to 41 kΩ can be used instead by connecting the + resistor between FSADJ and GND it controls the scaling of the + ranges, and the internal resistor is automatically disconnected. + minimum: 19000 + maximum: 41000 + default: 20000 + + patternProperties: + "^channel@([0-4])$": + $ref: '#/$defs/toggle-operation' + unevaluatedProperties: false + + description: Configuration properties for a channel in toggle mode + + properties: + adi,output-range-microamp: + description: Specify the channel output full scale range. + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [3125000, 6250000, 12500000, 25000000, 50000000, 100000000, + 200000000, 300000000] + + required: + - adi,output-range-microamp + +required: + - compatible + - reg + - spi-max-frequency + - vcc-supply + - iovcc-supply + +additionalProperties: false + +examples: + - | + spi { + #address-cells = <1>; + #size-cells = <0>; + dac@0 { + compatible = "adi,ltc2664"; + reg = <0>; + spi-max-frequency = <10000000>; + + vcc-supply = <&vcc>; + iovcc-supply = <&vcc>; + vref-supply = <&vref>; + + #address-cells = <1>; + #size-cells = <0>; + channel@0 { + reg = <0>; + adi,toggle-mode; + adi,output-range-microvolt = <(-10000000) 10000000>; + }; + + channel@1 { + reg = <1>; + adi,output-range-microvolt = <0 10000000>; + }; + }; + }; + - | + spi { + #address-cells = <1>; + #size-cells = <0>; + dac@0 { + compatible = "adi,ltc2672"; + reg = <0>; + spi-max-frequency = <10000000>; + + vcc-supply = <&vcc>; + iovcc-supply = <&vcc>; + vref-supply = <&vref>; + + #address-cells = <1>; + #size-cells = <0>; + channel@0 { + reg = <0>; + adi,toggle-mode; + adi,output-range-microamp = <3125000>; + }; + + channel@1 { + reg = <1>; + adi,output-range-microamp = <6250000>; + }; + }; + }; +... diff --git a/MAINTAINERS b/MAINTAINERS index a7287cf44..bd8645f6e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -12836,6 +12836,14 @@ S: Maintained F: Documentation/devicetree/bindings/iio/dac/lltc,ltc1660.yaml F: drivers/iio/dac/ltc1660.c +LTC2664 IIO DAC DRIVER +M: Michael Hennerich <michael.hennerich@xxxxxxxxxx> +M: Kim Seer Paller <kimseer.paller@xxxxxxxxxx> +L: linux-iio@xxxxxxxxxxxxxxx +S: Supported +W: https://ez.analog.com/linux-software-drivers +F: Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml + LTC2688 IIO DAC DRIVER M: Nuno Sá <nuno.sa@xxxxxxxxxx> L: linux-iio@xxxxxxxxxxxxxxx -- 2.34.1