Linux IIO development
 help / color / mirror / Atom feed
* [PATCH v7 0/6] iio: adc: ad9467: Support alternative backends
@ 2026-02-10 10:53 Tomas Melin
  2026-02-10 10:53 ` [PATCH v7 1/6] iio: industrialio-backend: support backend capabilities Tomas Melin
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Tomas Melin @ 2026-02-10 10:53 UTC (permalink / raw)
  To: Michael Hennerich, Nuno Sa, Lars-Peter Clausen, Jonathan Cameron,
	David Lechner, Andy Shevchenko, Olivier Moysan
  Cc: linux-iio, linux-kernel, Tomas Melin, Andy Shevchenko

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>


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2026-02-14 15:57 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-10 10:53 [PATCH v7 0/6] iio: adc: ad9467: Support alternative backends Tomas Melin
2026-02-10 10:53 ` [PATCH v7 1/6] iio: industrialio-backend: support backend capabilities Tomas Melin
2026-02-10 10:53 ` [PATCH v7 2/6] iio: adc: adi-axi-adc: define supported iio-backend capabilities Tomas Melin
2026-02-10 10:53 ` [PATCH v7 3/6] iio: dac: adi-axi-dac: " Tomas Melin
2026-02-10 10:53 ` [PATCH v7 4/6] iio: adc: sd_adc_modulator: " Tomas Melin
2026-02-10 10:53 ` [PATCH v7 5/6] iio: adc: ad9467: simplify device pointer in probe Tomas Melin
2026-02-10 12:11   ` Nuno Sá
2026-02-10 15:00   ` Andy Shevchenko
2026-02-10 10:53 ` [PATCH v7 6/6] iio: adc: ad9467: check for backend capabilities Tomas Melin
2026-02-14 15:57 ` [PATCH v7 0/6] iio: adc: ad9467: Support alternative backends Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox