[PATCH v5 0/4] Add support for AD5710R/AD5711R DAC

Kim Seer Paller posted 4 patches 3 weeks ago
Documentation/ABI/testing/sysfs-bus-iio            |   5 +
.../devicetree/bindings/iio/dac/adi,ad5710r.yaml   | 145 ++++++++++
MAINTAINERS                                        |   1 +
drivers/iio/dac/Kconfig                            |   1 +
drivers/iio/dac/ad3530r.c                          | 300 +++++++++++++++++++--
5 files changed, 429 insertions(+), 23 deletions(-)
[PATCH v5 0/4] Add support for AD5710R/AD5711R DAC
Posted by Kim Seer Paller 3 weeks ago
The AD5710R (16-bit) and AD5711R (12-bit) are 8-channel, low-power,
configurable current/voltage output DACs with an on-chip 2.5V reference.
Each channel can be independently configured as a voltage output
(0V to VREF or 0V to 2xVREF) or a current output (0mA to 50mA).

This series adds support for these parts:
 - ABI documentation for the high_z powerdown mode and the current-output
   powerdown attributes
 - device tree bindings for the AD5710R/AD5711R
 - basic IIO DAC driver, supporting per-channel voltage/current output
   selection, per-channel powerdown, software or hardware (LDAC) DAC
   updates, optional output range doubling, internal or external
   reference, and hardware reset (with a software-reset fallback).

Datasheet:
https://www.analog.com/media/en/technical-documentation/data-sheets/ad5711r-ad5710r.pdf

Signed-off-by: Kim Seer Paller <kimseer.paller@analog.com>
---
Changes in v5:
- ad3530r: make powerdown_mode read-only, dropping the _available list.
- ad3530r: rename the channel flag to configurable_ch_func.
- ad3530r: move the reg declaration into the child-node loop where it is
  used
- ad3530r: return -ECHRNG when the channel reg is out of range.
- ad3530r: update copyright year to 2025-2026.
- dt-bindings: spell out the adi,ch-func values and cite ad74413r.h.
- Link to v4: https://patch.msgid.link/20260829-iio-ad5710r-upstream-v4-0-8af3121c7d21@analog.com

Changes in v4:
- Use GENMASK() for the raw write bounds check.
- Add a comment explaining the AD5710R powerdown mode negation.
- Return -ENOENT instead of -ENODEV when no channels are found.
- Link to v3: https://patch.msgid.link/20260817-iio-ad5710r-upstream-v3-0-3a4bf7b9c78b@analog.com

Changes in v3:
- ad3530r: factor the op-mode register/mask computation into a helper
  shared by the powerdown access and channel parsing.
- ad3530r: pass iio_dev into setup/parse and set channels/num_channels
  directly, dropping the duplicated pointers in driver state.
- ad3530r: use regmap_test_bits() for the powerdown reads and drop the
  unused AD5710R_NUM_CHANNELS macro.
- ad3530r: split the file header comment into separate AD5710R/AD5711R lines.
- dt-bindings: drop the redundant items wrapper on channel reg and tidy
  the 2 x Vref wording.
- Link to v2: https://patch.msgid.link/20260721-iio-ad5710r-upstream-v2-0-324949dc72da@analog.com

Changes in v2:
- Drop the standalone ad5710r driver and fold AD5710R/AD5711R support
  into the existing ad3530r driver.
- Add a preparatory patch parameterizing the DAC resolution in ad3530r
  so the 12-/16-bit AD5711R/AD5710R can reuse the raw/scale paths.
- ABI: drop the "high_z" powerdown mode, which is a synonym of the
  existing "three_state" and use "three_state" instead.
- Link to v1: https://patch.msgid.link/20260716-iio-ad5710r-upstream-v1-0-e848a4bb701f@analog.com

To: Jonathan Cameron <jic23@kernel.org>
To: David Lechner <dlechner@baylibre.com>
To: Nuno Sá <nuno.sa@analog.com>
To: Andy Shevchenko <andy@kernel.org>
To: Michael Hennerich <Michael.Hennerich@analog.com>
To: Kim Seer Paller <kimseer.paller@analog.com>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
Cc: linux-iio@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux@analog.com
Cc: devicetree@vger.kernel.org

