0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/iio/imu/invensense,mpu6050.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: InvenSense MPU-6050 Six-Axis (Gyro + Accelerometer) MEMS MotionTracking Device
0008
0009 maintainers:
0010 - Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
0011
0012 description: |
0013 These devices support both I2C and SPI bus interfaces.
0014
0015 properties:
0016 compatible:
0017 oneOf:
0018 - enum:
0019 - invensense,iam20680
0020 - invensense,icm20608
0021 - invensense,icm20609
0022 - invensense,icm20689
0023 - invensense,icm20602
0024 - invensense,icm20690
0025 - invensense,mpu6000
0026 - invensense,mpu6050
0027 - invensense,mpu6500
0028 - invensense,mpu6515
0029 - invensense,mpu6880
0030 - invensense,mpu9150
0031 - invensense,mpu9250
0032 - invensense,mpu9255
0033 - items:
0034 - const: invensense,icm20608d
0035 - const: invensense,icm20608
0036
0037 reg:
0038 maxItems: 1
0039
0040 interrupts:
0041 maxItems: 1
0042
0043 spi-max-frequency: true
0044
0045 vdd-supply: true
0046 vddio-supply: true
0047
0048 mount-matrix: true
0049
0050 i2c-gate:
0051 $ref: /schemas/i2c/i2c-controller.yaml
0052 unevaluatedProperties: false
0053 description: |
0054 These devices also support an auxiliary i2c bus via an i2c-gate.
0055
0056 allOf:
0057 - if:
0058 not:
0059 properties:
0060 compatible:
0061 contains:
0062 enum:
0063 - invensense,mpu9150
0064 - invensense,mpu9250
0065 - invensense,mpu9255
0066 then:
0067 properties:
0068 i2c-gate: false
0069
0070 additionalProperties: false
0071
0072 required:
0073 - compatible
0074 - reg
0075 - interrupts
0076
0077 examples:
0078 - |
0079 #include <dt-bindings/interrupt-controller/irq.h>
0080 i2c {
0081 #address-cells = <1>;
0082 #size-cells = <0>;
0083
0084 imu@68 {
0085 compatible = "invensense,mpu9250";
0086 reg = <0x68>;
0087 interrupt-parent = <&gpio3>;
0088 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
0089 mount-matrix = "-0.984807753012208", /* x0 */
0090 "0", /* y0 */
0091 "-0.173648177666930", /* z0 */
0092 "0", /* x1 */
0093 "-1", /* y1 */
0094 "0", /* z1 */
0095 "-0.173648177666930", /* x2 */
0096 "0", /* y2 */
0097 "0.984807753012208"; /* z2 */
0098 i2c-gate {
0099 #address-cells = <1>;
0100 #size-cells = <0>;
0101 magnetometer@c {
0102 compatible = "asahi-kasei,ak8975";
0103 reg = <0x0c>;
0104 };
0105 };
0106 };
0107 };
0108 ...