On Thu, 16 Jul 2026 13:14:16 +0100 Rodrigo Alencar via B4 Relay <[email protected]> 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/[email protected] > > Then, the first patch series added fixes and cleanups: > https://lore.kernel.org/linux-iio/[email protected]/ > > 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 <[email protected]> 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/[email protected] > > Changes in v7: > - Fix return value check of i2c_transfer(). > - Amend refactoring of command/data macros. > - Link to v6: > https://lore.kernel.org/r/[email protected] > > Changes in v6: > - Refactor command/data macros in favor of FIELD_PREP() > - Link to v5: > https://lore.kernel.org/r/[email protected] > > 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/[email protected] > > 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/[email protected] > > 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/[email protected] > > 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/[email protected] > > --- > 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,

