[PATCH V13 2/9] dt-bindings: iio: imu: icm42600: Add icm42607
Jean-Baptiste Maneyrol
Jean-Baptiste.Maneyrol at tdk.com
Tue Jun 23 01:14:28 PDT 2026
>From: Chris Morgan <macromorgan at hotmail.com>
>Sent: Tuesday, June 23, 2026 02:06
>To: Jean-Baptiste Maneyrol
>Cc: Jonathan Cameron; Chris Morgan; linux-iio at vger.kernel.org; andy at kernel.org; nuno.sa at analog.com; dlechner at baylibre.com; linux-rockchip at lists.infradead.org; devicetree at vger.kernel.org; heiko at sntech.de; conor+dt at kernel.org; krzk+dt at kernel.org; robh at kernel.org; andriy.shevchenko at intel.com; Krzysztof Kozlowski
>Subject: Re: [PATCH V13 2/9] dt-bindings: iio: imu: icm42600: Add icm42607
>
>On Mon, Jun 22, 2026 at 09: 23: 28AM +0000, Jean-Baptiste Maneyrol wrote: > Hello Chris and Jonathan, > > concerning dt bindings, my initial understanding was that we had a file per > driver. But here, Chris is doing a new driver for
>ZjQcmQRYFpfptBannerStart
>This Message Is From an External Sender
>This message came from outside your organization.
>
>ZjQcmQRYFpfptBannerEnd
>
>On Mon, Jun 22, 2026 at 09:23:28AM +0000, Jean-Baptiste Maneyrol wrote:
>> Hello Chris and Jonathan,
>>
>> concerning dt bindings, my initial understanding was that we had a file per
>> driver. But here, Chris is doing a new driver for icm42607 while adding new
>> bindings here.
>>
>> Does it means we don't have 1 binding file per driver, and there is no need
>> to create a new binding file for inv_icm42607 driver?
>>
>> Despite the naming, icm42607 chips are a complete new design very different
>> than all other icm42600 chips. It using similar IPs for things like the FIFO,
>> but all other parts are different. Especially, it doesn't use banks for
>> registers access but indirect access delegated to the chip internals for
>> accessing certain registers.
>
>For what it's worth I'm not using any of those registers in the driver
>currently; from what I see in the datasheets I was able to find on the
>web the 42607p doesn't do the indirect register access (again unless
>I'm misreading). To be fair I don't have any other icm42607 chips to
>test against. The 42607c does appear to do such register access.
>
>Thank you,
>Chris
Hello Chris,
here is a link to download ICM-42670-P datasheet, this chip is completely similar
to ICM-42607-P:
https://www.invensense.tdk.com/en-us/download-resource/ds-000451-icm-42670-p-datasheet
Indirect register access is required when you want to use the FIFO for configuring
which data is stored inside or when you want to update gyro/accel hardware
offsets (calibbias iio attribute usually). Also required for a lot of more
complex internal chip configuration.
I didn't had a chance to look at your driver currently. I hope to be able to
have a look soon.
I can you give the figures for the required maximum sleep time for accel and
gyro startups and stops. Usually, they are not provided in datasheet (only mean
values).
Thanks for your work,
JB
>
>>
>> Thanks,
>> JB
>>
>> >From: Chris Morgan <macromorgan at hotmail.com>
>> >
>> >Add the ICM42607 and ICM42607P inertial measurement unit.
>> >
>> >This device is functionally very similar to the icm42600 series with a
>> >very different register layout. The driver does not require an
>> >interrupt for these specific chip revisions.
>> >
>> >Signed-off-by: Chris Morgan <macromorgan at hotmail.com>
>> >Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski at oss.qualcomm.com>
>> >---
>> > .../bindings/iio/imu/invensense,icm42600.yaml | 18 +++++++++++++++++-
>> > 1 file changed, 17 insertions(+), 1 deletion(-)
>> >
>> >diff --git a/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml b/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml
>> >index 9b2af104f186..81b6e85decd5 100644
>> >--- a/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml
>> >+++ b/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml
>> >@@ -30,6 +30,8 @@ properties:
>> > - invensense,icm42600
>> > - invensense,icm42602
>> > - invensense,icm42605
>> >+ - invensense,icm42607
>> >+ - invensense,icm42607p
>> > - invensense,icm42622
>> > - invensense,icm42631
>> > - invensense,icm42686
>> >@@ -67,10 +69,24 @@ properties:
>> > required:
>> > - compatible
>> > - reg
>> >- - interrupts
>> >
>> > allOf:
>> > - $ref: /schemas/spi/spi-peripheral-props.yaml#
>> >+ - if:
>> >+ properties:
>> >+ compatible:
>> >+ contains:
>> >+ enum:
>> >+ - invensense,icm42600
>> >+ - invensense,icm42602
>> >+ - invensense,icm42605
>> >+ - invensense,icm42622
>> >+ - invensense,icm42631
>> >+ - invensense,icm42686
>> >+ - invensense,icm42688
>> >+ then:
>> >+ required:
>> >+ - interrupts
>> >
>> > unevaluatedProperties: false
>> >
>> >--
>> >2.43.0
>
>
________________________________________
From: Chris Morgan <macromorgan at hotmail.com>
Sent: Tuesday, June 23, 2026 02:06
To: Jean-Baptiste Maneyrol
Cc: Jonathan Cameron; Chris Morgan; linux-iio at vger.kernel.org; andy at kernel.org; nuno.sa at analog.com; dlechner at baylibre.com; linux-rockchip at lists.infradead.org; devicetree at vger.kernel.org; heiko at sntech.de; conor+dt at kernel.org; krzk+dt at kernel.org; robh at kernel.org; andriy.shevchenko at intel.com; Krzysztof Kozlowski
Subject: Re: [PATCH V13 2/9] dt-bindings: iio: imu: icm42600: Add icm42607
On Mon, Jun 22, 2026 at 09: 23: 28AM +0000, Jean-Baptiste Maneyrol wrote: > Hello Chris and Jonathan, > > concerning dt bindings, my initial understanding was that we had a file per > driver. But here, Chris is doing a new driver for
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
ZjQcmQRYFpfptBannerEnd
On Mon, Jun 22, 2026 at 09:23:28AM +0000, Jean-Baptiste Maneyrol wrote:
> Hello Chris and Jonathan,
>
> concerning dt bindings, my initial understanding was that we had a file per
> driver. But here, Chris is doing a new driver for icm42607 while adding new
> bindings here.
>
> Does it means we don't have 1 binding file per driver, and there is no need
> to create a new binding file for inv_icm42607 driver?
>
> Despite the naming, icm42607 chips are a complete new design very different
> than all other icm42600 chips. It using similar IPs for things like the FIFO,
> but all other parts are different. Especially, it doesn't use banks for
> registers access but indirect access delegated to the chip internals for
> accessing certain registers.
For what it's worth I'm not using any of those registers in the driver
currently; from what I see in the datasheets I was able to find on the
web the 42607p doesn't do the indirect register access (again unless
I'm misreading). To be fair I don't have any other icm42607 chips to
test against. The 42607c does appear to do such register access.
Thank you,
Chris
>
> Thanks,
> JB
>
> >From: Chris Morgan <macromorgan at hotmail.com>
> >
> >Add the ICM42607 and ICM42607P inertial measurement unit.
> >
> >This device is functionally very similar to the icm42600 series with a
> >very different register layout. The driver does not require an
> >interrupt for these specific chip revisions.
> >
> >Signed-off-by: Chris Morgan <macromorgan at hotmail.com>
> >Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski at oss.qualcomm.com>
> >---
> > .../bindings/iio/imu/invensense,icm42600.yaml | 18 +++++++++++++++++-
> > 1 file changed, 17 insertions(+), 1 deletion(-)
> >
> >diff --git a/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml b/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml
> >index 9b2af104f186..81b6e85decd5 100644
> >--- a/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml
> >+++ b/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml
> >@@ -30,6 +30,8 @@ properties:
> > - invensense,icm42600
> > - invensense,icm42602
> > - invensense,icm42605
> >+ - invensense,icm42607
> >+ - invensense,icm42607p
> > - invensense,icm42622
> > - invensense,icm42631
> > - invensense,icm42686
> >@@ -67,10 +69,24 @@ properties:
> > required:
> > - compatible
> > - reg
> >- - interrupts
> >
> > allOf:
> > - $ref: /schemas/spi/spi-peripheral-props.yaml#
> >+ - if:
> >+ properties:
> >+ compatible:
> >+ contains:
> >+ enum:
> >+ - invensense,icm42600
> >+ - invensense,icm42602
> >+ - invensense,icm42605
> >+ - invensense,icm42622
> >+ - invensense,icm42631
> >+ - invensense,icm42686
> >+ - invensense,icm42688
> >+ then:
> >+ required:
> >+ - interrupts
> >
> > unevaluatedProperties: false
> >
> >--
> >2.43.0
More information about the Linux-rockchip
mailing list