mbox series

[00/16] iio: adc: at91-sama5d2_adc: add support for temperature sensor

Message ID 20220609083213.1795019-1-claudiu.beznea@microchip.com (mailing list archive)
Headers show
Series iio: adc: at91-sama5d2_adc: add support for temperature sensor | expand

Message

Claudiu Beznea June 9, 2022, 8:31 a.m. UTC
Hi,

The following series add support for temperature sensor available on
SAMA7G5.

Temperature sensor available on SAMA7G5 provides 2 outputs VTEMP and VBG.
VTEMP is proportional to the absolute temperature voltage and VBG is a
quasi-temperature independent voltage. Both are necessary in computing
the temperature (for better accuracy). Also, for better accuracy the
following settings were imposed when measusing the temperature:
oversampling rate of 256, sampling frequency of 10MHz, a startup time of
512 ticks, MR.tracktim=0xf, EMR.trackx=0x3.

For computing the temperature measured by ADC calibration data is
necessary. This is provided via OTP memory available on SAMA7G5.

Patches 1/16-3/16 provides some fixes.
Patches 3/16-12/16 prepares for the addition of temperature sensor
support.
Patch 13/16 adds the temperature sensor support.

Along with temperature sensor support I took the chance and added
runtime PM support in this series, too (handled in patch 15/16).

The rest of patches in this series are minor cleanups.

Thank you,
Claudiu Beznea

Claudiu Beznea (16):
  iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX
  iio: adc: at91-sama5d2_adc: lock around oversampling and sample freq
  iio: adc: at91-sama5d2_adc: exit from write_raw() when buffers are
    enabled
  iio: adc: at91-sama5d2_adc: handle different EMR.OSR for different hw
    versions
  iio: adc: at91-sama5d2_adc: adjust osr based on specific platform data
  iio: adc: at91-sama5d2_adc: add 64 and 256 oversampling ratio
  iio: adc: at91-sama5d2_adc: simplify the code in
    at91_adc_read_info_raw()
  iio: adc: at91-sama5d2_adc: move oversampling storage in its function
  iio: adc: at91-sama5d2_adc: update trackx on emr
  iio: adc: at91-sama5d2_adc: add startup and tracktim as parameter for
    at91_adc_setup_samp_freq()
  iio: adc: at91-sama5d2_adc: add locking parameter to
    at91_adc_read_info_raw()
  dt-bindings: iio: adc: at91-sama5d2_adc: add id for temperature
    channel
  iio: adc: at91-sama5d2_adc: add support for temperature sensor
  iio: adc: at91-sama5d2_adc: add empty line after functions
  iio: adc: at91-sama5d2_adc: add runtime pm support
  iio: adc: at91-sama5d2_adc: use pm_ptr()

 drivers/iio/adc/at91-sama5d2_adc.c            | 633 +++++++++++++++---
 .../dt-bindings/iio/adc/at91-sama5d2_adc.h    |   3 +
 2 files changed, 548 insertions(+), 88 deletions(-)

Comments

Jonathan Cameron June 11, 2022, 6:16 p.m. UTC | #1
On Thu, 9 Jun 2022 11:31:57 +0300
Claudiu Beznea <claudiu.beznea@microchip.com> wrote:

> Hi,
> 
> The following series add support for temperature sensor available on
> SAMA7G5.
> 
> Temperature sensor available on SAMA7G5 provides 2 outputs VTEMP and VBG.
> VTEMP is proportional to the absolute temperature voltage and VBG is a
> quasi-temperature independent voltage. Both are necessary in computing
> the temperature (for better accuracy). Also, for better accuracy the
> following settings were imposed when measusing the temperature:
> oversampling rate of 256, sampling frequency of 10MHz, a startup time of
> 512 ticks, MR.tracktim=0xf, EMR.trackx=0x3.
> 
> For computing the temperature measured by ADC calibration data is
> necessary. This is provided via OTP memory available on SAMA7G5.
> 
> Patches 1/16-3/16 provides some fixes.
> Patches 3/16-12/16 prepares for the addition of temperature sensor
> support.
> Patch 13/16 adds the temperature sensor support.
> 
> Along with temperature sensor support I took the chance and added
> runtime PM support in this series, too (handled in patch 15/16).
> 
> The rest of patches in this series are minor cleanups.
> 
> Thank you,
> Claudiu Beznea

Hi CLaudiu,

Those patches I haven't replied to individually look good to me.

Thanks,

Jonathan

