[PATCH v6 00/16] iio: adc: ad4134: Enable greater sample rate data capture

From: Marcelo Schmitt

Date: Fri Oct 23 2026 - 18:35:18 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.
- Apply reset recovery wait time.
- Update include list to comply with IWYU principles.
- Serialize single-read operations.
- Run shorter transfers when CRC is disabled.
- Protect conventional device access from debug accesses [NEW PATCH]

Change log v5 -> v6:
[device tree]
- No changes in dt-doc.
[IIO]
- Correct reset time to microseconds.
- Added sinc6 filter_type to IIO ABI [NEW PATCH]
- Added Fixes tag to iio: adc: ad4134: Serialize single-read operations
- Better explanation for requiring debugfs synchronization.
- Lock sync_lock mutex to avoid filter type read interleaving with
read/write/modify sequences.
- Now running bus preparation routines on IIO buffer preenable/postdisable.
- Put dev_err_probe() in a single line.
- Use mux_state local vaiable to improve readability.
- Restore SPI mode if spi_setup() fails.
- Use cleanup macros to handle claim/release pairs.
- Check the ODR to SCLK offset aginst the maximum ODR high time.
- Removed defensive offload support check on read_raw().
- Added comment explaining why single-shot reads are not supported in offload mode.
- No error out when pwm_round_waveform_might_sleep() return > 0.
- Adjusted intial ODR PWM target duty cycle to odr_high_time_ns.

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/
v4: https://lore.kernel.org/linux-iio/cover.1791309733.git.marcelo.schmitt@xxxxxxxxxx/
v5: https://lore.kernel.org/linux-iio/cover.1792200021.git.marcelo.schmitt@xxxxxxxxxx/

Marcelo Schmitt (16):
iio: adc: ad4134: Adjust register map range
iio: adc: ad4134: Sign extend sample data
iio: adc: ad4134: Apply reset recovery wait time
iio: adc: ad4134: Update include list to comply with IWYU principles
iio: adc: ad4134: Serialize single-read operations
iio: adc: ad4134: Protect conventional device access from debug
accesses
iio: adc: ad4134: Run shorter transfers when CRC is disabled
iio: ABI: Add sinc6 filter_type
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

Documentation/ABI/testing/sysfs-bus-iio | 2 +
.../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 | 781 +++++++++++++++++-
7 files changed, 985 insertions(+), 45 deletions(-)
create mode 100644 Documentation/iio/ad4134.rst


base-commit: 87e28db23d0384f3995c43ecc5ae2118b371edb5
--
2.53.0