xref: /linux/Documentation/devicetree/bindings/iio/imu/invensense,icm45600.yaml (revision 83bd89291f5cc866f60d32c34e268896c7ba8a3d)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/iio/imu/invensense,icm45600.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: InvenSense ICM-45600 Inertial Measurement Unit
8
9maintainers:
10  - Remi Buisson <remi.buisson@tdk.com>
11
12description: |
13  6-axis MotionTracking device that combines a 3-axis gyroscope and a 3-axis
14  accelerometer.
15
16  It has a configurable host interface that supports I3C, I2C and SPI serial
17  communication, features up to 8kB FIFO and 2 programmable interrupts with
18  ultra-low-power wake-on-motion support to minimize system power consumption.
19
20  Other industry-leading features include InvenSense on-chip APEX Motion
21  Processing engine for gesture recognition, activity classification, and
22  pedometer, along with programmable digital filters, and an embedded
23  temperature sensor.
24
25  https://invensense.tdk.com/wp-content/uploads/documentation/DS-000576_ICM-45605.pdf
26
27properties:
28  compatible:
29    enum:
30      - invensense,icm45605
31      - invensense,icm45606
32      - invensense,icm45608
33      - invensense,icm45634
34      - invensense,icm45686
35      - invensense,icm45687
36      - invensense,icm45688p
37      - invensense,icm45689
38
39  reg:
40    maxItems: 1
41
42  interrupts:
43    minItems: 1
44    maxItems: 2
45
46  interrupt-names:
47    minItems: 1
48    items:
49      - enum: [int1, int2]
50      - const: int2
51    description: Choose chip interrupt pin to be used as interrupt input.
52
53  drive-open-drain:
54    type: boolean
55
56  vdd-supply: true
57
58  vddio-supply: true
59
60  mount-matrix: true
61
62required:
63  - compatible
64  - reg
65  - vdd-supply
66  - vddio-supply
67
68unevaluatedProperties: false
69
70examples:
71  - |
72    #include <dt-bindings/gpio/gpio.h>
73    #include <dt-bindings/interrupt-controller/irq.h>
74    i2c {
75        #address-cells = <1>;
76        #size-cells = <0>;
77
78        imu@68 {
79            compatible = "invensense,icm45605";
80            reg = <0x68>;
81            interrupt-parent = <&gpio2>;
82            interrupt-names = "int1";
83            interrupts = <7 IRQ_TYPE_EDGE_RISING>;
84            vdd-supply = <&vdd>;
85            vddio-supply = <&vddio>;
86            mount-matrix = "0", "-1", "0",
87                           "1", "0", "0",
88                           "0", "0", "1";
89        };
90    };
91