[PATCH v2 0/4] iio: imu: inv_icm42600: add support for icm42630

From: Jorijn van der Graaf

Date: Fri Jul 24 2026 - 16:31:41 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.

v2 restructures the series per the v1 review: the binding documents the
new compatible with an invensense,icm42631 fallback, and the driver's
WHOAMI hard check becomes a warning so that a fallback-matched part can
probe at all (on older kernels via a backport of that one patch). The
id tables are sorted numerically in a precursor patch and the new
entries slot into numeric position.

Both resulting paths were tested on the Fairphone 6 with the fallback
pair in the devicetree, via backports to its 7.1-based kernel: matched
as icm42631 through the fallback (patch 2 alone, dedicated entries
removed), the part warns once, probes, and accelerometer, gyroscope
and temperature reads work; with the dedicated entries present it
binds as icm42630 without a warning. The fuller v1 test set (all
full-scale ranges, several sampling frequencies, watermark-paced FIFO
reads via INT1) ran with the dedicated compatible and is unchanged by
this revision.

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 v2:
- new patch 1: sort the device id tables numerically (Jonathan)
- new patch 2: warn on whoami mismatch instead of failing probe
(Conor, Jonathan)
- patch 3 (v1 patch 1): compatible now documented with the icm42631
fallback (Jonathan); commit message rewritten; dropped Jean-Baptiste's
Acked-by because of the rework
- patch 4 (v1 patch 2): match entries placed in numeric position
(Jonathan); kept Jean-Baptiste's Acked-by - the only code change is
the entry placement; its commit message gains a sentence on the
fallback and a more precise note on the tested backport

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

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

Jorijn van der Graaf (4):
iio: imu: inv_icm42600: sort device id tables numerically
iio: imu: inv_icm42600: warn on whoami mismatch instead of failing
probe
dt-bindings: iio: imu: icm42600: add icm42630
iio: imu: inv_icm42600: add support for icm42630

.../bindings/iio/imu/invensense,icm42600.yaml | 20 +++++++++++--------
drivers/iio/imu/inv_icm42600/inv_icm42600.h | 2 ++
.../iio/imu/inv_icm42600/inv_icm42600_core.c | 13 +++++++-----
.../iio/imu/inv_icm42600/inv_icm42600_i2c.c | 18 ++++++++++-------
.../iio/imu/inv_icm42600/inv_icm42600_spi.c | 18 ++++++++++-------
5 files changed, 44 insertions(+), 27 deletions(-)


base-commit: 036d96ceec6d966339aea34d034420991e24cfac
--
2.55.0