linux/drivers/iio
Stefan Brüns 9273aa16b3 iio: adc: ina2xx: Actually align the loop with the conversion ready flag
Currently, the registers are read out once per conversion interval. If
the reading is delayed as the conversion has not yet finished, this extra
time is treated as being part of the readout, although it should delay
the start of the poll interval. This results in the interval starting
slightly earlier in each iteration, until all time between reads is
spent polling the status registers instead of sleeping.

To fix this, the delay has to account for the state of the conversion
ready flag. Whenever the conversion is already finished, schedule the next
read on the regular interval, otherwise schedule it one interval after the
flag bit has been set.

Split the work function in two functions, one for the status poll and one
for reading the values, to be able to note down the time when the flag
bit is raised.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-01-08 16:03:43 +01:00
..
accel iio: mma8452: replace license description with SPDX specifier 2018-01-08 16:03:41 +01:00
adc iio: adc: ina2xx: Actually align the loop with the conversion ready flag 2018-01-08 16:03:43 +01:00
amplifiers iio:amplifiers:ad8366 drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:24:50 +01:00
buffer License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
chemical iio: chemical: ccs811: Add support for data ready trigger 2017-09-24 12:34:36 +01:00
common iio: common: ssp_sensors: use ktime_get_real_ns() timestamps 2018-01-08 16:03:41 +01:00
counter iio: stm32: Adopt SPDX identifier 2018-01-08 16:03:41 +01:00
dac iio: dac: mcp4725: Remove unneeded conversions to bool 2018-01-08 16:03:41 +01:00
dummy iio: dummy_evgen: modify the return value check for irq_sim_init() 2018-01-08 16:03:41 +01:00
frequency iio:frequency: drop assign iio_info.driver_module 2017-08-22 21:28:20 +01:00
gyro drivers: iio: gyro: remove duplicate includes 2018-01-08 16:03:42 +01:00
health Merge Linus's staging merge point into staging-next 2017-12-06 15:27:17 +01:00
humidity Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
imu iio: imu: inv_mpu6050: Remove duplicate NULL check 2017-12-02 10:40:11 +00:00
light iio: light: make a couple of config structures static 2018-01-08 16:03:41 +01:00
magnetometer iio: magnetometer: ak8975: Add another ACPI ID 2017-12-02 10:40:02 +00:00
multiplexer iio: multiplexer: add NULL check on devm_kzalloc() and devm_kmemdup() return values 2017-09-03 18:10:29 +01:00
orientation iio:orientation: drop assign iio_info.driver_module 2017-08-22 21:33:36 +01:00
potentiometer Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
potentiostat iio:potentiostat:lmp91000 drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:34:48 +01:00
pressure Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
proximity Merge Linus's staging merge point into staging-next 2017-12-06 15:27:17 +01:00
temperature Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
trigger iio: stm32: Adopt SPDX identifier 2018-01-08 16:03:41 +01:00
iio_core_trigger.h
iio_core.h
industrialio-buffer.c iio: buffer: Expose data available 2018-01-08 16:03:41 +01:00
industrialio-configfs.c iio: make function argument and some structures const 2017-10-19 16:15:24 +02:00
industrialio-core.c Merge Linus's staging merge point into staging-next 2017-12-06 15:27:17 +01:00
industrialio-event.c
industrialio-sw-device.c iio: make function argument and some structures const 2017-10-19 16:15:24 +02:00
industrialio-sw-trigger.c iio: make function argument and some structures const 2017-10-19 16:15:24 +02:00
industrialio-trigger.c iio:trigger: Remove necessity to have a trig->ops structure. 2017-08-22 21:20:28 +01:00
industrialio-triggered-event.c
inkern.c First round of IIO new device support, features and cleanups for the 4.14 cycle. 2017-07-27 21:29:49 -07:00
Kconfig iio: multiplexer: new iio category and iio-mux driver 2017-06-03 19:29:26 +09:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00