From: Andy Shevchenko <andriy.shevchenko@intel.com>
To: Janani Sunil <janani.sunil@analog.com>
Cc: "Nuno Sá" <nuno.sa@analog.com>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"Jonathan Cameron" <jic23@kernel.org>,
"David Lechner" <dlechner@baylibre.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Olivier Moysan" <olivier.moysan@foss.st.com>,
"Philipp Zabel" <p.zabel@pengutronix.de>,
"Linus Walleij" <linusw@kernel.org>,
"Bartosz Golaszewski" <brgl@kernel.org>,
"Jonathan Corbet" <corbet@lwn.net>,
"Shuah Khan" <skhan@linuxfoundation.org>,
"Michael Walle" <mwalle@kernel.org>,
linux@analog.com, linux-iio@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-gpio@vger.kernel.org, linux-doc@vger.kernel.org,
jananisunil.dev@gmail.com,
"Uwe Kleine-König" <u.kleine-koenig@baylibre.com>
Subject: Re: [PATCH v3 00/14] iio: adc: Add AD7768/AD7768-4 ADC driver support
Date: Fri, 14 Aug 2026 11:45:04 +0300 [thread overview]
Message-ID: <an7VkAg_MIc8HneT@ashevche-desk.local> (raw)
In-Reply-To: <20260813-ad7768-driver-v3-0-cb554399ad26@analog.com>
On Thu, Aug 13, 2026 at 03:56:53PM +0200, Janani Sunil wrote:
> Add support for Analog Devices AD7768 and AD7768-4, 24-bit simultaneous
> sampling Sigma-Delta ADCs with automatic power mode selection.
>
> Datasheet:
> https://www.analog.com/media/en/technical-documentation/data-sheets/ad7768.pdf
>
> **Device Overview:**
> The AD7768 is an 8-channel, 24-bit simultaneous sampling ADC. The
> AD7768-4 is a 4-channel variant. Both support configurable power modes,
> programmable decimation filters, and a high-speed serial interface with
> 1, 2, 4, or 8 data output lines. Per-channel offset, gain, and phase
> calibration registers are available.
>
> **Features Implemented:**
> - Support for AD7768 (8-channel) and AD7768-4 (4-channel) via device
> match data.
> - Automatic low-noise power mode selection (fast, median, low power)
> with associated decimation rate and output data rate tables.
> - Per-channel offset, gain, and conversion delay via IIO attributes.
> - SPI communication with custom regmap bus for the device's protocol.
> - IIO backend integration with adi-axi-adc for high-speed data capture.
> - CRC data integrity verification over the serial interface.
> - GPIO auxiliary driver to expose the 5 on-chip GPIO pins.
> - VCM common-mode output exposed through the regulator framework, with
> runtime PM management while the output is enabled.
>
> **Patch Summary:**
> 1. Add the AD7768 and AD7768-4 devicetree binding.
> 2. Add the IIO backend CRC operation.
> 3. Initialize the AXI ADC state mutex.
> 4. Implement CRC control in the AXI ADC backend.
> 5. Add core AD7768 and AD7768-4 capture support.
> 6. Add configurable sampling rates, power modes, and filters.
> 7. Add per-channel offset and gain calibration controls.
> 8. Add per-channel conversion delay.
> 9. Expose the VCM output through the regulator framework.
> 10. Register the GPIO auxiliary device from the parent driver.
> 11. Use regmap_test_bits() for single-bit gpio-regmap reads.
> 12. Add optional runtime PM support to gpio-regmap.
> 13. Add the AD7768 GPIO auxiliary driver.
> 14. Add driver documentation.
>
> **Testing:**
> The driver was compiled and tested on the EVAL-AD7768FMCZ using a
> Zedboard with a mainline kernel.
>
> **Driver Rationale:**
> The AD7768/AD7768-4 warrants its own driver due to several
> device-specific characteristics:
>
> 1. A custom SPI framing protocol: register reads and writes use 16-bit
> frames with embedded read/write bits and register address fields,
> requiring a custom regmap bus implementation rather than the standard
> SPI regmap backend.
>
> 2. A coupled power mode / sample rate model: available output data rates
> are not a flat list but depend on the active power mode (fast, median,
> low power), each with its own set of valid decimation rates. This
> relationship must be managed in the driver.
>
> 3. Simultaneous sampling across all channels with per-channel calibration
> registers (24-bit offset, gain, and phase) that are laid out
> differently between the 8-channel AD7768 and the 4-channel AD7768-4,
> requiring device-specific register mapping.
>
> 4. IIO backend integration for high-speed data capture via adi-axi-adc,
> including CRC data integrity verification over the serial interface.
>
> 5. On-chip GPIO: 5 general-purpose I/O pins exposed via an auxiliary bus
> driver, sharing the parent's regmap and runtime PM.
The GPIO driver looks nice, but regmap API should use cleanup.h instead of
custom (legacy) approach.
--
With Best Regards,
Andy Shevchenko
prev parent reply other threads:[~2026-08-14 8:45 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-13 13:56 [PATCH v3 00/14] iio: adc: Add AD7768/AD7768-4 ADC driver support Janani Sunil
2026-08-13 13:56 ` [PATCH v3 01/14] dt-bindings: iio: adc: Add AD7768 Janani Sunil
2026-08-13 13:56 ` [PATCH v3 02/14] iio: backend: Add support for CRC Janani Sunil
2026-08-13 13:56 ` [PATCH v3 03/14] iio: adc: adi-axi-adc: Initialize state mutex Janani Sunil
2026-08-13 13:56 ` [PATCH v3 04/14] iio: adc: adi-axi-adc: Add support for CRC Janani Sunil
2026-08-13 13:56 ` [PATCH v3 05/14] iio: adc: Add AD7768 and AD7768-4 core support Janani Sunil
2026-08-13 13:56 ` [PATCH v3 06/14] iio: adc: ad7768: Add configurable sampling modes Janani Sunil
2026-08-13 13:57 ` [PATCH v3 07/14] iio: adc: ad7768: Add calibration controls Janani Sunil
2026-08-13 13:57 ` [PATCH v3 08/14] iio: adc: ad7768: Add per-channel conversion delay Janani Sunil
2026-08-13 13:57 ` [PATCH v3 09/14] iio: adc: ad7768: Add VCM regulator support Janani Sunil
2026-08-13 13:57 ` [PATCH v3 10/14] iio: adc: ad7768: Register GPIO auxiliary device Janani Sunil
2026-08-13 13:57 ` [PATCH v3 11/14] gpio: regmap: Use regmap_test_bits() for single bit reads Janani Sunil
2026-08-14 7:04 ` Linus Walleij
2026-08-14 7:28 ` Michael Walle
2026-08-14 8:28 ` Andy Shevchenko
2026-08-13 13:57 ` [PATCH v3 12/14] gpio: regmap: Add optional runtime PM support Janani Sunil
2026-08-14 7:07 ` Linus Walleij
2026-08-14 7:30 ` Michael Walle
2026-08-14 8:34 ` Andy Shevchenko
2026-08-13 13:57 ` [PATCH v3 13/14] gpio: ad7768: Add AD7768 GPIO auxiliary driver Janani Sunil
2026-08-14 7:05 ` Linus Walleij
2026-08-14 8:43 ` Andy Shevchenko
2026-08-13 13:57 ` [PATCH v3 14/14] Documentation: iio: Add AD7768 Documentation Janani Sunil
2026-08-14 8:45 ` Andy Shevchenko [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=an7VkAg_MIc8HneT@ashevche-desk.local \
--to=andriy.shevchenko@intel.com \
--cc=Michael.Hennerich@analog.com \
--cc=andy@kernel.org \
--cc=brgl@kernel.org \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=janani.sunil@analog.com \
--cc=jananisunil.dev@gmail.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@analog.com \
--cc=mwalle@kernel.org \
--cc=nuno.sa@analog.com \
--cc=olivier.moysan@foss.st.com \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=skhan@linuxfoundation.org \
--cc=u.kleine-koenig@baylibre.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.