[PATCH v3 00/10] iio: adc: at91-sama5d2_adc: add support for sama7g5

From: Eugen Hristev
Date: Wed Sep 01 2021 - 08:31:12 EST



Hi,

This series adds support for sama7g5.

The sama7g5 is slightly different from sama5d2, but has the same basic
operations. The register map is a bit different, so, I added some primitives
to differentiate between the two classes of hardware blocks (sama5d2-sam9x60
and sama7g5).

Sama7g5 has 16 channels ADC, no resistive touch, and extra features
(FIFOs, better oversampling , not implemented yet).

It is a rework of the series initially sent here:
https://marc.info/?l=linux-iio&m=161461656807826&w=2

Changes in v3:
updates for the channel indexes ABI
minor nitpicks fixes
fixed krobot report



Changes in v2:

I reworked this according to review by Jonathan, meaning that first I created
a no-op patch that will convert the driver to a more platform specific data
dedicated type of driver. This adds various structures that hold things like
register layout and channel information.
After this I created few patches that implement the main differences between
sama7g5 and older products: the end-of-conversion new register. I added
helper functions to make code more easy to read and more simple.
One the last patches adds the layout and channels for sama7g5.
At this moment in linux-next, the DT for sama7g5 and sama7g5ek is present,
and the last patches add and enable this node in DT for this board.

Eugen



Eugen Hristev (10):
dt-bindings: iio: adc: at91-sama5d2: add compatible for sama7g5-adc
iio: adc: at91-sama5d2_adc: initialize hardware after clock is started
iio: adc: at91-sama5d2_adc: remove unused definition
iio: adc: at91-sama5d2_adc: convert to platform specific data
structures
iio: adc: at91-sama5d2_adc: add support for separate end of conversion
registers
iio: adc: at91-sama5d2_adc: add helper for COR register
iio: adc: at91-sama5d2_adc: add support for sama7g5 device
iio: adc: at91-sama5d2_adc: update copyright and authors information
ARM: dts: at91: sama7g5: add node for the ADC
ARM: dts: at91: sama7g5ek: enable ADC on the board

.../bindings/iio/adc/atmel,sama5d2-adc.yaml | 1 +
arch/arm/boot/dts/at91-sama7g5ek.dts | 8 +
arch/arm/boot/dts/sama7g5.dtsi | 16 +
drivers/iio/adc/at91-sama5d2_adc.c | 594 ++++++++++++------
4 files changed, 432 insertions(+), 187 deletions(-)

--
2.25.1