[PATCH v4 0/3] iio: adc: ad4695: new driver for AD4695 and similar ADCs

From: David Lechner
Date: Thu Jul 11 2024 - 15:16:04 EST


This is adding DT bindings and a new driver for the AD4695 and similar
devices. The plan is to implement quite a few more features, but this
is a complex chip so we're spreading out the work. To start with, we
have a reasonably complete DT binding and a very basic driver.

This work is being done in collaboration with Analog Devices Inc.,
hence they listed as maintainers rather than me. The code has been
tested on a ZedBoard with an EVAL-AD4696FMCZ using the internal LDO,
an external reference and a variety of input channel configurations.

---
Changes in v4:
* Link to v3: https://lore.kernel.org/r/20240624-iio-adc-ad4695-v3-0-a22c302f06bf@xxxxxxxxxxxx

[PATCH 1/3]
* Picked up Conor's reviewed-by tag.

[PATCH 2/3]
* moved dt-bindings #include
* don't initialize mask/val to 0
* remove xfer[0].bits_per_word = 8;
* reduce duplicate code in ad4695_read_one_sample()
* pass st instead of indio_dev to ad4695_parse_channel_cfg()

[PATCH 3/3]
* none

Changes in v3:
* Dropped "dt-bindings: iio: adc: add common-mode-channel dependency"
patch.
* Link to v2: https://lore.kernel.org/r/20240617-iio-adc-ad4695-v2-0-63ef6583f25d@xxxxxxxxxxxx

[PATCH 1/3]
* Change interrupts to be per pin instead of per signal.
* Drop diff-channels and single-channel properties.
* Odd numbered pins added to common-mode-channel property enum.
* REFGND and COM values changed to avoid confusion with pin numbers.
* Add inX-supply properties for odd numbed input pins.

[PATCH 2/3]
* always include all channels, not just ones customized in DT
* rework channel fwnode parsing for DT changes

[PATCH 3/3]
* Rework DT examples for DT bindings changes

Changes in v2:
* Link to v1: https://lore.kernel.org/r/20240612-iio-adc-ad4695-v1-0-6a4ed251fc86@xxxxxxxxxxxx

[PATCH 1/4]
* New patch
* Depends on recently applied patch
https://lore.kernel.org/linux-iio/20240607-ad4111-v7-1-97e3855900a0@xxxxxxxxxx/

[PATCH 2/4]
* Drop *-wlcsp compatible strings
* Don't use fallback compatible strings
* Reword supply descriptions
* Use standard channel properties instead of adi,pin-pairing
* Fix unnecessary | character
* Fix missing blank line
* Add header file with common mode channel macros

[PATCH 3/4]
* rework register definition macros
* remove code structure comments at top level
* remove simple wrapper functions around regmap functions
* rework channel fwnode parsing for DT changes
* fix missing return value check

[PATCH 4/4]
* Rework DT examples for DT bindings changes
* Fix wrong MAINTAINERS update

---
David Lechner (3):
dt-bindings: iio: adc: add AD4695 and similar ADCs
iio: adc: ad4695: Add driver for AD4695 and similar ADCs
Documentation: iio: Document ad4695 driver

.../devicetree/bindings/iio/adc/adi,ad4695.yaml | 256 ++++++++
Documentation/iio/ad4695.rst | 155 +++++
Documentation/iio/index.rst | 1 +
MAINTAINERS | 12 +
drivers/iio/adc/Kconfig | 11 +
drivers/iio/adc/Makefile | 1 +
drivers/iio/adc/ad4695.c | 719 +++++++++++++++++++++
include/dt-bindings/iio/adi,ad4695.h | 9 +
8 files changed, 1164 insertions(+)
---
base-commit: 986da024b99a72e64f6bdb3f3f0e52af024b1f50
change-id: 20240517-iio-adc-ad4695-ef72b2a2cf88

Best regards,
--
David Lechner <dlechner@xxxxxxxxxxxx>