[PATCH 0/3] Add driver for Invensense ICM42370P accelerometer

Kanak Shilledar posted 3 patches 1 month, 3 weeks ago
There is a newer version of this series
.../bindings/iio/accel/invensense,icm42370.yaml    |   65 +
MAINTAINERS                                        |    9 +
drivers/iio/accel/Kconfig                          |   18 +
drivers/iio/accel/Makefile                         |    6 +
drivers/iio/accel/inv_icm42370.h                   |  371 +++++
drivers/iio/accel/inv_icm42370_buffer.c            |  504 +++++++
drivers/iio/accel/inv_icm42370_buffer.h            |   97 ++
drivers/iio/accel/inv_icm42370_core.c              | 1454 ++++++++++++++++++++
drivers/iio/accel/inv_icm42370_i2c.c               |  103 ++
9 files changed, 2627 insertions(+)
[PATCH 0/3] Add driver for Invensense ICM42370P accelerometer
Posted by Kanak Shilledar 1 month, 3 weeks ago
Invensense ICM42370P is a high performance MEMS MotionTracking 3-axis
accelerometer. It supports I2C, I3C and SPI protocols. It has a 2.25kB
FIFO and two programmable interrupts with support for ultra-low-power
wake-on-motion support. It has a built-in temperature sensor. This
patch series adds basic support for the sensor with functionality of
performing raw reads and writes along with buffered reads via the I2C
interface.

This device contains 4 register banks for configuring the device called
MREG0, MREG1, MREG2 and MREG3. Unlike other devices from the same
vendor, this contains a very different way of accessing the register
banks apart from the default user bank 0 (MREG0). The register bank access
procedure is mentioned in the datasheet [1] Section 13. Due to this
specific reason and that it doesn't have a gyro sensor, it is implemented
as a standalone driver.

This device has 3 formats for the FIFO structure (datasheet [1] Section
6), currently only FIFO packet format 1 is supported, others
formats can be added as part of future work.

The device supports EDGE and LEVEL triggered interrupts, refer the dt-binding
for example of how the devicetree should be setup.

The driver is inspired from iio/imu/inv_icm42600.

[1] https://uat.invensense.com/en-us/products/3-axis/icm-42370-p

Signed-off-by: Kanak Shilledar <kanak.shilledar@axis.com>
---
Kanak Shilledar (3):
      dt-bindings: Add InvenSense ICM-42370-p accelerometer
      iio: accel: Add support for ICM42370P
      iio: accel: icm42370: Add FIFO buffer functionality

 .../bindings/iio/accel/invensense,icm42370.yaml    |   65 +
 MAINTAINERS                                        |    9 +
 drivers/iio/accel/Kconfig                          |   18 +
 drivers/iio/accel/Makefile                         |    6 +
 drivers/iio/accel/inv_icm42370.h                   |  371 +++++
 drivers/iio/accel/inv_icm42370_buffer.c            |  504 +++++++
 drivers/iio/accel/inv_icm42370_buffer.h            |   97 ++
 drivers/iio/accel/inv_icm42370_core.c              | 1454 ++++++++++++++++++++
 drivers/iio/accel/inv_icm42370_i2c.c               |  103 ++
 9 files changed, 2627 insertions(+)
---
base-commit: 350d1fb9204b13c5f95e511e98b8bcb47574d425
change-id: 20260629-b4-inv_icm42370p-ccd671066bcf

Best regards,
--  
Kanak Shilledar <kanak.shilledar@axis.com>