RE: [PATCH 0/4] iio: adc: ad4691: add driver for AD4691 multichannel SAR ADC family

From: Sabau, Radu bogdan

Date: Fri Mar 06 2026 - 07:46:36 EST




> -----Original Message-----
> From: Andy Shevchenko <andriy.shevchenko@xxxxxxxxx>
> Sent: Friday, March 6, 2026 2:06 PM
> To: Sabau, Radu bogdan <Radu.Sabau@xxxxxxxxxx>
> Cc: Lars-Peter Clausen <lars@xxxxxxxxxx>; Hennerich, Michael <Michael.Hennerich@xxxxxxxxxx>; Jonathan Cameron
> <jic23@xxxxxxxxxx>; David Lechner <dlechner@xxxxxxxxxxxx>; Sa, Nuno <Nuno.Sa@xxxxxxxxxx>; Andy Shevchenko
> <andy@xxxxxxxxxx>; Rob Herring <robh@xxxxxxxxxx>; Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>; Conor Dooley <conor+dt@xxxxxxxxxx>;
> Uwe Kleine-König <ukleinek@xxxxxxxxxx>; Liam Girdwood <lgirdwood@xxxxxxxxx>; Mark Brown <broonie@xxxxxxxxxx>; Linus Walleij
> <linusw@xxxxxxxxxx>; Bartosz Golaszewski <brgl@xxxxxxxxxx>; linux-iio@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; linux-pwm@xxxxxxxxxxxxxxx; linux-gpio@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH 0/4] iio: adc: ad4691: add driver for AD4691 multichannel SAR ADC family
>
> [External]
>
> On Thu, Mar 05, 2026 at 02:23:26PM +0200, Radu Sabau via B4 Relay wrote:
> > This series adds support for the Analog Devices AD4691 family of
> > high-speed, low-power multichannel successive approximation register
> > (SAR) ADCs with an SPI-compatible serial interface.
> >
> > The family includes:
> > - AD4691: 16-channel, 500 kSPS
> > - AD4692: 16-channel, 1 MSPS
> > - AD4693: 8-channel, 500 kSPS
> > - AD4694: 8-channel, 1 MSPS
> >
> > The devices support five operating modes:
> > - CNV Clock Mode: external PWM drives CNV, samples at PWM rate
> > - CNV Burst Mode: PWM triggers bursts, internal oscillator drives
> > conversions within each burst
> > - Autonomous Mode: internal oscillator drives conversions,
> > software starts/stops via register write
> > - SPI Burst Mode: similar to Autonomous Mode but optimised for
> > SPI burst reads
> > - Manual Mode: CNV tied to SPI CS; each SPI transfer triggers
> > a conversion and returns the previous result
> > (pipelined);
>
> This cover letter doesn't answer to the first important question: Why a brand
> new driver? Do your homework and check what is already in the kernel and
> explain in the next version why no other existing driver can be reused (refactored).
>
> --
> With Best Regards,
> Andy Shevchenko
>

Hi Andy,

Indeed at first glance I thought about adding support for these parts in the existing
AD4965 driver. The registers indeed are a bit similar between them, but the
channel specific registers are completely different, and more than this the
conversion modes are different.
With this being said, I will try and make things more clear by answering this
question in the cover letter of the next patch. Thank you for pointing this out.

Best Regards,
Radu