Add documentation for ltc2672.
Co-developed-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Kim Seer Paller <kimseer.paller@analog.com>
---
.../bindings/iio/dac/adi,ltc2672.yaml | 158 ++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 159 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ltc2672.yaml
diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ltc2672.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ltc2672.yaml
new file mode 100644
index 000000000000..0ccf53fb22cc
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/dac/adi,ltc2672.yaml
@@ -0,0 +1,158 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/dac/adi,ltc2672.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices LTC2672 DAC
+
+maintainers:
+ - Michael Hennerich <michael.hennerich@analog.com>
+ - Kim Seer Paller <kimseer.paller@analog.com>
+
+description: |
+ Analog Devices LTC2672 5 channel, 12-/16-Bit, 300mA DAC
+ https://www.analog.com/media/en/technical-documentation/data-sheets/ltc2672.pdf
+
+properties:
+ compatible:
+ enum:
+ - adi,ltc2672
+
+ reg:
+ maxItems: 1
+
+ spi-max-frequency:
+ maximum: 50000000
+
+ vcc-supply:
+ description: Analog Supply Voltage Input.
+
+ v-neg-supply:
+ description: Negative Supply Voltage Input.
+
+ vdd0-supply:
+ description: Positive Supply Voltage Input for DAC OUT0.
+
+ vdd1-supply:
+ description: Positive Supply Voltage Input for DAC OUT1.
+
+ vdd2-supply:
+ description: Positive Supply Voltage Input for DAC OUT2.
+
+ vdd3-supply:
+ description: Positive Supply Voltage Input for DAC OUT3.
+
+ vdd4-supply:
+ description: Positive Supply Voltage Input for DAC OUT4.
+
+ iovcc-supply:
+ description: Digital Input/Output Supply Voltage.
+
+ ref-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.
+
+ reset-gpios:
+ description:
+ Active Low Asynchronous Clear Input. A logic low at this level triggered
+ input clears the device to the default reset code and output range, which
+ is zero-scale with the outputs off. The control registers are cleared to
+ zero.
+ maxItems: 1
+
+ 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
+
+ io-channels:
+ description:
+ ADC channel to monitor voltages and currents at the MUX pin.
+ maxItems: 1
+
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+patternProperties:
+ "^channel@[0-4]$":
+ type: object
+ additionalProperties: false
+
+ properties:
+ reg:
+ description: The channel number representing the DAC output channel.
+ 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
+
+ adi,output-range-microamp:
+ description: Specify the channel output full scale range.
+ enum: [3125000, 6250000, 12500000, 25000000, 50000000, 100000000,
+ 200000000, 300000000]
+
+ required:
+ - reg
+ - adi,output-range-microamp
+
+required:
+ - compatible
+ - reg
+ - spi-max-frequency
+ - vcc-supply
+ - iovcc-supply
+ - v-neg-supply
+
+allOf:
+ - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+additionalProperties: false
+
+examples:
+ - |
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ dac@0 {
+ compatible = "adi,ltc2672";
+ reg = <0>;
+ spi-max-frequency = <10000000>;
+
+ vcc-supply = <&vcc>;
+ iovcc-supply = <&vcc>;
+ ref-supply = <&vref>;
+ v-neg-supply = <&vneg>;
+
+ io-channels = <&adc 0>;
+
+ #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 849800d9cbf7..f4a5b5bc8ccc 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13081,6 +13081,7 @@ L: linux-iio@vger.kernel.org
S: Supported
W: https://ez.analog.com/linux-software-drivers
F: Documentation/devicetree/bindings/iio/dac/adi,ltc2664.yaml
+F: Documentation/devicetree/bindings/iio/dac/adi,ltc2672.yaml
LTC2688 IIO DAC DRIVER
M: Nuno Sá <nuno.sa@analog.com>
--
2.34.1
On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote: > +patternProperties: > + "^channel@[0-4]$": > + type: object > + additionalProperties: false > + > + properties: > + reg: > + description: The channel number representing the DAC output channel. > + 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 > + > + adi,output-range-microamp: > + description: Specify the channel output full scale range. > + enum: [3125000, 6250000, 12500000, 25000000, 50000000, 100000000, > + 200000000, 300000000] IIO folks, is this sort of thing common/likely to exist on other DACs?
On Wed, 19 Jun 2024 18:57:59 +0100 Conor Dooley <conor@kernel.org> wrote: > On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote: > > +patternProperties: > > + "^channel@[0-4]$": > > + type: object > > + additionalProperties: false > > + > > + properties: > > + reg: > > + description: The channel number representing the DAC output channel. > > + 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 > > + > > + adi,output-range-microamp: > > + description: Specify the channel output full scale range. > > + enum: [3125000, 6250000, 12500000, 25000000, 50000000, 100000000, > > + 200000000, 300000000] > > IIO folks, is this sort of thing common/likely to exist on other DACs? Fair point. It is probably time to conclude this is at least moderately common and generalize it - which will need a dac.yaml similar to the one we have for ADCs in adc/adc.yaml. That will need to make this a per channel node property (same as the adc ones). I'd also expect it to always take 2 values. In many cases the first will be 0 but that is fine. Jonathan
On Sun, Jun 23, 2024 at 02:43:39PM +0100, Jonathan Cameron wrote: > On Wed, 19 Jun 2024 18:57:59 +0100 > Conor Dooley <conor@kernel.org> wrote: > > > On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote: > > > +patternProperties: > > > + "^channel@[0-4]$": > > > + type: object > > > + additionalProperties: false > > > + > > > + properties: > > > + reg: > > > + description: The channel number representing the DAC output channel. > > > + 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 > > > + > > > + adi,output-range-microamp: > > > + description: Specify the channel output full scale range. > > > + enum: [3125000, 6250000, 12500000, 25000000, 50000000, 100000000, > > > + 200000000, 300000000] > > > > IIO folks, is this sort of thing common/likely to exist on other DACs? > > Fair point. It is probably time to conclude this is at least moderately common > and generalize it - which will need a dac.yaml similar to the one we have for > ADCs in adc/adc.yaml. That will need to make this a per channel node > property (same as the adc ones). Looks like it is already per channel node? > I'd also expect it to always take 2 values. In many cases the first will be 0 > but that is fine. What would that first value represent?
On Sun, 23 Jun 2024 15:03:47 +0100 Conor Dooley <conor@kernel.org> wrote: > On Sun, Jun 23, 2024 at 02:43:39PM +0100, Jonathan Cameron wrote: > > On Wed, 19 Jun 2024 18:57:59 +0100 > > Conor Dooley <conor@kernel.org> wrote: > > > > > On Wed, Jun 19, 2024 at 02:49:03PM +0800, Kim Seer Paller wrote: > > > > +patternProperties: > > > > + "^channel@[0-4]$": > > > > + type: object > > > > + additionalProperties: false > > > > + > > > > + properties: > > > > + reg: > > > > + description: The channel number representing the DAC output channel. > > > > + 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 > > > > + > > > > + adi,output-range-microamp: > > > > + description: Specify the channel output full scale range. > > > > + enum: [3125000, 6250000, 12500000, 25000000, 50000000, 100000000, > > > > + 200000000, 300000000] > > > > > > IIO folks, is this sort of thing common/likely to exist on other DACs? > > > > Fair point. It is probably time to conclude this is at least moderately common > > and generalize it - which will need a dac.yaml similar to the one we have for > > ADCs in adc/adc.yaml. That will need to make this a per channel node > > property (same as the adc ones). > > Looks like it is already per channel node? Absolutely - but that is a bit fiddlier to do in a generic file so I just meant make sure to enforce that in a similar fashion to adc.yaml. > > > I'd also expect it to always take 2 values. In many cases the first will be 0 > > but that is fine. > > What would that first value represent? Hmm. For voltage equivalent they are often not zero based so it would be the negative. I have no idea if there are current dacs that act as both sources and sinks... So maybe voltage one which should be done in this series as well needs to be 2 value and current variant maybe not. Jonathan
© 2016 - 2026 Red Hat, Inc.