mbox series

[v2,0/7] ad7380: add support for single-ended parts

Message ID 20240731-ad7380-add-single-ended-chips-v2-0-cd63bf05744c@baylibre.com (mailing list archive)
Headers show
Series ad7380: add support for single-ended parts | expand

Message

Julien Stephan July 31, 2024, 7:05 a.m. UTC
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@baylibre.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,

Comments

David Lechner July 31, 2024, 1:46 p.m. UTC | #1
On 7/31/24 2:05 AM, Julien Stephan wrote:
> 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.
> 
For the whole series,

Reviewed-by: David Lechner <dlechner@baylibre.com>
Jonathan Cameron Aug. 3, 2024, 10:34 a.m. UTC | #2
On Wed, 31 Jul 2024 08:46:38 -0500
David Lechner <dlechner@baylibre.com> wrote:

> On 7/31/24 2:05 AM, Julien Stephan wrote:
> > 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.
> >   
> For the whole series,
> 
> Reviewed-by: David Lechner <dlechner@baylibre.com>
> 

Nice series. Applied to the togreg branch of iio.git and pushed
out initially as testing in case 0-day can find anything we missed.

Thanks,

Jonathan