デバイスツリーでMPU9250設定の問題を解決するには?

デバイスツリーでMPU9250設定の問題を解決するには?

アドレス0x68でmpu9250を検出するためにi2cプロトコルを設定しました。これで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)

この目的のために、開発者シェルを介して "make menuconfig"コマンドを使用してi2cmuxおよび産業用I / O(IIO)も設定しました。しかし、期待した結果は見られません。私はどこで間違っている可能性がありますか?

ベストアンサー1

Linuxデバイスツリーで定義されているmpu9250では、互換性、登録、および割り込みを定義する必要があります。 Android用に定義する場合は、さらに多くのフィールドが必要です。

提供したデバイスツリー定義に必須フィールド割り込みがありません。

これに関するLinuxカーネルドキュメント:- https://www.kernel.org/doc/Documentation/devicetree/bindings/iio/imu/invensense%2Cmpu6050.yaml

おすすめ記事