Re: [PATCH v2 14/15] iio: adc: ad4134: Support high-speed data capture

From: Jonathan Cameron

Date: Sun Sep 20 2026 - 21:52:43 EST


> Make use of SPI transfer offloading to speed up data capture, enabling data
> acquisition at faster sample rates (up to 1.496 MSPS).
>
> Signed-off-by: Marcelo Schmitt <marcelo.schmitt@xxxxxxxxxx>

A lot of sashiko feedback so I only took a cursory look.
Please address all that (or point out why it is wrong!)

Jonathan

> diff --git a/drivers/iio/adc/ad4134.c b/drivers/iio/adc/ad4134.c
> index cc6bc325f6ee..94d979c61501 100644
> --- a/drivers/iio/adc/ad4134.c
> +++ b/drivers/iio/adc/ad4134.c


...

> +static int ad4134_offload_setup(struct iio_dev *indio_dev, struct ad4134_state *st)
> +{
> + struct device *dev = &st->spi->dev;
> + int ret;
> +
> + ret = ad4134_pwm_get(st);
> + if (ret)
> + return ret;
> +
> + ret = ad4134_offload_buffer_setup(indio_dev, st->spi);
> + if (ret)
> + return ret;
> +
> + /*
> + * Start with a sampling rate slower than 374 kSPS because that is the
> + * maximum rate supported with wideband filter (default on power up).
> + */
> + st->odr_hz = 250 * HZ_PER_KHZ;
> + ret = ad4134_update_conversion_rate(st, st->odr_hz);
> + if (ret)
> + return dev_err_probe(dev, ret, "failed to set sampling freq\n");
> +
> + indio_dev->setup_ops = &ad4134_offload_buffer_setup_ops;
> + indio_dev->available_scan_masks = ad4134_scan_masks;
> +
> + switch (st->spi->num_rx_lanes) {
> + case 1:
> + return regmap_update_bits(st->regmap, AD4134_DIG_IF_CFG_REG,
> + AD4134_DIF_IF_CFG_FORMAT_MASK,
> + FIELD_PREP(AD4134_DIF_IF_CFG_FORMAT_MASK,
> + AD4134_DATA_FORMAT_SINGLE_CH_MODE));
> + case 4:
> + return regmap_update_bits(st->regmap, AD4134_DIG_IF_CFG_REG,
> + AD4134_DIF_IF_CFG_FORMAT_MASK,
> + FIELD_PREP(AD4134_DIF_IF_CFG_FORMAT_MASK,
> + AD4134_DATA_FORMAT_QUAD_CH_PARALLEL));
> + default:
> + return dev_err_probe(dev, -EINVAL,
> + "unsupported number of spi-rx-bus-width elements: %d\n",
> + st->spi->num_rx_lanes);
> + }
> +
> + return 0;

Unreachable code so drop it.

--
Jonathan Cameron <jonathan.cameron@xxxxxxxxxxxxxxxx>