iio: adc: at91-sama5d2_adc: add support for suspend/resume functionality
authorEugen Hristev <eugen.hristev@microchip.com>
Fri, 23 Jun 2017 12:54:57 +0000 (15:54 +0300)
committerJonathan Cameron <jic23@kernel.org>
Sat, 1 Jul 2017 09:16:58 +0000 (10:16 +0100)
commit500a2eefd6b16ba141a8fb777ea6962d2eb65e3b
treee8659ebec0257fbea01866cf1413c8a4e6ee5a99
parentc24f83bad9a4f1c8ea2f39771f6b2e3b2afd35ed
iio: adc: at91-sama5d2_adc: add support for suspend/resume functionality

Added support for suspend/resume functionality for the ADC IP
in sama5d2 SoC.
In order to enter Suspend to ram mode (backup + self refresh mode for
memory), in which the ADC IP is no longer powered, we need to reset the
pins to default state, for the scenario when they are also used for I2C
bus to communicate with the PMIC.
On resume, we need to reconfigure the ADC IP registers and reconfigure the
trigger registers in the case when the suspend procedure is done while
sysfs has the buffer and trigger enabled.
In the case the suspend happens exactly during a software triggered
conversion, the request will time out, because we reset and power down
the ADC.

Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/adc/at91-sama5d2_adc.c