Re: [PATCH v7 0/6] iio: adc: ad9467: Support alternative backends

From: Jonathan Cameron

Date: Sat Feb 14 2026 - 10:57:28 EST


On Tue, 10 Feb 2026 10:53:33 +0000
Tomas Melin <tomas.melin@xxxxxxxxxxx> wrote:

> To facilitate backends with different set of features, add support
> for defining capabilities provided by the backend. These capabilities
> typically extend beyond a single operation and are therefore not
> directly linked to if a single function call is implemented or not.
> Furthermore, the capabilities determine if a certain set of operations
> should be attempted, or skipped by the frontend. This way
> the frontend driver can work with a minimalistic set of features and
> still have the device in fully functional state.
>
> Signed-off-by: Tomas Melin <tomas.melin@xxxxxxxxxxx>
Hi Tomas,

I made the two tweaks Andy suggested to patch 5 and applied the
whole series to my temporary IIO branch that gets pushed out as testing.
I'll be rebasing that on rc1 once available.

Jonathan

> ---
> Changes in v7:
> - Fix missing check for calibration for test mode off
> - Add commit to clean up device usage in probe
> - Add empty lines around calibration check
> - Link to v6: https://patch.msgid.link/20260205-b4-ad9467-optional-backend-v6-0-7ca20c40c59a@xxxxxxxxxxx
>
> Changes in v6:
> - Renamed CAP_ALWAYS_ON to CAP_ENABLE with inverted interpretation
> - Renamed CAP_BUFFERING to CAP_BUFFER
> - Added sd_adc_modulator capability commit (CAP_ENABLE)
> - minor fixups in code and docs
> - Link to v5: https://patch.msgid.link/20260130-b4-ad9467-optional-backend-v5-0-7da803ba7326@xxxxxxxxxxx
>
> Changes in v5:
> - As per recommendation, use guard for whole block
> - Typo fix in commit message and cover letter
> - Link to v4: https://lore.kernel.org/r/20260121-b4-ad9467-optional-backend-v4-0-18d2c0d450cc@xxxxxxxxxxx
>
> Changes in v4:
> - Readd CAP_BUFFERING and also add CAP_ALWAYS_ON to support backends
> that do not need explicit enable/disable
> - Don't mix checks for eopnotsupp and caps. Prefer capability checking
> also for caps that map to single operation
> - Move capability checking to top of call stack
> - Revise iio_backend_has_caps to use bool signature and fixup semantics
> - Amend documentation texts
> - Add capability checks for axi-dac
> - Drop two's complement patch from this series, already applied
> - Link to v3: https://lore.kernel.org/r/20260114-b4-ad9467-optional-backend-v3-0-d2c84979d010@xxxxxxxxxxx
>
> Changes in v3:
> - Reduce set of capabilities to only include calibration. The other
> ones propsed in V2 can be seen as subset of calibration, or single
> operation failing with opnotsupported
> - Rename backends checking function
> - Relocate caps field inside backend struct (pahole)
> - Add kernel-docs
> - Add capabilites for exisiting backend variants
> - Link to v2: https://lore.kernel.org/r/20260113-b4-ad9467-optional-backend-v2-0-0a27e7e72f41@xxxxxxxxxxx
>
> Changes in v2:
> - Added industrialio-backend capabilities feature
> - Removed acceptance for fully optional backend, instead require atleast
> minimalistic backend to exist
> - Switched to FIELD_MODIFY()
> - Fixed kernel test robot reported failure for missing bitfield.h
> - Link to v1: https://lore.kernel.org/r/20251216-b4-ad9467-optional-backend-v1-0-83e61531ef4d@xxxxxxxxxxx
>
> ---
> Tomas Melin (6):
> iio: industrialio-backend: support backend capabilities
> iio: adc: adi-axi-adc: define supported iio-backend capabilities
> iio: dac: adi-axi-dac: define supported iio-backend capabilities
> iio: adc: sd_adc_modulator: define supported iio-backend capabilities
> iio: adc: ad9467: simplify device pointer in probe
> iio: adc: ad9467: check for backend capabilities
>
> drivers/iio/adc/ad9467.c | 95 +++++++++++++++++++++++---------------
> drivers/iio/adc/adi-axi-adc.c | 5 ++
> drivers/iio/adc/sd_adc_modulator.c | 1 +
> drivers/iio/dac/adi-axi-dac.c | 2 +
> drivers/iio/industrialio-backend.c | 16 +++++++
> include/linux/iio/backend.h | 24 ++++++++++
> 6 files changed, 105 insertions(+), 38 deletions(-)
> ---
> base-commit: a7b10f0963c651a6406d958a5f64b9c5594f84da
> change-id: 20251215-b4-ad9467-optional-backend-23f1099ee4d7
>
> Best regards,
> --
> Tomas Melin <tomas.melin@xxxxxxxxxxx>
>
>