
アドレス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