linux/drivers/iio
Linus Walleij 6436db37b4 iio: st_sensors: read each channel individually
The current buffer read code tries to optimize reads from the
sensor data registers by issuing a single read operation across
all the indata registers.

This doesn't work: when the LIS331DL accelerometer sensor is
configured to open drain, active low interrupt mode, this will
just clear the XDA (X-axis data available) bit in the STATUS_REG
register (0x27), while YDA, ZDA and even ZYXDA remain set to 1,
and the internal logic of the sensor holds the DRDY (INT1) line
asserted (the value of the status register is 0xee).

If we instead issue one read operation per enabled channel
(X, Y, Z) things start working and we can use open drain and
active low interrupts.

Note that a backported patch fixing this issue will be heading
via the fixes branch but changes in this file already in staging-next
will make that patch 'look' rather different.  The code in here
is the correct one when that clash hits.

Cc: Giuseppe Barba <giuseppe.barba@st.com>
Cc: Denis Ciocca <denis.ciocca@st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2016-04-19 19:58:11 +01:00
..
accel iio: accel: mma7455: use regmap to retrieve struct device 2016-04-10 14:50:06 +01:00
adc iio: mxs-lradc: move STMP reset out of ADC init 2016-04-19 19:58:10 +01:00
amplifiers spi: Updates for v4.4 2015-11-05 13:15:12 -08:00
buffer iio: buffer-dmaengine: Use dmaengine_terminate_sync() 2016-02-09 21:05:17 +00:00
chemical iio: convert to common i2c_check_functionality() return value 2016-02-27 17:17:43 +00:00
common iio: st_sensors: read each channel individually 2016-04-19 19:58:11 +01:00
dac iio: dac: Add support for the AD5592R/AD5593R ADCs/DACs 2016-04-10 14:29:06 +01:00
dummy Second set of IIO new drivers, functionality and cleanups for the 4.5 cycle. 2015-12-26 17:03:33 -08:00
frequency iio: frequency: ad9523: use unsigned int rather then bare unsigned 2016-04-17 10:31:03 +01:00
gyro iio: remove gpio interrupt probing from drivers that use a single interrupt 2016-04-03 10:27:48 +01:00
health iio: health/afe4404: mark suspend/resume functions __maybe_unused 2016-02-17 19:36:01 +00:00
humidity iio: dht11: Improve logging 2016-04-10 17:40:06 +01:00
imu iio:adis: Add support for manual self-test flag clear 2016-04-16 13:42:43 +01:00
light iio: light: new driver for the ROHM BH1780 2016-04-16 20:51:50 +01:00
magnetometer iio: magn: bmc150: Introduce SPI support 2016-04-18 20:44:47 +01:00
orientation iio: orientation: hid-sensor-rotation: Fix memory leak in probe() 2015-05-17 09:10:25 +01:00
potentiometer iio: potentiometer: add driver for Maxim Integrated DS1803 2016-04-10 12:34:09 +01:00
pressure iio: pressure: ms5611: use tab for indention 2016-04-16 13:39:28 +01:00
proximity iio: convert to common i2c_check_functionality() return value 2016-02-27 17:17:43 +00:00
temperature iio: convert to common i2c_check_functionality() return value 2016-02-27 17:17:43 +00:00
trigger iio: trigger: Introduce IIO hrtimer based trigger 2015-12-03 18:19:27 +00:00
iio_core_trigger.h
iio_core.h iio: Move buffer registration to the core 2014-12-12 12:28:31 +00:00
industrialio-buffer.c iio: Add helper function for calculating scan index storage size 2016-02-06 18:21:35 +00: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: Add channel for UV index 2016-04-03 11:14:01 +01:00
industrialio-event.c iio: event: Remove negative error code from iio_event_poll 2015-08-12 19:26:39 +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: Support triggered events 2015-08-27 20:47:09 +01:00
industrialio-triggered-event.c iio: Support triggered events 2015-08-27 20:47:09 +01:00
inkern.c iio: inkern: add a missing space before if 2016-04-16 13:39:22 +01:00
Kconfig iio: light: add MAX30100 oximeter driver support 2015-12-12 12:14:37 +00:00
Makefile iio: light: add MAX30100 oximeter driver support 2015-12-12 12:14:37 +00:00