Linux Documentation
 help / color / mirror / Atom feed
* [PATCH 0/6] iio: adc: Add AD7768/AD7768-4 ADC driver support
@ 2026-07-09  8:50 Janani Sunil
  2026-07-09  8:50 ` [PATCH 1/6] dt-bindings: iio: adc: Add AD7768 Janani Sunil
                   ` (5 more replies)
  0 siblings, 6 replies; 20+ messages in thread
From: Janani Sunil @ 2026-07-09  8:50 UTC (permalink / raw)
  To: Nuno Sá, Michael Hennerich, Jonathan Cameron, David Lechner,
	Andy Shevchenko, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Olivier Moysan, Philipp Zabel, Linus Walleij, Bartosz Golaszewski,
	Jonathan Corbet, Shuah Khan
  Cc: linux, linux-iio, devicetree, linux-kernel, linux-gpio, linux-doc,
	jananisunil.dev, Janani Sunil

Add support for Analog Devices AD7768 and AD7768-4, 24-bit simultaneous
sampling Sigma-Delta ADCs with configurable power and performance modes.

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.
- Configurable power modes (fast, median, low power) with associated
  decimation rate and output data rate tables.
- Per-channel offset, gain, and phase calibration 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.

**Patch Summary:**
1. **dt-bindings**: Binding documentation for AD7768 and AD7768-4,
   covering SPI interface, clock, power supplies, reference voltage,
   reset GPIO, serial data lane count, and on-chip GPIO controller.
2. **iio: backend**: Add CRC enable/disable backend operation for data
   integrity verification over the high-speed serial interface.
3. **iio: adi-axi-adc**: Implement the new CRC backend operation.
4. **driver**: Core IIO driver for AD7768/AD7768-4 with regmap, power
   mode, calibration, and IIO backend support. Registers an auxiliary
   device to expose the GPIO functionality.
5. **gpio**: Auxiliary bus GPIO driver for the AD7768's 5 general-purpose
   I/O pins, reusing the parent's regmap and runtime PM.
6. **docs**: 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.

To: Nuno Sá <nuno.sa@analog.com>
To: Michael Hennerich <Michael.Hennerich@analog.com>
To: Jonathan Cameron <jic23@kernel.org>
To: David Lechner <dlechner@baylibre.com>
To: Andy Shevchenko <andy@kernel.org>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Olivier Moysan <olivier.moysan@foss.st.com>
To: Philipp Zabel <p.zabel@pengutronix.de>
To: Linus Walleij <linusw@kernel.org>
To: Bartosz Golaszewski <brgl@kernel.org>
To: Jonathan Corbet <corbet@lwn.net>
To: Shuah Khan <skhan@linuxfoundation.org>
Cc: linux@analog.com
Cc: linux-iio@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Cc: jananisunil.dev@gmail.com

Signed-off-by: Janani Sunil <janani.sunil@analog.com>
---
Janani Sunil (6):
      dt-bindings: iio: adc: Add AD7768
      iio: backend: Add support for CRC
      iio: adc: adi-axi-adc: Add support for CRC
      iio: adc: Add AD7768 IIO Driver support
      gpio: ad7768: Add AD7768 GPIO auxiliary driver
      Documentation: iio: Add AD7768 Documentation

 .../devicetree/bindings/iio/adc/adi,ad7768.yaml    |  285 +++++
 Documentation/iio/ad7768.rst                       |  207 ++++
 Documentation/iio/index.rst                        |    1 +
 MAINTAINERS                                        |   10 +
 drivers/gpio/Kconfig                               |   10 +
 drivers/gpio/Makefile                              |    1 +
 drivers/gpio/gpio-ad7768.c                         |  208 ++++
 drivers/iio/adc/Kconfig                            |   16 +
 drivers/iio/adc/Makefile                           |    1 +
 drivers/iio/adc/ad7768.c                           | 1291 ++++++++++++++++++++
 drivers/iio/adc/adi-axi-adc.c                      |   20 +
 drivers/iio/industrialio-backend.c                 |   33 +
 include/linux/iio/backend.h                        |    4 +
 13 files changed, 2087 insertions(+)
---
base-commit: b75697ef53e435d894833dad2a8c2fa882cb9b19
change-id: 20260708-ad7768-driver-10cd15296c20

Best regards,
-- 
Janani Sunil <janani.sunil@analog.com>


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2026-07-10 20:06 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-09  8:50 [PATCH 0/6] iio: adc: Add AD7768/AD7768-4 ADC driver support Janani Sunil
2026-07-09  8:50 ` [PATCH 1/6] dt-bindings: iio: adc: Add AD7768 Janani Sunil
2026-07-09 15:43   ` David Lechner
2026-07-10  0:33     ` Jonathan Cameron
2026-07-10  1:39   ` Jonathan Cameron
2026-07-09  8:50 ` [PATCH 2/6] iio: backend: Add support for CRC Janani Sunil
2026-07-10  0:36   ` Jonathan Cameron
2026-07-09  8:50 ` [PATCH 3/6] iio: adc: adi-axi-adc: " Janani Sunil
2026-07-09 15:54   ` David Lechner
2026-07-10  0:39   ` Jonathan Cameron
2026-07-10  0:46   ` Jonathan Cameron
2026-07-09  8:50 ` [PATCH 4/6] iio: adc: Add AD7768 IIO Driver support Janani Sunil
2026-07-10  2:10   ` Jonathan Cameron
2026-07-10  7:41   ` Uwe Kleine-König
2026-07-09  8:50 ` [PATCH 5/6] gpio: ad7768: Add AD7768 GPIO auxiliary driver Janani Sunil
2026-07-09 11:05   ` Andy Shevchenko
2026-07-10  2:14   ` Jonathan Cameron
2026-07-10 20:06   ` Linus Walleij
2026-07-09  8:50 ` [PATCH 6/6] Documentation: iio: Add AD7768 Documentation Janani Sunil
2026-07-10  2:16   ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox