[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240731-ad7380-add-single-ended-chips-v2-0-cd63bf05744c@baylibre.com>
Date: Wed, 31 Jul 2024 09:05:41 +0200
From: Julien Stephan <jstephan@...libre.com>
To: Michael Hennerich <michael.hennerich@...log.com>,
Nuno Sá <nuno.sa@...log.com>,
David Lechner <dlechner@...libre.com>, Lars-Peter Clausen <lars@...afoo.de>,
Jonathan Cameron <jic23@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Jonathan Corbet <corbet@....net>
Cc: Michael Hennerich <Michael.Hennerich@...log.com>,
linux-iio@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-doc@...r.kernel.org,
Julien Stephan <jstephan@...libre.com>,
Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
Subject: [PATCH v2 0/7] ad7380: add support for single-ended parts
This series will add support for ad7386/7/8 (16/14/12 bits) unsigned,
dual simultaneous sampling, single-ended compatible parts, and the
corresponding ad7386-4/7-4/8-4 4 channels to ad7380 driver.
These parts have a 2:1 multiplexer in front of each ADC. They also include
additional configuration registers that allow for either manual selection
or automatic switching (sequencer mode), of the multiplexer inputs.
>From an IIO point of view, all inputs are exported, i.e ad7386/7/8
export 4 channels and ad7386-4/7-4/8-4 export 8 channels.
Inputs AinX0 of multiplexers correspond to the first half of IIO channels
(i.e 0-1 or 0-3) and inputs AinX1 correspond to second half (i.e 2-3 or
4-7). Example for AD7386/7/8 (2 channels parts):
IIO | AD7386/7/8
| +----------------------------
| | _____ ______
| | | | | |
voltage0 | AinA0 --|--->| | | |
| | | mux |----->| ADCA |---
voltage2 | AinA1 --|--->| | | |
| | |_____| |_____ |
| | _____ ______
| | | | | |
voltage1 | AinB0 --|--->| | | |
| | | mux |----->| ADCB |---
voltage3 | AinB1 --|--->| | | |
| | |_____| |______|
| |
| +----------------------------
To ease the review, this series is split on several commits, in
particular, sequencer mode is added as an additional commit.
Cheers
Julien
Signed-off-by: Julien Stephan <jstephan@...libre.com>
---
Changes in v2:
- Adding a new commit to fix the previously missing trailing comas
- Adding a new commit to introduce a new core function
`iio_active_scan_mask_index`
- reword commit messages to add the `iio: adc:` prefix
- fix minor comments from Jonathan
- use the new iio_active_scan_mask_index and use some enum definition to
make the code more readable
- Link to v1: https://lore.kernel.org/r/20240726-ad7380-add-single-ended-chips-v1-0-2d628b60ccd1@baylibre.com
---
Julien Stephan (7):
dt-bindings: iio: adc: ad7380: add single-ended compatible parts
iio: core: add function to retrieve active_scan_mask index
iio: adc: ad7380: add missing trailing commas
iio: adc: ad7380: prepare driver for single-ended parts support
iio: adc: ad7380: add support for single-ended parts
iio: adc: ad7380: enable sequencer for single-ended parts
docs: iio: ad7380: add support for single-ended parts
.../devicetree/bindings/iio/adc/adi,ad7380.yaml | 13 +
Documentation/iio/ad7380.rst | 42 ++
drivers/iio/adc/ad7380.c | 525 +++++++++++++++++----
drivers/iio/industrialio-core.c | 43 ++
include/linux/iio/iio.h | 2 +
5 files changed, 543 insertions(+), 82 deletions(-)
---
base-commit: 472438c7e0e2261c6737a8321f46ef176eef1c8f
change-id: 20240726-ad7380-add-single-ended-chips-b437d1cc8b8b
Best regards,
--
Julien Stephan <jstephan@...libre.com>
Powered by blists - more mailing lists