From: Remi Buisson <remi.buisson@tdk.com>
Document the ICM-45600 devices devicetree bindings.
Signed-off-by: Remi Buisson <remi.buisson@tdk.com>
---
.../bindings/iio/imu/invensense,icm45600.yaml | 97 ++++++++++++++++++++++
1 file changed, 97 insertions(+)
diff --git a/Documentation/devicetree/bindings/iio/imu/invensense,icm45600.yaml b/Documentation/devicetree/bindings/iio/imu/invensense,icm45600.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f43258124c32ebf850fc29b2e97643885e6f8480
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/imu/invensense,icm45600.yaml
@@ -0,0 +1,97 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/imu/invensense,icm45600.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: InvenSense ICM-45600 Inertial Measurement Unit
+
+maintainers:
+ - Remi Buisson <remi.buisson@tdk.com>
+
+description: |
+ 6-axis MotionTracking device that combines a 3-axis gyroscope and a 3-axis
+ accelerometer.
+
+ It has a configurable host interface that supports I3C, I2C and SPI serial
+ communication, features up to 8kB FIFO and 2 programmable interrupts with
+ ultra-low-power wake-on-motion support to minimize system power consumption.
+
+ Other industry-leading features include InvenSense on-chip APEX Motion
+ Processing engine for gesture recognition, activity classification, and
+ pedometer, along with programmable digital filters, and an embedded
+ temperature sensor.
+
+ https://invensense.tdk.com/wp-content/uploads/documentation/DS-000576_ICM-45605.pdf
+
+properties:
+ compatible:
+ enum:
+ - invensense,icm45605
+ - invensense,icm45606
+ - invensense,icm45608
+ - invensense,icm45634
+ - invensense,icm45686
+ - invensense,icm45687
+ - invensense,icm45688p
+ - invensense,icm45689
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ minItems: 1
+ maxItems: 2
+
+ interrupt-names:
+ minItems: 1
+ maxItems: 2
+ items:
+ enum:
+ - INT1
+ - INT2
+ description: Choose chip interrupt pin to be used as interrupt input.
+
+ drive-open-drain:
+ type: boolean
+
+ vdd-supply:
+ description: Regulator that provides power to the sensor
+
+ vddio-supply:
+ description: Regulator that provides power to the bus
+
+ mount-matrix:
+ description: an optional 3x3 mounting rotation matrix
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - interrupt-names
+ - vdd-supply
+ - vddio-supply
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ imu@68 {
+ compatible = "invensense,icm45605";
+ reg = <0x68>;
+ interrupt-parent = <&gpio2>;
+ interrupt-names = "INT1";
+ interrupts = <7 IRQ_TYPE_EDGE_RISING>;
+ vdd-supply = <&vdd>;
+ vddio-supply = <&vddio>;
+ mount-matrix = "0", "-1", "0",
+ "1", "0", "0",
+ "0", "0", "1";
+ };
+ };
--
2.34.1
On Thu, 14 Aug 2025 08:57:15 +0000 Remi Buisson via B4 Relay <devnull+remi.buisson.tdk.com@kernel.org> wrote: > From: Remi Buisson <remi.buisson@tdk.com> > > Document the ICM-45600 devices devicetree bindings. > > Signed-off-by: Remi Buisson <remi.buisson@tdk.com> > --- > .../bindings/iio/imu/invensense,icm45600.yaml | 97 ++++++++++++++++++++++ > 1 file changed, 97 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iio/imu/invensense,icm45600.yaml b/Documentation/devicetree/bindings/iio/imu/invensense,icm45600.yaml > new file mode 100644 > index 0000000000000000000000000000000000000000..f43258124c32ebf850fc29b2e97643885e6f8480 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/imu/invensense,icm45600.yaml > @@ -0,0 +1,97 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/imu/invensense,icm45600.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: InvenSense ICM-45600 Inertial Measurement Unit > + > +maintainers: > + - Remi Buisson <remi.buisson@tdk.com> > + > +description: | > + 6-axis MotionTracking device that combines a 3-axis gyroscope and a 3-axis > + accelerometer. > + > + It has a configurable host interface that supports I3C, I2C and SPI serial > + communication, features up to 8kB FIFO and 2 programmable interrupts with > + ultra-low-power wake-on-motion support to minimize system power consumption. > + > + Other industry-leading features include InvenSense on-chip APEX Motion > + Processing engine for gesture recognition, activity classification, and > + pedometer, along with programmable digital filters, and an embedded > + temperature sensor. > + > + https://invensense.tdk.com/wp-content/uploads/documentation/DS-000576_ICM-45605.pdf > + > +properties: > + compatible: > + enum: > + - invensense,icm45605 > + - invensense,icm45606 > + - invensense,icm45608 > + - invensense,icm45634 > + - invensense,icm45686 > + - invensense,icm45687 > + - invensense,icm45688p > + - invensense,icm45689 > + > + reg: > + maxItems: 1 > + > + interrupts: > + minItems: 1 > + maxItems: 2 > + > + interrupt-names: > + minItems: 1 > + maxItems: 2 > + items: > + enum: > + - INT1 > + - INT2 > + description: Choose chip interrupt pin to be used as interrupt input. See v1 review on this from Krzysztof that you seem to have missed. > + > + drive-open-drain: > + type: boolean > + > + vdd-supply: Description doesn't add much so simply vdd-supply: true Might be enough. > + description: Regulator that provides power to the sensor > + > + vddio-supply: > + description: Regulator that provides power to the bus Also very standard description so probably doesn't add anything. > + > + mount-matrix: > + description: an optional 3x3 mounting rotation matrix Could do mount-matrix: true > + > +required: > + - compatible > + - reg > + - interrupts Needed for any functionality to be available? Note that this isn't a question of what driver currently requires, but more what someone could implement if they happen not to have wired interrupts. That happens annoyingly often! Jonathan > + - interrupt-names > + - vdd-supply > + - vddio-supply > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + imu@68 { > + compatible = "invensense,icm45605"; > + reg = <0x68>; > + interrupt-parent = <&gpio2>; > + interrupt-names = "INT1"; > + interrupts = <7 IRQ_TYPE_EDGE_RISING>; > + vdd-supply = <&vdd>; > + vddio-supply = <&vddio>; > + mount-matrix = "0", "-1", "0", > + "1", "0", "0", > + "0", "0", "1"; > + }; > + }; >
On Thu, Aug 14, 2025 at 08:57:15AM +0000, Remi Buisson wrote: > + interrupt-names: > + minItems: 1 > + maxItems: 2 > + items: > + enum: > + - INT1 > + - INT2 > + description: Choose chip interrupt pin to be used as interrupt input. NAK You just keep ignoring all emails and not responding. That's not how the process works. Best regards, Krzysztof
© 2016 - 2025 Red Hat, Inc.