Re: [PATCH v2 1/3] dt-bindings: iio: dac: Add AD5529R
From: Jonathan Cameron
Date: Fri May 08 2026 - 08:49:00 EST
On Fri, 8 May 2026 13:55:47 +0200
Janani Sunil <janani.sunil@xxxxxxxxxx> wrote:
> Devicetree bindings for AD5529R 16 channel 12/16 bit high voltage,
> buffered voltage output digital-to-analog converter (DAC) with an
> integrated precision reference.
>
> Signed-off-by: Janani Sunil <janani.sunil@xxxxxxxxxx>
> ---
> .../devicetree/bindings/iio/dac/adi,ad5529r.yaml | 96 ++++++++++++++++++++++
> MAINTAINERS | 7 ++
> 2 files changed, 103 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ad5529r.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ad5529r.yaml
> new file mode 100644
> index 000000000000..f531b4865b01
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/dac/adi,ad5529r.yaml
> @@ -0,0 +1,96 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/dac/adi,ad5529r.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Analog Devices AD5529R 16-Channel 12/16-bit High Voltage DAC
How is one device bother 12 and 16-bit? That sometimes happens for
ADCs where it is really reflecting oversampling or for device with hardware
FIFOs where storage space is saved by using lower bit rate. I'm not sure either
applies here.
> +
> +maintainers:
> + - Janani Sunil <janani.sunil@xxxxxxxxxx>
> +
> +description: |
> + The AD5529R is a 16-channel, 12-bit or 16-bit, high voltage, buffered voltage output
> + digital-to-analog converter (DAC) with an integrated precision reference.
> + The device operates from unipolar and bipolar supplies. It is guaranteed
> + monotonic and has built-in rail-to-rail output buffers that can source or
> + sink up to 25mA.
> +
> + Specifications:
> + * 16 independent 12-bit or 16-bit DAC channels
> + * Independently programmable output ranges: 0V to 5V, 0V to 10V, 0V to 20V,
> + 0V to 40V, ±5V, ±10V, ±15V, and ±20V
> + * The device supports SPI communication with Mode 0 and Mode 3.
> + * 4.096V precision reference, 12ppm/°C maximum
> + * Built-in function generation: Toggle, Sinusoidal Dither, and Ramp waveforms
Interesting - so this is a DDS, be it a simple one. +CC Rodrigo who has been
wrestling with one of those recently. Rodrigo, can you take a look at this
driver and see if it fits in the ABI etc you've been hammering out? Thanks!
> + * Multiplexer for output voltage, load current sense and die temperature
> +
> + Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/ad5529r.pdf
> +
> +properties:
> + compatible:
> + const: adi,ad5529r
> +
> + reg:
> + maxItems: 1
> +
> + spi-max-frequency:
> + maximum: 50000000
> +
> + reset-gpios:
> + maxItems: 1
> + description:
> + GPIO connected to the RESET pin. Active low. When asserted low,
> + performs a power-on reset and initializes the device to its default state.
> +
> + vdd-supply:
> + description: Digital power supply (typically 3.3V)
> +
> + avdd-supply:
> + description: Analog power supply (typically 5V)
> +
> + hvdd-supply:
> + description: High voltage positive supply (up to 40V for output range)
> +
> + hvss-supply:
> + description: High voltage negative supply (ground or negative voltage)
I don't mind doing it this way but in some similar cases where 0 is something that
can be considered the 'default' we've made the supply optional. What was
your reasoning for requiring it in this case?
dt-bindings should be as complete as we can make them - with that in mind...
There are some more interesting corners on this device the binding doesn't
currently cover such as mux_out pin. We'd normally do that by making the
driver potentially a client of an ADC
Easier though is !alarm which smells like an interrupt.
!clear probably a gpio. TG0-3 also GPIOs.
> +
> +required:
> + - compatible
> + - reg
> + - vdd-supply
> + - avdd-supply
> + - hvdd-supply
> + - hvss-supply