---
Kim Seer Paller (4):
      iio: ABI: Add DAC current powerdown attributes and 15kohm_to_gnd mode
      dt-bindings: iio: dac: add adi,ad5710r.yaml
      iio: dac: ad3530r: parameterize DAC resolution
      iio: dac: ad3530r: add support for AD5710R/AD5711R

 Documentation/ABI/testing/sysfs-bus-iio            |   5 +
 .../devicetree/bindings/iio/dac/adi,ad5710r.yaml   | 145 ++++++++++
 MAINTAINERS                                        |   1 +
 drivers/iio/dac/Kconfig                            |   1 +
 drivers/iio/dac/ad3530r.c                          | 300 +++++++++++++++++++--
 5 files changed, 429 insertions(+), 23 deletions(-)
---
base-commit: c9f54ead57939ebe76b9b76a9ef17b4331766b97
change-id: 20260716-iio-ad5710r-upstream-e41c298614c6

Best regards,
--  
Kim Seer Paller <kimseer.paller@analog.com>

Re: [PATCH v5 0/4] Add support for AD5710R/AD5711R DAC
Posted by Andy Shevchenko 2 weeks, 5 days ago
On Fri, Sep 04, 2026 at 04:35:23PM +0800, Kim Seer Paller wrote:
> The AD5710R (16-bit) and AD5711R (12-bit) are 8-channel, low-power,
> configurable current/voltage output DACs with an on-chip 2.5V reference.
> Each channel can be independently configured as a voltage output
> (0V to VREF or 0V to 2xVREF) or a current output (0mA to 50mA).
> 
> This series adds support for these parts:
>  - ABI documentation for the high_z powerdown mode and the current-output
>    powerdown attributes
>  - device tree bindings for the AD5710R/AD5711R
>  - basic IIO DAC driver, supporting per-channel voltage/current output
>    selection, per-channel powerdown, software or hardware (LDAC) DAC
>    updates, optional output range doubling, internal or external
>    reference, and hardware reset (with a software-reset fallback).

Reviewed-by: Andy Shevchenko <andy@kernel.org>

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH v5 0/4] Add support for AD5710R/AD5711R DAC
Posted by Jonathan Cameron 2 weeks, 5 days ago
On Fri, 4 Sep 2026 16:35:23 +0800
Kim Seer Paller <kimseer.paller@analog.com> wrote:

> The AD5710R (16-bit) and AD5711R (12-bit) are 8-channel, low-power,
> configurable current/voltage output DACs with an on-chip 2.5V reference.
> Each channel can be independently configured as a voltage output
> (0V to VREF or 0V to 2xVREF) or a current output (0mA to 50mA).
Series applied to the testing branch of iio.git.  If that all looks
good I'll push out in a few days as togreg and linux-next will pick it
up.

thanks

Jonathan
Re: [PATCH v5 0/4] Add support for AD5710R/AD5711R DAC
Posted by Andy Shevchenko 2 weeks, 5 days ago
On Sun, Sep 06, 2026 at 07:05:59PM +0100, Jonathan Cameron wrote:
> On Fri, 4 Sep 2026 16:35:23 +0800
> Kim Seer Paller <kimseer.paller@analog.com> wrote:
> 
> > The AD5710R (16-bit) and AD5711R (12-bit) are 8-channel, low-power,
> > configurable current/voltage output DACs with an on-chip 2.5V reference.
> > Each channel can be independently configured as a voltage output
> > (0V to VREF or 0V to 2xVREF) or a current output (0mA to 50mA).
> Series applied to the testing branch of iio.git.  If that all looks
> good I'll push out in a few days as togreg and linux-next will pick it
> up.

So, still time to pick-up tags!

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH v5 0/4] Add support for AD5710R/AD5711R DAC
Posted by Jonathan Cameron 2 weeks, 2 days ago
On Mon, 7 Sep 2026 07:30:36 +0300
Andy Shevchenko <andriy.shevchenko@intel.com> wrote:

> On Sun, Sep 06, 2026 at 07:05:59PM +0100, Jonathan Cameron wrote:
> > On Fri, 4 Sep 2026 16:35:23 +0800
> > Kim Seer Paller <kimseer.paller@analog.com> wrote:
> >   
> > > The AD5710R (16-bit) and AD5711R (12-bit) are 8-channel, low-power,
> > > configurable current/voltage output DACs with an on-chip 2.5V reference.
> > > Each channel can be independently configured as a voltage output
> > > (0V to VREF or 0V to 2xVREF) or a current output (0mA to 50mA).  
> > Series applied to the testing branch of iio.git.  If that all looks
> > good I'll push out in a few days as togreg and linux-next will pick it
> > up.  
> 
> So, still time to pick-up tags!
Yup and done so.

Thanks,

J
>