如何解决设备树中的MPU9250配置问题?

如何解决设备树中的MPU9250配置问题?

我已经设置了一个 i2c 协议来检测地址 0x68 处的 mpu9250。现在我想配置 MPU,并且我已使用以下代码行更新了我的 dts 文件:

mpu9250@68 {
    compatible = "invensense,mpu9250";
    reg = <0x68>;
    i2c-gate {
        #address-cells = <1>;
        #size-cells = <0>;
        ax8975@c {
            compatible = "ak,ak8975";
            reg = <0x0c>;
        };
    };
};

但是,我在运行 >> dmesg | 时收到以下错误grep 主机

inv-mpu6050-i2c 1-0068:无效 whoami 0x40 预期 0x71 (MPU9250)

为此,我还通过开发人员 shell 使用“make menuconfig”命令配置了 i2cmux 和工业 I/O (IIO)。但我没有看到预期的结果。我哪里可能出错了?

答案1

对于 Linux 设备树中定义的 mpu9250,需要定义兼容、注册和中断。为 Android 定义时需要更多字段。

您给出的设备树定义缺少所需的现场中断

关于此的 Linux 内核文档:- https://www.kernel.org/doc/Documentation/devicetree/bindings/iio/imu/invensense%2Cmpu6050.yaml

相关内容