Re: [PATCH v2 1/3] dt-bindings: iio: dac: Add AD5529R

From: Nuno Sá

Date: Fri May 08 2026 - 09:57:03 EST


On Fri, May 08, 2026 at 01:48:43PM +0100, Jonathan Cameron wrote:
> 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!

Yes, this also crossed my mind. I only briefly looked into the datasheet
but this device seems to be similar to the ltc2688 for the toggle and
dither modes. Naturally ramp is something new.

Not really sure this one is a DDS as that typically means things like
NCOs. This device looks like a "plain" DAC.

So, devices like the one Rodrigo is working one combine DDS + DAC to do
things like synthesizing waveforms (in a very fast way).

We would need to do some auditing but I guess we tend to put above
devices in dac/ (because they do have a DAC internally) or even maybe in
frequency/ but maybe worth thinking about a new directory for those.

Having said the above the ABI might still matter for both devices.

- Nuno Sá
>
>
> > + * 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
>