[PATCH v5 0/4] Add support for AD5710R/AD5711R DAC
From: Kim Seer Paller <kimseer.paller@analog.com>
Date: 2026-09-04 08:36:07
Also in:
linux-iio, lkml
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 [off-list ref]