OSDN Git Service

iio: imu: adis: generalize burst mode support
authorAlexandru Ardelean <alexandru.ardelean@analog.com>
Fri, 22 Mar 2019 20:44:39 +0000 (22:44 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 4 Apr 2019 19:20:24 +0000 (20:20 +0100)
commit5075e0720d93a84e059759c5d8c6a78613d0face
treeecdea898d086f2bcf97cab74966cb5cb6b26c6c5
parent74878d4fa816443716bd8adf4f9f6986f5c6f256
iio: imu: adis: generalize burst mode support

Some variants in the ADIS16400 family support burst mode. This mechanism is
implemented in the `adis16400_buffer.c` file.

Some variants in ADIS16480 are also adding burst mode, which is
functionally similar to ADIS16400, but with different parameters. To get
there, a `adis_burst` struct is added to parametrize certain bits of the
SPI communication to setup: the register that triggers burst-mode, and the
extra-data-length that needs be accounted for when building the bust-length
buffer.

The trigger handler cannot be made generic, since it's very specific to
each ADIS164XX family.

A future enhancement of this `adis_burst` mode will be the possibility to
enable/disable burst-mode. For the ADIS16400 family it's hard-coded to on
by default. But for ADIS16480 there will be a need to disable this.

When that will be implemented, both ADIS16400 & ADIS16480 will have the
burst-mode enable-able/disable-able.

Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/adis16400_buffer.c
drivers/iio/imu/adis16400_core.c
include/linux/iio/imu/adis.h