This adds the bindings documentation for the 14-bit
High Voltage, High Current, Waveform Generator
Digital-to-Analog converter.
Signed-off-by: Mariel Tinaco <Mariel.Tinaco@analog.com>
---
.../bindings/iio/dac/adi,ad8460.yaml | 154 ++++++++++++++++++
MAINTAINERS | 7 +
2 files changed, 161 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad8460.yaml
diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ad8460.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ad8460.yaml
new file mode 100644
index 000000000..6a7031d0d
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/dac/adi,ad8460.yaml
@@ -0,0 +1,154 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2024 Analog Devices Inc.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/dac/adi,ad8460.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AD8460 DAC
+
+maintainers:
+ - Mariel Tinaco <mariel.tinaco@analog.com>
+
+description: |
+ Analog Devices AD8460 110 V High Voltage, 1 A High Current,
+ Arbitrary Waveform Generator with Integrated 14-Bit High Speed DAC
+ https://www.analog.com/media/en/technical-documentation/data-sheets/ad8460.pdf
+
+properties:
+ compatible:
+ enum:
+ - adi,ad8460
+
+ reg:
+ maxItems: 1
+
+ dmas:
+ maxItems: 1
+
+ dma-names:
+ items:
+ - const: tx
+
+ spi-max-frequency:
+ maximum: 20000000
+
+ hvcc-supply:
+ description: Positive high voltage power supply line
+
+ hvee-supply:
+ description: Negative high voltage power supply line
+
+ vcc-5v-supply:
+ description: Low voltage power supply
+
+ vref-5v-supply:
+ description: Reference voltage for analog low voltage and protection threshold DACs.
+
+ dvdd-3p3v-supply:
+ description: Digital supply bypass
+
+ avdd-3p3v-supply:
+ description: Analog supply bypass
+
+ refio-1p2v-supply:
+ description: Drive voltage in the range of 1.2V maximum to as low as
+ low as 0.12V through the REF_IO pin to adjust full scale output span
+
+ clocks:
+ description: The clock for the DAC. This is the sync clock
+
+ adi,rset-ohms:
+ description: Specify value of external resistor connected to FS_ADJ pin
+ to establish internal HVDAC's reference current I_REF
+ default: 2000
+ minimum: 2000
+ maximum: 20000
+
+ adi,range-microvolt:
+ description: |
+ Voltage output range specified as <minimum, maximum>
+ oneOf:
+ - items:
+ - const: -40000000
+ - const: 40000000
+
+ adi,range-microamp:
+ description: |
+ Current output range specified as <minimum, maximum>
+ oneOf:
+ - items:
+ - const: 0
+ - const: 50000
+ - items:
+ - const: -50000
+ - const: 50000
+
+ adi,temp-max-millicelsius:
+ description: Overtemperature threshold
+ default: 50000
+ minimum: 20000
+ maximum: 150000
+
+ sdn-reset-gpios:
+ description: GPIO spec for the SHUTDOWN RESET pin. As the line is active high,
+ it should be marked GPIO_ACTIVE_HIGH.
+ maxItems: 1
+
+ reset-gpios:
+ description: GPIO spec for the RESET pin. As the line is active low, it
+ should be marked GPIO_ACTIVE_LOW.
+ maxItems: 1
+
+ sdn-io-gpios:
+ description: GPIO spec for the SHUTDOWN INPUT/OUTPUT pin. As the line is
+ active high, it should be marked GPIO_ACTIVE_HIGH.
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - clocks
+
+allOf:
+ - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dac@0 {
+ compatible = "adi,ad8460";
+ reg = <0>;
+ spi-max-frequency = <8000000>;
+ adi,rset-ohms = <2000>;
+ adi,range-microvolt = <(-40000000) 40000000>;
+ adi,range-microamp = <0 50000>;
+ adi,temp-max-millicelsius = <50000>;
+
+ dmas = <&tx_dma 0>;
+ dma-names = "tx";
+
+ sdn-reset-gpios = <&gpio 86 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio 91 GPIO_ACTIVE_LOW>;
+ sdn-io-gpios = <&gpio 88 GPIO_ACTIVE_HIGH>;
+
+ clocks = <&sync_ext_clk>;
+
+ hvcc-supply = <&hvcc>;
+ hvee-supply = <&hvee>;
+ vcc-5v-supply = <&vcc_5>;
+ vref-5v-supply = <&vref_5>;
+ dvdd-3p3v-supply = <&dvdd_3_3>;
+ avdd-3p3v-supply = <&avdd_3_3>;
+ refio-1p2v-supply = <&refio_1_2>;
+ };
+ };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 758c202ec..dae93df2a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1234,6 +1234,13 @@ W: https://ez.analog.com/linux-software-drivers
F: Documentation/devicetree/bindings/iio/adc/adi,ad7780.yaml
F: drivers/iio/adc/ad7780.c
+ANALOG DEVICES INC AD8460 DRIVER
+M: Mariel Tinaco <Mariel.Tinaco@analog.com>
+L: linux-iio@vger.kernel.org
+S: Supported
+W: https://ez.analog.com/linux-software-drivers
+F: Documentation/devicetree/bindings/iio/dac/adi,ad8460.yaml
+
ANALOG DEVICES INC AD9739a DRIVER
M: Nuno Sa <nuno.sa@analog.com>
M: Dragos Bogdan <dragos.bogdan@analog.com>
--
2.34.1
On Tue, 30 Jul 2024 11:05:08 +0800 Mariel Tinaco <Mariel.Tinaco@analog.com> wrote: > This adds the bindings documentation for the 14-bit > High Voltage, High Current, Waveform Generator > Digital-to-Analog converter. > A few additions to Krzysztof's much more detailed review. Wrap patch descriptions to 75 chars. not sub 55. > Signed-off-by: Mariel Tinaco <Mariel.Tinaco@analog.com> > + > + adi,rset-ohms: Please rename this as rset sounds like reset to me. Not sure what a good name is however! > + description: Specify value of external resistor connected to FS_ADJ pin > + to establish internal HVDAC's reference current I_REF > + default: 2000 > + minimum: 2000 > + maximum: 20000 > +
On 30/07/2024 05:05, Mariel Tinaco wrote:
> This adds the bindings documentation for the 14-bit
> High Voltage, High Current, Waveform Generator
> Digital-to-Analog converter.
>
> Signed-off-by: Mariel Tinaco <Mariel.Tinaco@analog.com>
> +
> + refio-1p2v-supply:
> + description: Drive voltage in the range of 1.2V maximum to as low as
> + low as 0.12V through the REF_IO pin to adjust full scale output span
> +
> + clocks:
maxItems: 1
and drop description (or use items: - description, but then do not
repeat redundant parts)
> + description: The clock for the DAC. This is the sync clock
> +
> + adi,rset-ohms:
> + description: Specify value of external resistor connected to FS_ADJ pin
> + to establish internal HVDAC's reference current I_REF
> + default: 2000
> + minimum: 2000
> + maximum: 20000
> +
> + adi,range-microvolt:
> + description: |
> + Voltage output range specified as <minimum, maximum>
> + oneOf:
Not an oneOf.
> + - items:
> + - const: -40000000
> + - const: 40000000
Why do you need this property if this cannot be anything else? Drop.
> +
> + adi,range-microamp:
> + description: |
Do not need '|' unless you need to preserve formatting.
> + Current output range specified as <minimum, maximum>
> + oneOf:
> + - items:
> + - const: 0
> + - const: 50000
> + - items:
> + - const: -50000
> + - const: 50000
> +
> + adi,temp-max-millicelsius:
> + description: Overtemperature threshold
> + default: 50000
> + minimum: 20000
> + maximum: 150000
> +
> + sdn-reset-gpios:
reset-gpios or shutdown-gpios or anything from gpio-consumer-common
which is not deprecated.
> + description: GPIO spec for the SHUTDOWN RESET pin. As the line is active high,
Do not repeat the obvious or redundant parts. There is no point in
saying that "GPIO spec is a GPIO spec for ...". It cannot be anything
else than GPIO spec. Instead say something useful. It's confusing to
have two reset pins, so explain what is the purpose of this pin.
> + it should be marked GPIO_ACTIVE_HIGH.
Drop last part "it should be marked", because it is clearly incorrect.
Different board designs can have it differently.
> + maxItems: 1
> +
> + reset-gpios:
> + description: GPIO spec for the RESET pin. As the line is active low, it
> + should be marked GPIO_ACTIVE_LOW.
Again, marking it always as active low is not correct. It is enough to
say that line is active low.
> + maxItems: 1
> +
> + sdn-io-gpios:
> + description: GPIO spec for the SHUTDOWN INPUT/OUTPUT pin. As the line is
> + active high, it should be marked GPIO_ACTIVE_HIGH.
What's the purpose?
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> +
> +allOf:
> + - $ref: /schemas/spi/spi-peripheral-props.yaml#
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> +
> + spi {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + dac@0 {
> + compatible = "adi,ad8460";
> + reg = <0>;
> + spi-max-frequency = <8000000>;
> + adi,rset-ohms = <2000>;
> + adi,range-microvolt = <(-40000000) 40000000>;
> + adi,range-microamp = <0 50000>;
> + adi,temp-max-millicelsius = <50000>;
Custom properties go to the end. See DTS coding style.
> +
> + dmas = <&tx_dma 0>;
> + dma-names = "tx";
Best regards,
Krzysztof
© 2016 - 2025 Red Hat, Inc.