Commit db6ed4d2 authored by Alexandru Ardelean's avatar Alexandru Ardelean Committed by Jonathan Cameron

iio: imu: Add support for the ADIS16460 IMU

The ADIS16460 device is a complete inertial system that includes a triaxial
gyroscope and a triaxial accelerometer. It's more simplified design than
that of the ADIS16480, and does not offer the triaxial magnetometers &
pressure sensors. It does also have a temperature sensor (like the
ADIS16480).
Since it is part of the ADIS16XXX family, it re-uses parts of the ADIS
library.

Naturally, the register map is different and much more simplified than the
ADIS16480 subfamily, so it cannot be integrated into that driver. A major
difference is that the registers are not paged.

One thing that is particularly special about it, is that it requires a
higher delay between CS changes (i.e. when CS goes up, the spec recommends
that it be brought down after a minimum of 16 uS).
Other ADIS chips require (via spec) a minimum of 2 uS between CS changes.
The kernel's 10 uS default should be fine for those other chips; they
haven't been tested with lower CS change delays yet.

Datasheet:
  https://www.analog.com/media/en/technical-documentation/data-sheets/adis16460.pdfSigned-off-by: default avatarDragos Bogdan <dragos.bogdan@analog.com>
Signed-off-by: default avatarMichael Hennerich <michael.hennerich@analog.com>
Signed-off-by: default avatarAlexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent dca39af8
...@@ -945,6 +945,13 @@ L: linux-iio@vger.kernel.org ...@@ -945,6 +945,13 @@ L: linux-iio@vger.kernel.org
F: include/linux/iio/imu/adis.h F: include/linux/iio/imu/adis.h
F: drivers/iio/imu/adis.c F: drivers/iio/imu/adis.c
ANALOG DEVICES INC ADIS16460 DRIVER
M: Dragos Bogdan <dragos.bogdan@analog.com>
S: Supported
L: linux-iio@vger.kernel.org
W: http://ez.analog.com/community/linux-device-drivers
F: drivers/iio/imu/adis16460.c
ANALOG DEVICES INC ADP5061 DRIVER ANALOG DEVICES INC ADP5061 DRIVER
M: Stefan Popa <stefan.popa@analog.com> M: Stefan Popa <stefan.popa@analog.com>
L: linux-pm@vger.kernel.org L: linux-pm@vger.kernel.org
......
...@@ -17,6 +17,18 @@ config ADIS16400 ...@@ -17,6 +17,18 @@ config ADIS16400
adis16365, adis16400 and adis16405 triaxial inertial sensors adis16365, adis16400 and adis16405 triaxial inertial sensors
(adis16400 series also have magnetometers). (adis16400 series also have magnetometers).
config ADIS16460
tristate "Analog Devices ADIS16460 and similar IMU driver"
depends on SPI
select IIO_ADIS_LIB
select IIO_ADIS_LIB_BUFFER if IIO_BUFFER
help
Say yes here to build support for Analog Devices ADIS16460 inertial
sensor.
To compile this driver as a module, choose M here: the module will be
called adis16460.
config ADIS16480 config ADIS16480
tristate "Analog Devices ADIS16480 and similar IMU driver" tristate "Analog Devices ADIS16480 and similar IMU driver"
depends on SPI depends on SPI
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
# When adding new entries keep the list in alphabetical order # When adding new entries keep the list in alphabetical order
obj-$(CONFIG_ADIS16400) += adis16400.o obj-$(CONFIG_ADIS16400) += adis16400.o
obj-$(CONFIG_ADIS16460) += adis16460.o
obj-$(CONFIG_ADIS16480) += adis16480.o obj-$(CONFIG_ADIS16480) += adis16480.o
adis_lib-y += adis.o adis_lib-y += adis.o
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment