144fd8813SJonathan Cameron# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
244fd8813SJonathan Cameron%YAML 1.2
344fd8813SJonathan Cameron---
444fd8813SJonathan Cameron$id: http://devicetree.org/schemas/iio/imu/invensense,mpu6050.yaml#
544fd8813SJonathan Cameron$schema: http://devicetree.org/meta-schemas/core.yaml#
644fd8813SJonathan Cameron
744fd8813SJonathan Camerontitle: InvenSense MPU-6050 Six-Axis (Gyro + Accelerometer) MEMS MotionTracking Device
844fd8813SJonathan Cameron
944fd8813SJonathan Cameronmaintainers:
1044fd8813SJonathan Cameron  - Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
1144fd8813SJonathan Cameron
1244fd8813SJonathan Camerondescription: |
1344fd8813SJonathan Cameron  These devices support both I2C and SPI bus interfaces.
1444fd8813SJonathan Cameron
1544fd8813SJonathan Cameronproperties:
1644fd8813SJonathan Cameron  compatible:
17c4dbfed3SMichael Srba    oneOf:
18c4dbfed3SMichael Srba      - enum:
1944fd8813SJonathan Cameron          - invensense,iam20680
2044fd8813SJonathan Cameron          - invensense,icm20608
2144fd8813SJonathan Cameron          - invensense,icm20609
2244fd8813SJonathan Cameron          - invensense,icm20689
2344fd8813SJonathan Cameron          - invensense,icm20602
2444fd8813SJonathan Cameron          - invensense,icm20690
2544fd8813SJonathan Cameron          - invensense,mpu6000
2644fd8813SJonathan Cameron          - invensense,mpu6050
2744fd8813SJonathan Cameron          - invensense,mpu6500
2844fd8813SJonathan Cameron          - invensense,mpu6515
29af73caa7SStephan Gerhold          - invensense,mpu6880
3044fd8813SJonathan Cameron          - invensense,mpu9150
3144fd8813SJonathan Cameron          - invensense,mpu9250
3244fd8813SJonathan Cameron          - invensense,mpu9255
33c4dbfed3SMichael Srba      - items:
34*757c4921SHermes Zhang          - const: invensense,icm20600
35*757c4921SHermes Zhang          - const: invensense,icm20602
36*757c4921SHermes Zhang      - items:
37c4dbfed3SMichael Srba          - const: invensense,icm20608d
38c4dbfed3SMichael Srba          - const: invensense,icm20608
3944fd8813SJonathan Cameron
4044fd8813SJonathan Cameron  reg:
4144fd8813SJonathan Cameron    maxItems: 1
4244fd8813SJonathan Cameron
4344fd8813SJonathan Cameron  interrupts:
4444fd8813SJonathan Cameron    maxItems: 1
4544fd8813SJonathan Cameron
4644fd8813SJonathan Cameron  vdd-supply: true
4744fd8813SJonathan Cameron  vddio-supply: true
4844fd8813SJonathan Cameron
4944fd8813SJonathan Cameron  mount-matrix: true
5044fd8813SJonathan Cameron
5144fd8813SJonathan Cameron  i2c-gate:
5244fd8813SJonathan Cameron    $ref: /schemas/i2c/i2c-controller.yaml
5344fd8813SJonathan Cameron    unevaluatedProperties: false
5444fd8813SJonathan Cameron    description: |
5544fd8813SJonathan Cameron      These devices also support an auxiliary i2c bus via an i2c-gate.
5644fd8813SJonathan Cameron
5744fd8813SJonathan CameronallOf:
588d98a8c6SKrzysztof Kozlowski  - $ref: /schemas/spi/spi-peripheral-props.yaml#
5944fd8813SJonathan Cameron  - if:
6044fd8813SJonathan Cameron      not:
6144fd8813SJonathan Cameron        properties:
6244fd8813SJonathan Cameron          compatible:
6344fd8813SJonathan Cameron            contains:
6444fd8813SJonathan Cameron              enum:
6544fd8813SJonathan Cameron                - invensense,mpu9150
6644fd8813SJonathan Cameron                - invensense,mpu9250
6744fd8813SJonathan Cameron                - invensense,mpu9255
6844fd8813SJonathan Cameron    then:
6944fd8813SJonathan Cameron      properties:
7044fd8813SJonathan Cameron        i2c-gate: false
7144fd8813SJonathan Cameron
728d98a8c6SKrzysztof KozlowskiunevaluatedProperties: false
7344fd8813SJonathan Cameron
7444fd8813SJonathan Cameronrequired:
7544fd8813SJonathan Cameron  - compatible
7644fd8813SJonathan Cameron  - reg
7744fd8813SJonathan Cameron  - interrupts
7844fd8813SJonathan Cameron
7944fd8813SJonathan Cameronexamples:
8044fd8813SJonathan Cameron  - |
8144fd8813SJonathan Cameron    #include <dt-bindings/interrupt-controller/irq.h>
8244fd8813SJonathan Cameron    i2c {
8344fd8813SJonathan Cameron        #address-cells = <1>;
8444fd8813SJonathan Cameron        #size-cells = <0>;
8544fd8813SJonathan Cameron
8644fd8813SJonathan Cameron        imu@68 {
8744fd8813SJonathan Cameron            compatible = "invensense,mpu9250";
8844fd8813SJonathan Cameron            reg = <0x68>;
8944fd8813SJonathan Cameron            interrupt-parent = <&gpio3>;
9044fd8813SJonathan Cameron            interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
9144fd8813SJonathan Cameron            mount-matrix = "-0.984807753012208",  /* x0 */
9244fd8813SJonathan Cameron                           "0",                   /* y0 */
9344fd8813SJonathan Cameron                           "-0.173648177666930",  /* z0 */
9444fd8813SJonathan Cameron                           "0",                   /* x1 */
9544fd8813SJonathan Cameron                           "-1",                  /* y1 */
9644fd8813SJonathan Cameron                           "0",                   /* z1 */
9744fd8813SJonathan Cameron                           "-0.173648177666930",  /* x2 */
9844fd8813SJonathan Cameron                           "0",                   /* y2 */
9944fd8813SJonathan Cameron                           "0.984807753012208";   /* z2 */
10044fd8813SJonathan Cameron            i2c-gate {
10144fd8813SJonathan Cameron                #address-cells = <1>;
10244fd8813SJonathan Cameron                #size-cells = <0>;
10344fd8813SJonathan Cameron                magnetometer@c {
104a3ebdcc8SThierry Reding                    compatible = "asahi-kasei,ak8975";
10544fd8813SJonathan Cameron                    reg = <0x0c>;
10644fd8813SJonathan Cameron                };
10744fd8813SJonathan Cameron            };
10844fd8813SJonathan Cameron        };
10944fd8813SJonathan Cameron    };
11044fd8813SJonathan Cameron...
111