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

Antoniu Miclaus posted 4 patches 1 month ago
There is a newer version of this series
.../bindings/iio/adc/adi,ad4080.yaml          |  53 +++-
drivers/iio/adc/ad4080.c                      | 230 ++++++++++++++----
drivers/iio/industrialio-backend.c            |  62 +++--
include/linux/iio/backend.h                   |   2 +
4 files changed, 278 insertions(+), 69 deletions(-)
[PATCH v5 0/4] iio: adc: ad4080: add support for AD4880 dual-channel ADC
Posted by Antoniu Miclaus 1 month ago
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:
  - Use __free(fwnode_handle) for automatic cleanup in iio backend
  - 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 v5:
  - Drop the SPI patches (already applied)
  - Split the __free(fwnode_handle) cleanup into a separate patch (patch 1)
  - Fix "Get's" -> "Gets" typo in devm_iio_backend_get_by_index()
    kernel-doc (patch 2)
  - Declare loop variables in for-loop initializers (patch 4)
  - Drop redundant num_channels > 1 guard around ancillary device
    setup loop (patch 4)

Antoniu Miclaus (4):
  iio: backend: use __free(fwnode_handle) for automatic cleanup
  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                      | 230 ++++++++++++++----
 drivers/iio/industrialio-backend.c            |  62 +++--
 include/linux/iio/backend.h                   |   2 +
 4 files changed, 278 insertions(+), 69 deletions(-)

-- 
2.43.0
Re: [PATCH v5 0/4] iio: adc: ad4080: add support for AD4880 dual-channel ADC
Posted by Jonathan Cameron 3 weeks, 5 days ago
On Thu, 5 Mar 2026 13:37:26 +0200
Antoniu Miclaus <antoniu.miclaus@analog.com> wrote:

> 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:
>   - Use __free(fwnode_handle) for automatic cleanup in iio backend
>   - 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

Series applied with that ordering tweak in the new backend function patch.
Note that this crossed with a new device being added to the driver
and so it took a fair bit of conflict resolution. Please check I didn't mess
it up. 

Applied and pushed out as testing (subject to exiting a tunnel under London ;)

Thanks,

Jonathan

> 
> Changes in v5:
>   - Drop the SPI patches (already applied)
>   - Split the __free(fwnode_handle) cleanup into a separate patch (patch 1)
>   - Fix "Get's" -> "Gets" typo in devm_iio_backend_get_by_index()
>     kernel-doc (patch 2)
>   - Declare loop variables in for-loop initializers (patch 4)
>   - Drop redundant num_channels > 1 guard around ancillary device
>     setup loop (patch 4)
> 
> Antoniu Miclaus (4):
>   iio: backend: use __free(fwnode_handle) for automatic cleanup
>   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                      | 230 ++++++++++++++----
>  drivers/iio/industrialio-backend.c            |  62 +++--
>  include/linux/iio/backend.h                   |   2 +
>  4 files changed, 278 insertions(+), 69 deletions(-)
>