This patchset adds a IIO driver for the Bosch BMA400 3-axes ultra low-power accelerometer. The initial implementation of the driver adds read support for the acceleration and temperature data registers. The driver also has support for reading and writing to the output data rate, oversampling ratio, and scale configuration registers. The major update in this patchset version is the move from using tables to convert user input to/from the raw register value to using a function. Tests run: - Various tests with libiio and i2c-dev - dtbs_check and dt_binding_check Thanks again for the reviews of patches v4! If I missed anything please let me know. Cheers, - Dan Changes in v5: * Move to using a function instead of lookup tables for scale and frequency conversions. * Rename DT bindings to bosch,bma400.yaml * Fixed other errors and improvements found by reviewers Changes in v4: * Fix error in DT bindings * Fix typo when setting the OSR * Simplified the cached sample frequency * Fix the MODULE_LICENSE Changes in v3: * Use yaml format for DT bindings * Remove strict dependency on OF * Tidy Kconfig dependencies * Stylistic changes * Do not soft-reset device on remove Changes in v2: * Implemented iio_info -> read_avail * Stylistic changes * Implemented devicetree bindings Dan Robertson (2): dt-bindings: iio: accel: bma400: add bindings iio: (bma400) add driver for the BMA400 .../bindings/iio/accel/bosch,bma400.yaml | 39 + drivers/iio/accel/Kconfig | 16 + drivers/iio/accel/Makefile | 2 + drivers/iio/accel/bma400.h | 95 ++ drivers/iio/accel/bma400_core.c | 823 ++++++++++++++++++ drivers/iio/accel/bma400_i2c.c | 62 ++ 6 files changed, 1037 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/accel/bosch,bma400.yaml create mode 100644 drivers/iio/accel/bma400.h create mode 100644 drivers/iio/accel/bma400_core.c create mode 100644 drivers/iio/accel/bma400_i2c.c