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

From: Jorijn van der Graaf

Date: Mon Jul 20 2026 - 13:35:00 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 once its WHOAMI value is known, so this is just the
compatible plus the chip id / WHOAMI table entries.

The part appears to be a mobile SKU and has no public datasheet. The
name comes from the Fairphone 6 schematics and platform documentation;
the WHOAMI value 0x0C was read from the hardware over both SPI and
I2C, and the chip's bank 0 register defaults match the ICM-42600
family layout. Jean-Baptiste, if you are able to confirm the part name
and WHOAMI value from the TDK side, that would be very welcome.

Tested on the Fairphone 6: patch 2 applied to the device's 7.1-based
kernel (with the id-table hunks adjusted to that base's style) drives
the chip over a bit-banged SPI bus with INT1 wired to the SoC - probe,
accelerometer, gyroscope and temperature raw reads, all full-scale
ranges, multiple sampling frequencies, and watermark-paced FIFO reads
through the INT1 interrupt. The accelerometer full scale was cross-checked against
gravity (~2048 LSB/g at the default range, matching +-16g); the
+-2000 dps gyroscope full scale is inferred from family membership,
pending confirmation from TDK.

The series is based on iio/togreg (base-commit below); on that base it
builds (arm64 defconfig with the driver as modules, W=1 clean on the
driver directory) and dt_binding_check passes.

Note: Chris Morgan's in-flight ICM-42607 series [1] adds entries to
the same binding enum; the overlap is context-only (different lines)
and trivial for whichever lands second.

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

The Fairphone 6 board DTS nodes will follow separately via the qcom
tree once this lands.

Jorijn van der Graaf (2):
dt-bindings: iio: imu: icm42600: add icm42630
iio: imu: inv_icm42600: add support for icm42630

.../devicetree/bindings/iio/imu/invensense,icm42600.yaml | 1 +
drivers/iio/imu/inv_icm42600/inv_icm42600.h | 2 ++
drivers/iio/imu/inv_icm42600/inv_icm42600_core.c | 5 +++++
drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c | 4 ++++
drivers/iio/imu/inv_icm42600/inv_icm42600_spi.c | 4 ++++
5 files changed, 16 insertions(+)


base-commit: 036d96ceec6d966339aea34d034420991e24cfac
--
2.55.0