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

Tomas Melin posted 6 patches 14 hours ago
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(-)
[PATCH v7 0/6] iio: adc: ad9467: Support alternative backends
Posted by Tomas Melin 14 hours ago
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@vaisala.com>
---
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@vaisala.com

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@vaisala.com

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@vaisala.com

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@vaisala.com

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@vaisala.com

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@vaisala.com

---
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@vaisala.com>