[PATCH v4 0/3] iio: imu: inv_icm42600: add support for icm42630
Jorijn van der Graaf <[email protected]>
| Newsgroups | org.kernel.vger.linux-iio,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
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 v4: - patch 2 (retitled): keep the WHOAMI read and log the mismatch at info level, following the wording Jonathan proposed, instead of deleting the check and the whoami definitions (Jonathan, Conor) - patch 2: add a no-response guard, whoami 0x00/0xff still fails probe, matching inv_icm45600; both prints use %#04x so the two ids render at equal width - patch 3: rebased over the icm42607 and mount-matrix binding changes; the conditional interrupts requirement added with the icm42607 covers the ICM-42630 through its icm42631 fallback. Added Conor's Acked-by - rebased onto current iio/togreg v3: https://lore.kernel.org/all/[email protected]/ v2: https://lore.kernel.org/all/[email protected]/ v1: https://lore.kernel.org/all/[email protected]/ 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 | 16 ++++++++++--- .../iio/imu/inv_icm42600/inv_icm42600_i2c.c | 16 ++++++------- .../iio/imu/inv_icm42600/inv_icm42600_spi.c | 16 ++++++------- 4 files changed, 43 insertions(+), 29 deletions(-) base-commit: 350d1fb9204b13c5f95e511e98b8bcb47574d425 -- 2.55.0