> 
> Claudiu Beznea (16):
>   iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX
>   iio: adc: at91-sama5d2_adc: lock around oversampling and sample freq
>   iio: adc: at91-sama5d2_adc: exit from write_raw() when buffers are
>     enabled
>   iio: adc: at91-sama5d2_adc: handle different EMR.OSR for different hw
>     versions
>   iio: adc: at91-sama5d2_adc: adjust osr based on specific platform data
>   iio: adc: at91-sama5d2_adc: add 64 and 256 oversampling ratio
>   iio: adc: at91-sama5d2_adc: simplify the code in
>     at91_adc_read_info_raw()
>   iio: adc: at91-sama5d2_adc: move oversampling storage in its function
>   iio: adc: at91-sama5d2_adc: update trackx on emr
>   iio: adc: at91-sama5d2_adc: add startup and tracktim as parameter for
>     at91_adc_setup_samp_freq()
>   iio: adc: at91-sama5d2_adc: add locking parameter to
>     at91_adc_read_info_raw()
>   dt-bindings: iio: adc: at91-sama5d2_adc: add id for temperature
>     channel
>   iio: adc: at91-sama5d2_adc: add support for temperature sensor
>   iio: adc: at91-sama5d2_adc: add empty line after functions
>   iio: adc: at91-sama5d2_adc: add runtime pm support
>   iio: adc: at91-sama5d2_adc: use pm_ptr()
> 
>  drivers/iio/adc/at91-sama5d2_adc.c            | 633 +++++++++++++++---
>  .../dt-bindings/iio/adc/at91-sama5d2_adc.h    |   3 +
>  2 files changed, 548 insertions(+), 88 deletions(-)
>
Claudiu Beznea June 14, 2022, 10:41 a.m. UTC | #2
On 11.06.2022 21:16, Jonathan Cameron wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> On Thu, 9 Jun 2022 11:31:57 +0300
> Claudiu Beznea <claudiu.beznea@microchip.com> wrote:
> 
>> Hi,
>>
>> The following series add support for temperature sensor available on
>> SAMA7G5.
>>
>> Temperature sensor available on SAMA7G5 provides 2 outputs VTEMP and VBG.
>> VTEMP is proportional to the absolute temperature voltage and VBG is a
>> quasi-temperature independent voltage. Both are necessary in computing
>> the temperature (for better accuracy). Also, for better accuracy the
>> following settings were imposed when measusing the temperature:
>> oversampling rate of 256, sampling frequency of 10MHz, a startup time of
>> 512 ticks, MR.tracktim=0xf, EMR.trackx=0x3.
>>
>> For computing the temperature measured by ADC calibration data is
>> necessary. This is provided via OTP memory available on SAMA7G5.
>>
>> Patches 1/16-3/16 provides some fixes.
>> Patches 3/16-12/16 prepares for the addition of temperature sensor
>> support.
>> Patch 13/16 adds the temperature sensor support.
>>
>> Along with temperature sensor support I took the chance and added
>> runtime PM support in this series, too (handled in patch 15/16).
>>
>> The rest of patches in this series are minor cleanups.
>>
>> Thank you,
>> Claudiu Beznea
> 
> Hi CLaudiu,
> 
> Those patches I haven't replied to individually look good to me.

Hi, Jonathan,

Thank you for your review!

> > Thanks,
> 
> Jonathan
> 
>>
>> Claudiu Beznea (16):
>>   iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX
>>   iio: adc: at91-sama5d2_adc: lock around oversampling and sample freq
>>   iio: adc: at91-sama5d2_adc: exit from write_raw() when buffers are
>>     enabled
>>   iio: adc: at91-sama5d2_adc: handle different EMR.OSR for different hw
>>     versions
>>   iio: adc: at91-sama5d2_adc: adjust osr based on specific platform data
>>   iio: adc: at91-sama5d2_adc: add 64 and 256 oversampling ratio
>>   iio: adc: at91-sama5d2_adc: simplify the code in
>>     at91_adc_read_info_raw()
>>   iio: adc: at91-sama5d2_adc: move oversampling storage in its function
>>   iio: adc: at91-sama5d2_adc: update trackx on emr
>>   iio: adc: at91-sama5d2_adc: add startup and tracktim as parameter for
>>     at91_adc_setup_samp_freq()
>>   iio: adc: at91-sama5d2_adc: add locking parameter to
>>     at91_adc_read_info_raw()
>>   dt-bindings: iio: adc: at91-sama5d2_adc: add id for temperature
>>     channel
>>   iio: adc: at91-sama5d2_adc: add support for temperature sensor
>>   iio: adc: at91-sama5d2_adc: add empty line after functions
>>   iio: adc: at91-sama5d2_adc: add runtime pm support
>>   iio: adc: at91-sama5d2_adc: use pm_ptr()
>>
>>  drivers/iio/adc/at91-sama5d2_adc.c            | 633 +++++++++++++++---
>>  .../dt-bindings/iio/adc/at91-sama5d2_adc.h    |   3 +
>>  2 files changed, 548 insertions(+), 88 deletions(-)
>>
>