Re: [PATCH v9 0/2] Add support for AD5706R DAC
From: Jonathan Cameron
Date: Mon Apr 27 2026 - 06:23:07 EST
On Mon, 27 Apr 2026 14:23:15 +0800
Alexis Czezar Torreno <alexisczezar.torreno@xxxxxxxxxx> wrote:
> This series adds support for the Analog Devices AD5706R, a 4-channel
> 16-bit current output digital-to-analog converter with SPI interface.
>
> This initial driver provides basic DAC functionality through standard
> IIO interfaces.
>
> Datasheet: https://www.analog.com/en/products/ad5706r.html
Doesn't matter as no need to have tags in cover letter anyway, but that's
a tag so no line break before the SoB.
>
> Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@xxxxxxxxxx>
Applied to the testing branch of iio.git. I'll push that out as togreg
in a day or two once 0-day has had a play with it.
thanks,
Jonathan
> ---
> Changes in v9:
> - Kconfig: changed REGMAP_SPI to REGMAP
> - updated cover letter and driver commit message
> - Link to v8: https://lore.kernel.org/r/20260417-dev_ad5706r-v8-0-ef87dff62b57@xxxxxxxxxx
>
> Changes in v8:
> - driver:
> - changed DAC_CODE from BIT(16) to GENMASK(15,0)
> - removed defines for single/multi byte, replaced with number
> - adjusted regmap_write to use if/else similar to read()
> - reverted in_range back to open code equivalent, removed minmax.h
> - Link to v7: https://lore.kernel.org/r/20260410-dev_ad5706r-v7-0-af93a4caa186@xxxxxxxxxx
>
> Changes in v7:
> - driver:
> - Moved/added size validation before data access in write()/read()
> - Link to v6: https://lore.kernel.org/r/20260410-dev_ad5706r-v6-0-f3fda5921fe4@xxxxxxxxxx
>
> Changes in v6:
> - driver:
> - Added size validation in regmap_write()
> - Used &st->tx_buf[0] consistently in _be32/be16 calls
> - Added missing indent in AD5706R_CHAN
> - Link to v5: https://lore.kernel.org/r/20260407-dev_ad5706r-v5-0-a4c7737b6ae9@xxxxxxxxxx
>
> Changes in v5:
> - dt-bindings:
> - Changed out-en-gpios to enable-gpios
> - driver:
> - Kconfig: Added select REGMAP_SPI
> - Headers: Removed device.h, errno.h, string.h; added dev_printk.h
> - Use IIO_DMA_MINALIGN instead of ARCH_DMA_MINALIGN
> - Replaced memcpy/memset with put_unaligned_be* for consistency
> - Added struct device *dev shorthand in probe()
> - other minor style edits
> - Link to v4: https://lore.kernel.org/r/20260401-dev_ad5706r-v4-0-a785184a8d53@xxxxxxxxxx
>
> Changes in v4:
> - dt-bindings:
> - Reverted pwm and gpio entries.
> - Added missing power supply properties
> - Clocks not added back as they were driver specific, not device
> properties
> - driver:
> - Added missing includes
> - Converted to use regmap with custom SPI bus implementation.
> spi_write_then_read not applied as suggested, prevents future
> need to change SPI speed
> - removed driver speciifc mutex/guards in favor of regmap internal
> locking
> - Minor style cleanups
> - Link to v3: https://lore.kernel.org/r/20260318-dev_ad5706r-v3-0-5d078f41e988@xxxxxxxxxx
>
> Changes in v3:
> - Added MAINTAINERS entry, files added on each patch
> - dt-bindings:
> - Added allOf and ref to spi-peripheral-props.yaml
> - Changed additionalProperties to unevaluatedProperties
> - Added avdd-supply property and added it to required
> - driver:
> - Removed redundant includes, added respective includes of APIs used
> - Simplified bit manipulation in SPI read/write, used feedback from v2
> - Fixed inconsistent trailing commas in device ID tables
> - Removed zero initialization in spi_device_id
> - Link to v2: https://lore.kernel.org/r/20260311-dev_ad5706r-v2-0-f367063dbd1b@xxxxxxxxxx
>
> Changes in v2:
> - Stripped driver down to basic DAC functionality (read/write raw,
> read-only scale) as suggested.
> - Removed PWM (LDAC), GPIO (reset/shutdown), clock generator,
> SPI engine frequency switching, debugfs streaming, and all
> custom ext_info sysfs attributes
> - Removed regmap, IIO_BUFFER, and iio/sysfs.h dependencies
> - Simplified SPI read/write to use standard spi_sync_transfer
> without clock mode logic
> - Scale reports default 50mA range as read-only using
> IIO_VAL_FRACTIONAL_LOG2; writable range selection deferred
> to future follow-up series
> - Simplified DT binding to only require compatible, reg, and
> spi-max-frequency
> - Link to v1: https://lore.kernel.org/r/20260220-dev_ad5706r-v1-0-7253bbd74889@xxxxxxxxxx
>
> ---
> Alexis Czezar Torreno (2):
> dt-bindings: iio: dac: Add ADI AD5706R
> iio: dac: ad5706r: Add support for AD5706R DAC
>
> .../devicetree/bindings/iio/dac/adi,ad5706r.yaml | 105 +++++++++
> MAINTAINERS | 8 +
> drivers/iio/dac/Kconfig | 11 +
> drivers/iio/dac/Makefile | 1 +
> drivers/iio/dac/ad5706r.c | 253 +++++++++++++++++++++
> 5 files changed, 378 insertions(+)
> ---
> base-commit: 3674f3ca92730d9a07b42b311f1337d83c4d5605
> change-id: 20260220-dev_ad5706r-2105e1dd29ab
>
> Best regards,