[PATCH v2 0/5] Add Invensense ICM42607
Jean-Baptiste Maneyrol
Jean-Baptiste.Maneyrol at tdk.com
Thu Mar 19 12:55:19 PDT 2026
>
>________________________________________
>From: Chris Morgan <macroalpha82 at gmail.com>
>Sent: Thursday, March 19, 2026 19:29
>To: linux-iio at vger.kernel.org <linux-iio at vger.kernel.org>
>Cc: andy at kernel.org <andy at kernel.org>; nuno.sa at analog.com <nuno.sa at analog.com>; dlechner at baylibre.com <dlechner at baylibre.com>; jic23 at kernel.org <jic23 at kernel.org>; Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol at tdk.com>; linux-rockchip at lists.infradead.org <linux-rockchip at lists.infradead.org>; devicetree at vger.kernel.org <devicetree at vger.kernel.org>; heiko at sntech.de <heiko at sntech.de>; conor+dt at kernel.org <conor+dt at kernel.org>; krzk+dt at kernel.org <krzk+dt at kernel.org>; robh at kernel.org <robh at kernel.org>; andriy.shevchenko at intel.com <andriy.shevchenko at intel.com>; Chris Morgan <macromorgan at hotmail.com>
>Subject: [PATCH v2 0/5] Add Invensense ICM42607
>
>From: Chris Morgan <macromorgan@ 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
>ZjQcmQRYFpfptBannerStart
>This Message Is From an Untrusted Sender
>You have not previously corresponded with this sender.
>
>ZjQcmQRYFpfptBannerEnd
>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 V1:
> - Instead of creating a new driver, merged with the existing inv_icm42600
> driver. This necessitated adding some code to the existing driver to
> permit using a different register layout for the same functionality.
> - Split changes up a bit more to decrease the size of the individual
> patches. Note that patch 0004 is still pretty hefty; if I need to split
> further I may need to create some temporary stub functions.
> - Used guard() and PM_RUNTIME_ACQUIRE_AUTOSUSPEND() on the new functions
> per Jonathan's recommendations.
>
>Chris Morgan (5):
> dt-bindings: iio: imu: add icm42607
> iio: imu: inv_icm42600: Add support for using alternate registers
> iio: imu: inv_icm42600: Add registers for icm42607
> iio: imu: inv_icm42600: Add support for icm42607
> arm64: dts: rockchip: Add icm42607p IMU for RG-DS
>
> .../bindings/iio/imu/invensense,icm42600.yaml | 4 +
> .../dts/rockchip/rk3568-anbernic-rg-ds.dts | 20 +-
> drivers/iio/imu/inv_icm42600/inv_icm42600.h | 333 +++++++-
> .../iio/imu/inv_icm42600/inv_icm42600_accel.c | 497 ++++++++++-
> .../imu/inv_icm42600/inv_icm42600_buffer.c | 240 +++++-
> .../imu/inv_icm42600/inv_icm42600_buffer.h | 5 +
> .../iio/imu/inv_icm42600/inv_icm42600_core.c | 795 +++++++++++++++---
> .../iio/imu/inv_icm42600/inv_icm42600_gyro.c | 379 ++++++++-
> .../iio/imu/inv_icm42600/inv_icm42600_i2c.c | 53 +-
> .../iio/imu/inv_icm42600/inv_icm42600_spi.c | 59 +-
> .../iio/imu/inv_icm42600/inv_icm42600_temp.c | 64 ++
> .../iio/imu/inv_icm42600/inv_icm42600_temp.h | 4 +
> 12 files changed, 2289 insertions(+), 164 deletions(-)
>
>--
>2.43.0
>
>
Hello Chris,
thanks for the patch, but beware that there is a major difference between this
chip and inv_icm42600 chips family that is preventing to have a common driver.
inv_icm42600 chips are using direct register access with bank while icm42607
chip is using indirect register access using IREG specific registers. Some
registers cannot be read/write directly and requires programming specific
registers. The mechanism is similar to the one in inv_icm45600 driver, you can
have a look in this driver.
Using the same driver is not possible I think, since register access is different.
And there are also more differences between the 2 chip families that is making
a common driver quite difficult to do.
Thanks,
JB
More information about the Linux-rockchip
mailing list