Re: [PATCH v8 0/8] New features for the AD5686 IIO driver

From: Jonathan Cameron

Date: Sat Jul 18 2026 - 20:15:26 EST


On Thu, 16 Jul 2026 13:14:16 +0100
Rodrigo Alencar via B4 Relay <devnull+rodrigo.alencar.analog.com@xxxxxxxxxx> wrote:

> This is the second series of three on updating the AD5686 driver.
>
> Initially, a big patch series was sent:
> https://lore.kernel.org/r/20260422-ad5313r-iio-support-v1-0-ed7dca001d1b@xxxxxxxxxx
>
> Then, the first patch series added fixes and cleanups:
> https://lore.kernel.org/linux-iio/20260524-ad5686-fixes-v7-0-b6bf395d08bd@xxxxxxxxxx/
>
> This one is introducing new features:
> - Consume optional reset and correct power supplies;
> - LDAC GPIO handling (active-low, held low when unused);
> - SPI bus sync() implementation for batching multiple transfers;
> - Triggered buffer support, leveraging LDAC and sync() to flush
> all channel writes atomically;
> - Gain control support through the scale property.
>
> Signed-off-by: Rodrigo Alencar <rodrigo.alencar@xxxxxxxxxx>
Applied 2-8 but with tweaks as called out. Pushed out as testing, please
check I didn't mess it up.

For 1, hopefully I'll get some time this week to put out a set adding
the defensive check in the i2c layer. That API is just too weird
today for my liking.

Jonathan

> ---
> Changes in v8:
> - Add nul-check for chip_info match data.
> - Update comments/commit text and other minor changes.
> - Link to v7: https://lore.kernel.org/r/20260710-ad5686-new-features-v7-0-1bcc8c280e4d@xxxxxxxxxx
>
> Changes in v7:
> - Fix return value check of i2c_transfer().
> - Amend refactoring of command/data macros.
> - Link to v6: https://lore.kernel.org/r/20260705-ad5686-new-features-v6-0-269594c7aae5@xxxxxxxxxx
>
> Changes in v6:
> - Refactor command/data macros in favor of FIELD_PREP()
> - Link to v5: https://lore.kernel.org/r/20260628-ad5686-new-features-v5-0-577caadbf7c0@xxxxxxxxxx
>
> Changes in v5:
> - Create auxiliary handler for the triggered buffer.
> - Do not allow modification of double_scale in case gain_gpio is not set.
> - Link to v4: https://lore.kernel.org/r/20260623-ad5686-new-features-v4-0-28962a57db0f@xxxxxxxxxx
>
> Changes in v4:
> - Replace anyof+const for enum in dt-bindings.
> - Address some sashiko's comments.
> - Use guard(mutex)() in trigger handler and other misc changes.
> - Link to v3: https://lore.kernel.org/r/20260616-ad5686-new-features-v3-0-f829fb7e9262@xxxxxxxxxx
>
> Changes in v3:
> - Add range-double property.
> - Acquire reset control after power-up delay.
> - Include cleanup.h and use guard(mutex)() in read_raw().
> - Link to v2: https://lore.kernel.org/r/20260609-ad5686-new-features-v2-0-70b423f5c76d@xxxxxxxxxx
>
> Changes in v2:
> - Get reset control deasserted.
> - Update entire spi_transfer struct rather than individual fields.
> - Replace udelay() for fsleep() in probe().
> - Minor changes addressing further feedback.
> - Link to v1: https://lore.kernel.org/r/20260602-ad5686-new-features-v1-0-691e01883d27@xxxxxxxxxx
>
> ---
> Rodrigo Alencar (8):
> iio: dac: ad5696: properly check i2c_transfer() return value
> iio: dac: ad5686: missing NULL check on match data
> iio: dac: ad5686: refactor command/data macros
> iio: dac: ad5686: introduce sync operation
> iio: dac: ad5686: implement new sync() op for the spi bus
> iio: dac: ad5686: read_raw/write_raw: use guard(mutex)()
> iio: dac: ad5686: add triggered buffer support
> iio: dac: ad5686: add gain control support
>
> drivers/iio/dac/Kconfig | 2 +
> drivers/iio/dac/ad5686-spi.c | 142 +++++++++++++++++++++-------
> drivers/iio/dac/ad5686.c | 217 +++++++++++++++++++++++++++++++++++++++----
> drivers/iio/dac/ad5686.h | 52 ++++++++---
> drivers/iio/dac/ad5696-i2c.c | 18 ++--
> 5 files changed, 355 insertions(+), 76 deletions(-)
> ---
> base-commit: 4c0ecdbdc0d87570f74e656e21d56bae1ab6a8f1
> change-id: 20260602-ad5686-new-features-e116c04bddb9
>
> Best regards,