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

Kim Seer Paller posted 4 patches 1 month, 1 week ago
There is a newer version of this series
Documentation/ABI/testing/sysfs-bus-iio            |   5 +
.../devicetree/bindings/iio/dac/adi,ad5710r.yaml   | 143 ++++++++++
MAINTAINERS                                        |   1 +
drivers/iio/dac/Kconfig                            |   1 +
drivers/iio/dac/ad3530r.c                          | 302 +++++++++++++++++++--
5 files changed, 430 insertions(+), 22 deletions(-)
[PATCH v3 0/4] Add support for AD5710R/AD5711R DAC
Posted by Kim Seer Paller 1 month, 1 week 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 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   | 143 ++++++++++
 MAINTAINERS                                        |   1 +
 drivers/iio/dac/Kconfig                            |   1 +
 drivers/iio/dac/ad3530r.c                          | 302 +++++++++++++++++++--
 5 files changed, 430 insertions(+), 22 deletions(-)
---
base-commit: fc69c7ed31f2c36d0232a6d04750acec8f9e0c31
change-id: 20260716-iio-ad5710r-upstream-e41c298614c6

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

Re: [PATCH v3 0/4] Add support for AD5710R/AD5711R DAC
Posted by Jonathan Cameron 1 month ago
On Mon, 17 Aug 2026 14:37:10 +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).
> 
> 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>

I took another look and don't have anything to add.
If Andy hadn't left you with some choices (and I don't care either way) then
might have just tweaked them whilst applying.  Still need an Ack for the
dt-binding anyway so I can't pick them up today.  I'd suggest a v4 resolving
those opens in Andy's feedback.

Also, Sashiko got a bit confused in places on this one. I took a look and
don't think we care about any of the stuff it has raised, some of which
is incorrect anyway.

Jonathan

> ---
> 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   | 143 ++++++++++
>  MAINTAINERS                                        |   1 +
>  drivers/iio/dac/Kconfig                            |   1 +
>  drivers/iio/dac/ad3530r.c                          | 302 +++++++++++++++++++--
>  5 files changed, 430 insertions(+), 22 deletions(-)
> ---
> base-commit: fc69c7ed31f2c36d0232a6d04750acec8f9e0c31
> change-id: 20260716-iio-ad5710r-upstream-e41c298614c6
> 
> Best regards,
> --  
> Kim Seer Paller <kimseer.paller@analog.com>
>