mbox series

[v2,00/10] iio: adc: at91-sama5d2_adc: add support for sama7g5

Message ID 20210824115441.681253-1-eugen.hristev@microchip.com (mailing list archive)
Headers show
Series iio: adc: at91-sama5d2_adc: add support for sama7g5 | expand

Message

Eugen Hristev Aug. 24, 2021, 11:54 a.m. UTC
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

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            | 586 ++++++++++++------
 4 files changed, 425 insertions(+), 186 deletions(-)

Comments

Jonathan Cameron Aug. 30, 2021, 12:26 p.m. UTC | #1
On Tue, 24 Aug 2021 14:54:31 +0300
Eugen Hristev <eugen.hristev@microchip.com> wrote:

> 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
> 
> 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
0-8 applied with the minor tweak mentioned in a reply to relevant patch.

I'll assume 9-10 will got via normal soc related tree.

Note that I'm queuing these up for the merge window after this one now
(5.16).

Thanks,

Jonathan

> 
> 
> 
> 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            | 586 ++++++++++++------
>  4 files changed, 425 insertions(+), 186 deletions(-)
>
Nicolas Ferre Sept. 1, 2021, 9:47 a.m. UTC | #2
On 30/08/2021 at 14:26, Jonathan Cameron wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> On Tue, 24 Aug 2021 14:54:31 +0300
> Eugen Hristev <eugen.hristev@microchip.com> wrote:
> 
>> 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
>>
>> 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
> 0-8 applied with the minor tweak mentioned in a reply to relevant patch.
> 
> I'll assume 9-10 will got via normal soc related tree.

Yep, we'll take them through at91 -> arm-soc trees...

> 
> Note that I'm queuing these up for the merge window after this one now
> (5.16).

Yes, soc/dt parts will be queued for 5.16 too.

Thanks Eugen, thanks Jonathan, best regards,
   Nicolas

>> 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            | 586 ++++++++++++------
>>   4 files changed, 425 insertions(+), 186 deletions(-)
>>
>