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