[PATCH V21 0/9] Add Invensense ICM42607
Jonathan Cameron
jic23 at kernel.org
Fri Jul 31 19:14:18 PDT 2026
On Tue, 28 Jul 2026 19:12:47 -0500
Chris Morgan <macromorgan at hotmail.com> wrote:
> On Tue, Jul 28, 2026 at 05:55:31PM -0500, Chris Morgan wrote:
> > From: Chris Morgan <macromorgan at hotmail.com>
> >
> > Add support for the ICM42607 IMU. This sensor shares the same
> > functionality but a different register layout with the existing
> > ICM42600.
> >
> > This driver should work with the ICM42607 and ICM42607P over both I2C
> > and SPI, however only the ICM42607P over I2C could be tested.
> >
> > Changes Since v19:
> > - Removed remove routines and converted call to sensors_off to void,
> > and then added a devm_add_action_or_reset() to call it on device
> > teardown.
> >
> > Changes Since V20:
> > - Added missing include to inv_icm42607_temp.c.
> > - Corrected note pointed out by Sashiko.dev as incorrect.
> > - Added an additional delay for poweron based on the odr value of the
> > given sensor. After doing an extensive amount of testing with low
> > odr values (and even the default value for the gyro sensor) I was
> > able to intermittently create EINVAL conditions because the driver
> > was not waiting long enough after enabling the sensor, even
> > accounting for the sleep delay. Adding a delay for the time it takes
> > for the sensor to register a value corrected this intermittent issue
> > as best I can tell.
> >
> > Chris Morgan (9):
> > dt-bindings: iio: imu: icm42600: Add mount-matrix
> > dt-bindings: iio: imu: icm42600: Add icm42607
> > iio: imu: inv_icm42607: Add inv_icm42607 Core Driver
> > iio: imu: inv_icm42607: Add SPI For icm42607
> > iio: imu: inv_icm42607: Add PM support for icm42607
> > iio: imu: inv_icm42607: Add Accelerometer for icm42607
> > iio: imu: inv_icm42607: Add Gyroscope to icm42607
> > iio: imu: inv_icm42607: Add Temp Support in icm42607
> > arm64: dts: rockchip: Add icm42607p IMU for RG-DS
> >
> > .../bindings/iio/imu/invensense,icm42600.yaml | 20 +-
> > .../dts/rockchip/rk3568-anbernic-rg-ds.dts | 8 +-
> > drivers/iio/imu/Kconfig | 1 +
> > drivers/iio/imu/Makefile | 1 +
> > drivers/iio/imu/inv_icm42607/Kconfig | 30 +
> > drivers/iio/imu/inv_icm42607/Makefile | 13 +
> > drivers/iio/imu/inv_icm42607/inv_icm42607.h | 421 +++++++++++
> > .../iio/imu/inv_icm42607/inv_icm42607_accel.c | 316 ++++++++
> > .../iio/imu/inv_icm42607/inv_icm42607_core.c | 702 ++++++++++++++++++
> > .../iio/imu/inv_icm42607/inv_icm42607_gyro.c | 313 ++++++++
> > .../iio/imu/inv_icm42607/inv_icm42607_i2c.c | 97 +++
> > .../iio/imu/inv_icm42607/inv_icm42607_spi.c | 107 +++
> > .../iio/imu/inv_icm42607/inv_icm42607_temp.c | 99 +++
> > .../iio/imu/inv_icm42607/inv_icm42607_temp.h | 38 +
> > 14 files changed, 2164 insertions(+), 2 deletions(-)
> > create mode 100644 drivers/iio/imu/inv_icm42607/Kconfig
> > create mode 100644 drivers/iio/imu/inv_icm42607/Makefile
> > create mode 100644 drivers/iio/imu/inv_icm42607/inv_icm42607.h
> > create mode 100644 drivers/iio/imu/inv_icm42607/inv_icm42607_accel.c
> > create mode 100644 drivers/iio/imu/inv_icm42607/inv_icm42607_core.c
> > create mode 100644 drivers/iio/imu/inv_icm42607/inv_icm42607_gyro.c
> > create mode 100644 drivers/iio/imu/inv_icm42607/inv_icm42607_i2c.c
> > create mode 100644 drivers/iio/imu/inv_icm42607/inv_icm42607_spi.c
> > create mode 100644 drivers/iio/imu/inv_icm42607/inv_icm42607_temp.c
> > create mode 100644 drivers/iio/imu/inv_icm42607/inv_icm42607_temp.h
> >
> > --
> > 2.43.0
> >
>
> Woot! Perfect sashiko score. 21st time's the charm...
Nice and LGTM so applied patches 1-8. The final one should get picked up
via the appropriate rockchip tree.
It was a hard slog, but having watching sashiko rip apart a driver
of mine this week (long since merged) I definitely sympathise.
Congratulations. Applied to the testing branch of iio.git where the much
less 'risky' 0-day build bot will check we didn't miss anything on that front.
Thanks,
Jonathan
>
> Thank you,
> Chris
More information about the Linux-rockchip
mailing list