This changeset adds support for the ADIS16460. Support for this chip, requires changes in both IIO & SPI, in order to support configurable/longer CS change delays. The default CS change delay is 10 uS, while the ADIS16460 requires a minimum of 16 uS. In order to accomodate this, the SPI transfer struct requires a `cs_change_delay_usecs` parameter that is used when `cs_change` is set. The ADIS library also requires a small update to support the new SPI `cs_change_delay_usecs`, and after that, support for ADIS16460 is added, since all the required parts for operating the chip are in the kernel. Continuing discussion from: https://lore.kernel.org/lkml/20190717115109.15168-5-alexandru.ardelean@xxxxxxxxxx/T/ Changelog v2 -> v3: * for SPI: * used `cs_change_delay` instead of `cs_change_delay_usecs` (i.e. removed `_usecs` suffix * used SPI specific subject line for SPI patch * for ADIS lib: * updated to use the `cs_change_delay` * for DT: * added Rob's `Reviewed-by` tag Changelog v1 -> v2: * for SPI: * renamed `cs_change_stall_delay_us` -> `cs_change_delay_usecs` initial recommendation was `cs_change_delay`, but decided to name this `cs_change_delay_usecs`, since the convention for these delays seems to add the `_usecs` suffix * for ADIS lib: * renamed `stall_delay` -> `cs_change_delay` * removed some assignments of `cs_change_delay` where `cs_change` is not set * for ADIS16460 driver: * fixed license * adjusted to new `cs_change_delay[_usecs]` Alexandru Ardelean (4): spi: Add optional stall delay between cs_change transfers iio: imu: adis: Add support for SPI transfer cs_change_delay iio: imu: Add support for the ADIS16460 IMU dt-bindings: iio: imu: add bindings for ADIS16460 .../bindings/iio/imu/adi,adis16460.yaml | 53 ++ MAINTAINERS | 8 + drivers/iio/imu/Kconfig | 12 + drivers/iio/imu/Makefile | 1 + drivers/iio/imu/adis.c | 6 + drivers/iio/imu/adis16460.c | 489 ++++++++++++++++++ drivers/spi/spi.c | 3 +- include/linux/iio/imu/adis.h | 2 + include/linux/spi/spi.h | 2 + 9 files changed, 575 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/iio/imu/adi,adis16460.yaml create mode 100644 drivers/iio/imu/adis16460.c -- 2.20.1