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

Jorijn van der Graaf posted 3 patches 1 month ago
.../bindings/iio/imu/invensense,icm42600.yaml | 24 +++++++++++--------
.../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 ++++++-------
4 files changed, 44 insertions(+), 29 deletions(-)
[PATCH v5 0/3] iio: imu: inv_icm42600: add support for icm42630
Posted by Jorijn van der Graaf 1 month ago
The TDK InvenSense ICM-42630 is a 6-axis IMU of the ICM-42600 family,
used in the Fairphone 6. It needs no part-specific driver code: TDK
confirmed it can be supported by inv_icm42600 without modification.

The binding documents the new compatible with an invensense,icm42631
fallback, and a WHOAMI mismatch no longer fails probe, so that a
fallback-matched part can probe; one informational line records the
mismatch, and a whoami of 0x00/0xff (no response) still fails. 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 with the one informational line, and
accelerometer, gyroscope and temperature reads work.

Changes in v5:
- patch 2: the no-response guard moves before the whoami-mismatch
  comparison as its own check (Andy); it does not depend on
  hw->whoami, since no supported part uses either value
- patch 2: the four Link trailers are dropped (Andy, Jonathan); the
  Suggested-by tags carry the attribution

v4: https://lore.kernel.org/all/20260810191157.125550-1-jorijnvdgraaf@catcrafts.net/
v3: https://lore.kernel.org/all/20260728184351.75015-1-jorijnvdgraaf@catcrafts.net/
v2: https://lore.kernel.org/all/20260724202708.128267-1-jorijnvdgraaf@catcrafts.net/
v1: https://lore.kernel.org/all/20260720173411.82979-1-jorijnvdgraaf@catcrafts.net/

Jorijn van der Graaf (3):
  iio: imu: inv_icm42600: sort device id tables numerically
  iio: imu: inv_icm42600: log whoami mismatch instead of failing probe
  dt-bindings: iio: imu: icm42600: add icm42630

 .../bindings/iio/imu/invensense,icm42600.yaml | 24 +++++++++++--------
 .../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 ++++++-------
 4 files changed, 44 insertions(+), 29 deletions(-)


base-commit: 350d1fb9204b13c5f95e511e98b8bcb47574d425
-- 
2.55.0
Re: [PATCH v5 0/3] iio: imu: inv_icm42600: add support for icm42630
Posted by Jonathan Cameron 1 month ago
On Sun, 23 Aug 2026 02:33:17 +0200
Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net> wrote:

> The TDK InvenSense ICM-42630 is a 6-axis IMU of the ICM-42600 family,
> used in the Fairphone 6. It needs no part-specific driver code: TDK
> confirmed it can be supported by inv_icm42600 without modification.
> 
> The binding documents the new compatible with an invensense,icm42631
> fallback, and a WHOAMI mismatch no longer fails probe, so that a
> fallback-matched part can probe; one informational line records the
> mismatch, and a whoami of 0x00/0xff (no response) still fails. 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 with the one informational line, and
> accelerometer, gyroscope and temperature reads work.
> 
> Changes in v5:
> - patch 2: the no-response guard moves before the whoami-mismatch
>   comparison as its own check (Andy); it does not depend on
>   hw->whoami, since no supported part uses either value
> - patch 2: the four Link trailers are dropped (Andy, Jonathan); the
>   Suggested-by tags carry the attribution
> 
> v4: https://lore.kernel.org/all/20260810191157.125550-1-jorijnvdgraaf@catcrafts.net/
> v3: https://lore.kernel.org/all/20260728184351.75015-1-jorijnvdgraaf@catcrafts.net/
> v2: https://lore.kernel.org/all/20260724202708.128267-1-jorijnvdgraaf@catcrafts.net/
> v1: https://lore.kernel.org/all/20260720173411.82979-1-jorijnvdgraaf@catcrafts.net/
> 
> Jorijn van der Graaf (3):
>   iio: imu: inv_icm42600: sort device id tables numerically
>   iio: imu: inv_icm42600: log whoami mismatch instead of failing probe
>   dt-bindings: iio: imu: icm42600: add icm42630

Applied to the testing branch of iio.git.  Note I'll be rebasing on rc1 once
available (in about 1 week) so until then I'm fine adding tags or with changes
on top if any review feedback comes in.

Thanks,

Jonathan

> 
>  .../bindings/iio/imu/invensense,icm42600.yaml | 24 +++++++++++--------
>  .../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 ++++++-------
>  4 files changed, 44 insertions(+), 29 deletions(-)
> 
> 
> base-commit: 350d1fb9204b13c5f95e511e98b8bcb47574d425