[PATCH 0/6] iio: adc: ad4030: new driver for AD4030 and similar ADCs

Esteban Blanc
2024-08-22T12:45:48Z

This is adding DT bindings and a new driver for AD4030, AD4630 and
AD4632 ADCs.

This work is being done in collaboration with Analog Devices Inc.,
hence they are listed as maintainers rather than me.

The code has been tested on a Zedboard with an EVAL-AD4030-24FMCZ,
an EVAL-AD4630-24FMCZ and an EVAL-AD4630-16FMCZ. As there is no eval
board for AD4632 the support can't be tested at the moment. The main
difference is the reduced throughput.

To: Lars-Peter Clausen <lars@metafoo.de>
To: Michael Hennerich <Michael.Hennerich@analog.com>
To: Jonathan Cameron <jic23@kernel.org>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Nuno Sa <nuno.sa@analog.com>
To: Jonathan Corbet <corbet@lwn.net>
Cc: Michael Hennerich <michael.hennerich@analog.com>
Cc: linux-iio@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: David Lechner <dlechner@baylibre.com>
Cc: linux-doc@vger.kernel.org
Signed-off-by: Esteban Blanc <eblanc@baylibre.com>

Changes since RFC:
- Reorder IIO channels to have the common byte channel next to its differential
channel.
- Extended names for IIO channels.
- Diffrential data channels are marked as differential channels on IIO
side.
- Use get/put_unaligned_be24 for offset and sign extend it.
- Common byte channel now has 32 realbits. This will be the same as what the
FPGA will return, avoiding different channel layouts.
- Fix missing newline in some error messages.
- Add comment for the use of spi_sync_transfer instead of
spi_write_then_read in ad4030_spi_read.
- Use DMA safe buffers for regmap operations.
- Clarify calculation for number of bytes to read from the device during
conversion.
- Formating fixes.
- Add documentation page.
- Link to RFC: https://lore.kernel.org/r/20240627-eblanc-ad4630_v1-v1-0-fdc0610c23b0@baylibre.com

---
Esteban Blanc (6):
dt-bindings: iio: adc: add ADI ad4030, ad4630 and ad4632
iio: adc: ad4030: add driver for ad4030-24
iio: adc: ad4030: add averaging support
iio: adc: ad4030: add support for ad4630-24 and ad4630-16
iio: adc: ad4030: add support for ad4632-16 and ad4632-24
docs: iio: ad4030: add documentation

.../devicetree/bindings/iio/adc/adi,ad4030.yaml | 113 ++
Documentation/iio/ad4030.rst | 129 +++
Documentation/iio/index.rst | 1 +
MAINTAINERS | 10 +
drivers/iio/adc/Kconfig | 13 +
drivers/iio/adc/Makefile | 1 +
drivers/iio/adc/ad4030.c | 1141 ++++++++++++++++++++
7 files changed, 1408 insertions(+)
---
base-commit: 3545ef5c627c761c76bbdf71e4b4d423fe30e51b
change-id: 20240624-eblanc-ad4630_v1-1a074097eb91

Best regards,
--
Esteban Blanc <eblanc@baylibre.com>