devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/8] iio: imu: new inv_icm45600 driver
@ 2025-04-11 13:28 Remi Buisson via B4 Relay
  2025-04-11 13:28 ` [PATCH 1/8] iio: imu: inv_icm45600: add " Remi Buisson via B4 Relay
                   ` (7 more replies)
  0 siblings, 8 replies; 19+ messages in thread
From: Remi Buisson via B4 Relay @ 2025-04-11 13:28 UTC (permalink / raw)
  To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley
  Cc: linux-kernel, linux-iio, devicetree, Remi Buisson

This series add a new driver for managing InvenSense ICM-456xx 6-axis IMUs.
This next generation of chips includes new generations of 3-axis gyroscope
and 3-axis accelerometer, support of I3C in addition to I2C and SPI, and
intelligent MotionTracking features like pedometer, tilt detection, and
tap detection.

This series is delivering a driver supporting gyroscope, accelerometer and
temperature data, with polling and buffering using hwfifo and watermark,
on I2C, SPI and I3C busses.

Gyroscope and accelerometer sensors are completely independent and can have
different ODRs. Since there is only a single FIFO a specific value is used to
mark invalid data. For keeping the device standard we are de-multiplexing data
from the FIFO to 2 IIO devices with 2 buffers, 1 for the accelerometer and 1
for the gyroscope. This architecture also enables to easily turn each sensor
on/off without impacting the other. The device interrupt is used to read the
FIFO and launch parsing of accelerometer and gyroscope data. This driver
relies on the common Invensense timestamping mechanism to handle correctly
FIFO watermark and dynamic changes of settings.

The structure of the driver is quite similar to the inv_icm42600 driver,
however there are significant reasons for adding a different driver for
inv_icm45600, such as:
- A completely different register map.
- Different FIFO management, based on number of samples instead of bytes.
- Different indirect register access mechanism.

Signed-off-by: Remi Buisson <remi.buisson@tdk.com>
---
Remi Buisson (8):
      iio: imu: inv_icm45600: add new inv_icm45600 driver
      iio: imu: inv_icm45600: add I2C driver for inv_icm45600 driver
      iio: imu: inv_icm45600: add SPI driver for inv_icm45600 driver
      iio: imu: inv_icm45600: add I3C driver for inv_icm45600 driver
      iio: imu: inv_icm45600: add buffer support in iio devices
      iio: imu: add Kconfig and Makefile for inv_icm45600 driver
      dt-bindings: iio: imu: Add inv_icm45600 documentation
      MAINTAINERS: add entry for inv_icm45600 6-axis imu sensor

 .../ABI/testing/sysfs-bus-iio-inv_icm45600         |  37 +
 .../bindings/iio/imu/invensense,icm45600.yaml      | 136 +++
 MAINTAINERS                                        |   9 +
 drivers/iio/imu/Kconfig                            |   1 +
 drivers/iio/imu/Makefile                           |   1 +
 drivers/iio/imu/inv_icm45600/Kconfig               |  70 ++
 drivers/iio/imu/inv_icm45600/Makefile              |  17 +
 drivers/iio/imu/inv_icm45600/inv_icm45600.h        | 421 ++++++++++
 drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c  | 902 ++++++++++++++++++++
 drivers/iio/imu/inv_icm45600/inv_icm45600_buffer.c | 572 +++++++++++++
 drivers/iio/imu/inv_icm45600/inv_icm45600_buffer.h | 100 +++
 drivers/iio/imu/inv_icm45600/inv_icm45600_core.c   | 906 ++++++++++++++++++++
 drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c   | 919 +++++++++++++++++++++
 drivers/iio/imu/inv_icm45600/inv_icm45600_i2c.c    | 103 +++
 drivers/iio/imu/inv_icm45600/inv_icm45600_i3c.c    |  84 ++
 drivers/iio/imu/inv_icm45600/inv_icm45600_spi.c    | 110 +++
 drivers/iio/imu/inv_icm45600/inv_icm45600_temp.c   |  82 ++
 drivers/iio/imu/inv_icm45600/inv_icm45600_temp.h   |  31 +
 18 files changed, 4501 insertions(+)
---
base-commit: 1c2409fe38d5c19015d69851d15ba543d1911932
change-id: 20250411-add_newport_driver-529cf5b71ea8

Best regards,
-- 
Remi Buisson <remi.buisson@tdk.com>



^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2025-04-12 19:16 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-11 13:28 [PATCH 0/8] iio: imu: new inv_icm45600 driver Remi Buisson via B4 Relay
2025-04-11 13:28 ` [PATCH 1/8] iio: imu: inv_icm45600: add " Remi Buisson via B4 Relay
2025-04-12 19:10   ` Jonathan Cameron
2025-04-11 13:28 ` [PATCH 2/8] iio: imu: inv_icm45600: add I2C driver for " Remi Buisson via B4 Relay
2025-04-11 19:21   ` Andy Shevchenko
2025-04-11 13:28 ` [PATCH 3/8] iio: imu: inv_icm45600: add SPI " Remi Buisson via B4 Relay
2025-04-11 13:28 ` [PATCH 4/8] iio: imu: inv_icm45600: add I3C " Remi Buisson via B4 Relay
2025-04-11 13:28 ` [PATCH 5/8] iio: imu: inv_icm45600: add buffer support in iio devices Remi Buisson via B4 Relay
2025-04-12 19:13   ` Jonathan Cameron
2025-04-12 19:15     ` Andy Shevchenko
2025-04-11 13:28 ` [PATCH 6/8] iio: imu: add Kconfig and Makefile for inv_icm45600 driver Remi Buisson via B4 Relay
2025-04-11 17:36   ` Jonathan Cameron
2025-04-11 13:28 ` [PATCH 7/8] dt-bindings: iio: imu: Add inv_icm45600 documentation Remi Buisson via B4 Relay
2025-04-11 14:39   ` Rob Herring (Arm)
2025-04-11 21:16   ` Rob Herring
2025-04-11 21:18   ` David Lechner
2025-04-12 18:17     ` Jonathan Cameron
2025-04-12 18:24   ` Jonathan Cameron
2025-04-11 13:28 ` [PATCH 8/8] MAINTAINERS: add entry for inv_icm45600 6-axis imu sensor Remi Buisson via B4 Relay

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).