1*44fd8813SJonathan Cameron# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*44fd8813SJonathan Cameron%YAML 1.2
3*44fd8813SJonathan Cameron---
4*44fd8813SJonathan Cameron$id: http://devicetree.org/schemas/iio/imu/invensense,mpu6050.yaml#
5*44fd8813SJonathan Cameron$schema: http://devicetree.org/meta-schemas/core.yaml#
6*44fd8813SJonathan Cameron
7*44fd8813SJonathan Camerontitle: InvenSense MPU-6050 Six-Axis (Gyro + Accelerometer) MEMS MotionTracking Device
8*44fd8813SJonathan Cameron
9*44fd8813SJonathan Cameronmaintainers:
10*44fd8813SJonathan Cameron  - Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
11*44fd8813SJonathan Cameron
12*44fd8813SJonathan Camerondescription: |
13*44fd8813SJonathan Cameron  These devices support both I2C and SPI bus interfaces.
14*44fd8813SJonathan Cameron
15*44fd8813SJonathan Cameronproperties:
16*44fd8813SJonathan Cameron  compatible:
17*44fd8813SJonathan Cameron    enum:
18*44fd8813SJonathan Cameron      - invensense,iam20680
19*44fd8813SJonathan Cameron      - invensense,icm20608
20*44fd8813SJonathan Cameron      - invensense,icm20609
21*44fd8813SJonathan Cameron      - invensense,icm20689
22*44fd8813SJonathan Cameron      - invensense,icm20602
23*44fd8813SJonathan Cameron      - invensense,icm20690
24*44fd8813SJonathan Cameron      - invensense,mpu6000
25*44fd8813SJonathan Cameron      - invensense,mpu6050
26*44fd8813SJonathan Cameron      - invensense,mpu6500
27*44fd8813SJonathan Cameron      - invensense,mpu6515
28*44fd8813SJonathan Cameron      - invensense,mpu9150
29*44fd8813SJonathan Cameron      - invensense,mpu9250
30*44fd8813SJonathan Cameron      - invensense,mpu9255
31*44fd8813SJonathan Cameron
32*44fd8813SJonathan Cameron  reg:
33*44fd8813SJonathan Cameron    maxItems: 1
34*44fd8813SJonathan Cameron
35*44fd8813SJonathan Cameron  interrupts:
36*44fd8813SJonathan Cameron    maxItems: 1
37*44fd8813SJonathan Cameron
38*44fd8813SJonathan Cameron  spi-max-frequency: true
39*44fd8813SJonathan Cameron
40*44fd8813SJonathan Cameron  vdd-supply: true
41*44fd8813SJonathan Cameron  vddio-supply: true
42*44fd8813SJonathan Cameron
43*44fd8813SJonathan Cameron  mount-matrix: true
44*44fd8813SJonathan Cameron
45*44fd8813SJonathan Cameron  i2c-gate:
46*44fd8813SJonathan Cameron    $ref: /schemas/i2c/i2c-controller.yaml
47*44fd8813SJonathan Cameron    unevaluatedProperties: false
48*44fd8813SJonathan Cameron    description: |
49*44fd8813SJonathan Cameron      These devices also support an auxiliary i2c bus via an i2c-gate.
50*44fd8813SJonathan Cameron
51*44fd8813SJonathan CameronallOf:
52*44fd8813SJonathan Cameron  - if:
53*44fd8813SJonathan Cameron      not:
54*44fd8813SJonathan Cameron        properties:
55*44fd8813SJonathan Cameron          compatible:
56*44fd8813SJonathan Cameron            contains:
57*44fd8813SJonathan Cameron              enum:
58*44fd8813SJonathan Cameron                - invensense,mpu9150
59*44fd8813SJonathan Cameron                - invensense,mpu9250
60*44fd8813SJonathan Cameron                - invensense,mpu9255
61*44fd8813SJonathan Cameron    then:
62*44fd8813SJonathan Cameron      properties:
63*44fd8813SJonathan Cameron        i2c-gate: false
64*44fd8813SJonathan Cameron
65*44fd8813SJonathan CameronadditionalProperties: false
66*44fd8813SJonathan Cameron
67*44fd8813SJonathan Cameronrequired:
68*44fd8813SJonathan Cameron  - compatible
69*44fd8813SJonathan Cameron  - reg
70*44fd8813SJonathan Cameron  - interrupts
71*44fd8813SJonathan Cameron
72*44fd8813SJonathan Cameronexamples:
73*44fd8813SJonathan Cameron  - |
74*44fd8813SJonathan Cameron    #include <dt-bindings/interrupt-controller/irq.h>
75*44fd8813SJonathan Cameron    i2c {
76*44fd8813SJonathan Cameron        #address-cells = <1>;
77*44fd8813SJonathan Cameron        #size-cells = <0>;
78*44fd8813SJonathan Cameron
79*44fd8813SJonathan Cameron        imu@68 {
80*44fd8813SJonathan Cameron            compatible = "invensense,mpu9250";
81*44fd8813SJonathan Cameron            reg = <0x68>;
82*44fd8813SJonathan Cameron            interrupt-parent = <&gpio3>;
83*44fd8813SJonathan Cameron            interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
84*44fd8813SJonathan Cameron            mount-matrix = "-0.984807753012208",  /* x0 */
85*44fd8813SJonathan Cameron                           "0",                   /* y0 */
86*44fd8813SJonathan Cameron                           "-0.173648177666930",  /* z0 */
87*44fd8813SJonathan Cameron                           "0",                   /* x1 */
88*44fd8813SJonathan Cameron                           "-1",                  /* y1 */
89*44fd8813SJonathan Cameron                           "0",                   /* z1 */
90*44fd8813SJonathan Cameron                           "-0.173648177666930",  /* x2 */
91*44fd8813SJonathan Cameron                           "0",                   /* y2 */
92*44fd8813SJonathan Cameron                           "0.984807753012208";   /* z2 */
93*44fd8813SJonathan Cameron            i2c-gate {
94*44fd8813SJonathan Cameron                #address-cells = <1>;
95*44fd8813SJonathan Cameron                #size-cells = <0>;
96*44fd8813SJonathan Cameron                magnetometer@c {
97*44fd8813SJonathan Cameron                    compatible = "ak,ak8975";
98*44fd8813SJonathan Cameron                    reg = <0x0c>;
99*44fd8813SJonathan Cameron                };
100*44fd8813SJonathan Cameron            };
101*44fd8813SJonathan Cameron        };
102*44fd8813SJonathan Cameron    };
103*44fd8813SJonathan Cameron...
104