[PATCH v2 00/19] iio: adc: at91-sama5d2_adc: add support for temperature sensor

From: Claudiu Beznea
Date: Tue Jun 28 2022 - 11:14:35 EST


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/19-4/19 provides some fixes.
Patches 5/19-16/19 prepares for the addition of temperature sensor
support.
Patch 17/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 19/19).

The rest of patches in this series are minor cleanups.

Thank you,
Claudiu Beznea

Changes in v2:
- addressed review comments
- with this, new patches were intruced in this series: 2/19, 4/19,
8/19, 9,19
- runtime pm support has been adapted to work also when CONFIG_PM
is not enabled
- collected tags

Claudiu Beznea (19):
iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX
iio: adc: at91-sama5d2_adc: check return status for pressure and touch
iio: adc: at91-sama5d2_adc: lock around oversampling and sample freq
iio: adc: at91-sama5d2_adc: disable/prepare buffer on suspend/resume
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: move the check of oversampling in its
function
iio: adc: at91-sama5d2_adc: drop AT91_OSR_XSAMPLES defines
iio: adc: at91-sama5d2_adc: add .read_avail() chan_info ops
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: 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: lock around 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

drivers/iio/adc/at91-sama5d2_adc.c | 683 +++++++++++++++---
.../dt-bindings/iio/adc/at91-sama5d2_adc.h | 3 +
2 files changed, 566 insertions(+), 120 deletions(-)

--
2.34.1