Lars-Peter Clausen
d7c773412f
iio: ad_sigma_delta: Properly handle SPI bus locking vs CS assertion
...
[ Upstream commit df1d80aee963480c5c2938c64ec0ac3e4a0df2e0 ]
For devices from the SigmaDelta family we need to keep CS low when doing a
conversion, since the device will use the MISO line as a interrupt to
indicate that the conversion is complete.
This is why the driver locks the SPI bus and when the SPI bus is locked
keeps as long as a conversion is going on. The current implementation gets
one small detail wrong though. CS is only de-asserted after the SPI bus is
unlocked. This means it is possible for a different SPI device on the same
bus to send a message which would be wrongfully be addressed to the
SigmaDelta device as well. Make sure that the last SPI transfer that is
done while holding the SPI bus lock de-asserts the CS signal.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Alexandru Ardelean <Alexandru.Ardelean@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-05-31 06:46:24 -07:00
..
accel
iio: accel: kxcjk1013 3-axis accelerometer driver
2014-06-14 17:10:21 +01:00
adc
iio: ad_sigma_delta: Properly handle SPI bus locking vs CS assertion
2019-05-31 06:46:24 -07:00
common
iio: cros_ec: Move cros_ec_sensors_core.h in /include
2018-03-17 19:59:20 +00:00
dac
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
frequency
iio: frequency: adf4350: cast value to unsigned to make code checkers happy
2013-06-04 18:36:52 +01:00
gyro
itg3200: fix incorrect ifdef comment
2013-03-18 10:59:42 +01:00
imu
iio:adis: Add support for manual self-test flag clear
2016-04-16 13:42:43 +01:00
magnetometer
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
timer
iio: stm32: fix adc/trigger link error
2017-12-02 11:21:31 +00:00
buffer-dma.h
iio: buffer: fix the function signature to match implementation
2018-06-24 14:23:21 +01:00
buffer-dmaengine.h
iio: Add a DMAengine framework based buffer
2015-10-25 13:55:32 +00:00
buffer.h
iio:buffer.h - split into buffer.h and buffer_impl.h
2017-01-10 19:54:55 +00:00
buffer_impl.h
iio:buffer: make length types match kfifo types
2018-03-30 11:14:32 +01:00
configfs.h
iio:configfs: Introduce iio/configfs.h to provide a location for the configfs_subsystem
2015-12-05 16:25:30 +00:00
consumer.h
IIO: consumer: allow to set buffer sizes
2018-01-10 10:30:14 +00:00
driver.h
iio: Simplify iio_map_array_unregister API
2013-02-02 12:02:20 +00:00
events.h
iio: Export userspace IIO headers
2015-02-14 17:05:03 +00:00
hw-consumer.h
IIO: hw_consumer: add devm_iio_hw_consumer_alloc
2018-01-10 10:30:07 +00:00
iio.h
iio: iio.h: use nested struct support on kernel-doc markup
2018-05-07 18:18:18 +01:00
kfifo_buf.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
machine.h
iio: Add macro to populate struct iio_map array
2017-12-02 13:28:21 +00:00
sw_device.h
iio: make function argument and some structures const
2017-10-19 16:15:24 +02:00
sw_trigger.h
iio: make function argument and some structures const
2017-10-19 16:15:24 +02:00
sysfs.h
include: linux: iio: add IIO_ATTR_{RO, WO, RW} and IIO_DEVICE_ATTR_{RO, WO, RW} macros
2016-10-01 14:43:59 +01:00
trigger.h
iio: add field identifier for @use_count kernel-doc
2018-01-08 16:03:43 +01:00
trigger_consumer.h
iio:trigger_consumer.h: Add missing includes and forward declarations
2012-08-27 18:57:59 +01:00
triggered_buffer.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
triggered_event.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
types.h
IIO: inkern: API for manipulating channel attributes
2018-01-10 10:30:08 +00:00