[PATCH v3 0/3] iio: imu: inv_icm42600: add support for icm42630

From: Jorijn van der Graaf

Date: Tue Jul 28 2026 - 14:47:50 EST


The TDK InvenSense ICM-42630 is a 6-axis IMU of the ICM-42600 family,
used in the Fairphone 6. The existing inv_icm42600 driver drives it
unmodified.

The binding documents the new compatible with an invensense,icm42631
fallback, and the driver's WHOAMI check is dropped so that a
fallback-matched part can probe (on older kernels via a backport of
that one patch). No driver id entries are added: the part binds
through the fallback.

Tested on the Fairphone 6 with the fallback pair in the devicetree,
via a backport to its 7.1-based kernel: matched as icm42631 through
the fallback, the part probes silently, and accelerometer, gyroscope
and temperature reads work. The fuller v1 test set (all full-scale
ranges, several sampling frequencies, watermark-paced FIFO reads via
INT1) ran with v1's dedicated icm42630 id entries, whose configuration
is the same family default the fallback match selects.

Chris Morgan's icm42607 series [1] touches the same binding enum, so
whichever lands second has a trivial merge conflict. Its conditional
interrupts requirement covers the ICM-42630 automatically through the
fallback compatible.

Changes in v3:
- patch 2: drop the whoami check entirely instead of demoting the
mismatch error to a warning, and remove the now-unused whoami
definitions (Conor)
- dropped v2's patch 4 (dedicated icm42630 driver id entries): the
part binds through the fallback (Conor); Jean-Baptiste's Acked-by
on it lapses with the patch
- patch 1 and the binding patch are unchanged; series rebased onto
current iio/togreg

[1] https://lore.kernel.org/all/20260727164815.65190-1-macroalpha82@xxxxxxxxx/

v2: https://lore.kernel.org/all/20260724202708.128267-1-jorijnvdgraaf@xxxxxxxxxxxxx/
v1: https://lore.kernel.org/all/20260720173411.82979-1-jorijnvdgraaf@xxxxxxxxxxxxx/

Jorijn van der Graaf (3):
iio: imu: inv_icm42600: sort device id tables numerically
iio: imu: inv_icm42600: drop the whoami check
dt-bindings: iio: imu: icm42600: add icm42630

.../bindings/iio/imu/invensense,icm42600.yaml | 20 +++++++++++--------
drivers/iio/imu/inv_icm42600/inv_icm42600.h | 9 ---------
.../iio/imu/inv_icm42600/inv_icm42600_core.c | 17 ----------------
.../iio/imu/inv_icm42600/inv_icm42600_i2c.c | 16 +++++++--------
.../iio/imu/inv_icm42600/inv_icm42600_spi.c | 16 +++++++--------
5 files changed, 28 insertions(+), 50 deletions(-)


base-commit: 0506462caaecb179708657142575823177c83783
--
2.55.0