[PATCH v4 00/13] iio: adc: ad4134: Enable greater sample rate data capture

From: Marcelo Schmitt

Date: Tue Oct 06 2026 - 14:16:26 EST


Extend AD4134 support to enable greater sample rate data capture. To achieve
that, provide control of digital filter type selection. The default filter
type on device power up only supports sample rates up to 374 kSPS. In addition
to that, enable interfacing with AD4134 in SPI 4-wire mode that can support
reading ADC sample data through multiple wires. Finally, use SPI offloading
to speed up data transfers at up to 1.49 MSPS.

Features being added:
- Data filter type selection.
- Triggered buffer data read.
- SPI 4-wire mode.
- High speed data capture with SPI offloading.
- Device tree doc updates.

Minor improvements (introduced before the new features):
- Sign extend sample data.
- Update include list to comply with IWYU principles.
- Serialize single-read operations.
- Run shorter transfers when CRC is disabled.

The updates in v4 are tackles all applicable suggestions from reviewers and from
automated tests/reviews/AI.

Change log v3 -> v4:
[device tree]
- Properly specified vendor custom property, avoiding 'too few spaces after comma' warn.
- Correctly restrained the value/number of spi-rx-bus-width lanes for
two-channel-chain use case.
- Improved the constraint to also prevent specifying one-channel-chain or
two-channel-chain without #daisy-chained-devices.
[IIO]
- Fixed typo in code comment.
- Now grabbing the whole data scan with a single SPI transfer.
- Also request ODR GPIO for 4-wire mode when offload is not available.
- Dropped second driver state mutex (access_lock). Triggered buffer handler is
already protected by IIO device mode lock.
- Adjusted PWM approximation loop counter decrement.
- No longer providing IIO channel separate INFO_RAW on offload setup.
- Adjusted in_range() check to not error on maximum sample rate.
- Minor adjust to AD4134 IIO Doc that made that 1 line shorter.

Previous submissions:
v1: https://lore.kernel.org/linux-iio/cover.1788368334.git.marcelo.schmitt@xxxxxxxxxx/
v2: https://lore.kernel.org/linux-iio/cover.1789494473.git.marcelo.schmitt@xxxxxxxxxx/
v3: https://lore.kernel.org/linux-iio/cover.1790719424.git.marcelo.schmitt@xxxxxxxxxx/


Marcelo Schmitt (13):
iio: adc: ad4134: Adjust register map range
iio: adc: ad4134: Sign extend sample data
iio: adc: ad4134: Update include list to comply with IWYU principles
iio: adc: ad4134: Serialize single-read operations
iio: adc: ad4134: Run shorter transfers when CRC is disabled
iio: adc: ad4134: Add support for digital filter type selection
iio: adc: ad4134: Support buffered data read
dt-bindings: iio: adc: adi,ad4134: Document SPI connection mode
dt-bindings: iio: adc: adi,ad4134: Document external multiplexer usage
iio: adc: ad4134: Support SPI 4-wire mode
dt-bindings: iio: adc: adi,ad4134: Document PWM usage
iio: adc: ad4134: Support high-speed data capture
Docs: iio: Add AD4134

.../bindings/iio/adc/adi,ad4134.yaml | 110 ++-
Documentation/iio/ad4134.rst | 127 +++
Documentation/iio/index.rst | 1 +
MAINTAINERS | 1 +
drivers/iio/adc/Kconfig | 8 +
drivers/iio/adc/ad4134.c | 773 +++++++++++++++++-
6 files changed, 980 insertions(+), 40 deletions(-)
create mode 100644 Documentation/iio/ad4134.rst


base-commit: 04434a1d0f311d76b1f15fa987918b471a0b8c6a
--
2.53.0