주소 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