linux/drivers/iio
Linus Walleij cde4cb5dd4 iio: magn: ak8975: deploy runtime and system PM
This adds runtime PM support to the AK8975 driver. It solves two
problems:

- After reading the first value the chip was left in MODE_ONCE,
  meaning (presumably) it may be consuming more power. Now the
  runtime PM hooks kick in and set it to POWER_DOWN.

- Regulators were simply enabled and left on, making it
  impossible to turn the power consuming regulators off because
  of the increased refcount. We now disable the regulators at
  autosuspend.

- We also handle system suspend: by using pm_runtime_force_suspend()
  and pm_runtime_force_resume() from the system PM sleep hooks,
  the runtime PM code is managing the power also for this case.
  It is currently not completely optimal: when the system resumes
  the AK8975 goes into active mode even if noone is going to use
  it: currently the force calls need to be paired, but the runtime
  PM people are working on making it possible to leave devices
  runtime suspended when coming back from sleep.

Inspired by my work on the BH1780 light sensor driver.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2016-06-30 20:40:16 +01:00
..
accel iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
adc iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
amplifiers spi: Updates for v4.4 2015-11-05 13:15:12 -08:00
buffer iio: buffer-dma: Use ARRAY_SIZE in for loop range 2016-06-27 21:06:40 +01:00
chemical iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
common iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
dac iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
dummy iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
frequency iio: frequency: ad9523: use unsigned int rather then bare unsigned 2016-04-17 10:31:03 +01:00
gyro iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
health First round of IIO new device support, features and cleanups for the 4.8 cycle. 2016-06-09 09:15:58 -07:00
humidity Merge 4.7-rc4 into staging-next 2016-06-20 08:25:44 -07:00
imu iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
light iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
magnetometer iio: magn: ak8975: deploy runtime and system PM 2016-06-30 20:40:16 +01:00
orientation iio: orientation: hid-sensor-rotation: Fix memory leak in probe() 2015-05-17 09:10:25 +01:00
potentiometer iio: max5487: Add support for Maxim digital potentiometers 2016-05-21 20:13:14 +01:00
pressure iio: pressure: bmp280: add reset GPIO line handling 2016-06-30 20:39:40 +01:00
proximity iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
temperature iio: Export I2C module alias information 2016-05-21 20:08:14 +01:00
trigger iio:trigger: Experimental kthread tight loop trigger (thread only) 2016-06-03 13:18:44 +01:00
iio_core_trigger.h
iio_core.h iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
industrialio-buffer.c iio: fix config watermark initial value 2016-03-28 11:00:38 +01:00
industrialio-configfs.c iio:configfs: Introduce iio/configfs.h to provide a location for the configfs_subsystem 2015-12-05 16:25:30 +00:00
industrialio-core.c iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
industrialio-event.c iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
industrialio-sw-device.c iio: Add support for creating IIO devices via configfs 2016-05-04 11:43:54 +01:00
industrialio-sw-trigger.c iio: core: fix ptr_ret.cocci warnings 2016-01-20 17:09:18 -08:00
industrialio-trigger.c iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
industrialio-triggered-event.c iio: Support triggered events 2015-08-27 20:47:09 +01:00
inkern.c iio: core: Add devm_ APIs for iio_channel_{get,release}_all 2016-04-19 19:58:15 +01:00
Kconfig iio: Add support for creating IIO devices via configfs 2016-05-04 11:43:54 +01:00
Makefile iio: Add support for creating IIO devices via configfs 2016-05-04 11:43:54 +01:00