[PATCH v4 0/5] iio: adc: ad4080: add support for AD4880 dual-channel ADC

From: Antoniu Miclaus

Date: Mon Feb 23 2026 - 11:26:12 EST


Add support for the AD4880, a dual-channel 20-bit 40MSPS SAR ADC from
the same family as AD4080.

The AD4880 has two independent ADC channels, each with its own SPI
configuration interface and LVDS data output. The driver uses
spi_new_ancillary_device() for the second channel's SPI and requires
two io-backend instances for the data interfaces.

This series includes:
- SPI core fix to allow ancillary devices to share parent's chip selects
- New devm_spi_new_ancillary_device() managed helper
- Refactored devm_iio_backend_get_by_index() for multi-channel backend lookup
- DT bindings update for AD4880
- Driver support for AD4880

Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/ad4880.pdf

Changes in v4:
- Add Fixes tag for the SPI ancillary CS conflict (patch 1)
- Collect Acked-by/Reviewed-by tags from Nuno Sá
- Drop redundant maxItems from io-backends in dt-bindings since
the items list already constrains the maximum (patch 4)
- Use spi_get_chipselect() instead of device_property_read_u32_array()
for ancillary device chip select lookup (patch 5)

Antoniu Miclaus (5):
spi: allow ancillary devices to share parent's chip selects
spi: add devm_spi_new_ancillary_device()
iio: backend: add devm_iio_backend_get_by_index()
dt-bindings: iio: adc: ad4080: add AD4880 support
iio: adc: ad4080: add support for AD4880 dual-channel ADC

.../bindings/iio/adc/adi,ad4080.yaml | 53 +++-
drivers/iio/adc/ad4080.c | 243 ++++++++++++++----
drivers/iio/industrialio-backend.c | 61 +++--
drivers/spi/spi.c | 69 ++++-
include/linux/iio/backend.h | 2 +
include/linux/spi/spi.h | 1 +
6 files changed, 350 insertions(+), 79 deletions(-)

--
2.43.0