RISC-V Milk-V Duo板MPU6050驱动DTS中断配置问题排查
Milk-V Duo MPU6050驱动IRQ 0找不到问题的修复方案
核心原因
I2C能识别0x68设备说明通信链路正常,报错是因为GPIO中断参数的编码不符合Milk-V Duo的设备树规范,导致驱动无法解析出正确的中断号,进而触发“无法找到IRQ 0”的错误。
正确的中断配置
GPIOA26归属于&gpio0控制器,这部分你的配置是对的,但中断参数需要补充第三个扩展标志位:
- 原配置:
interrupts = <26 IRQ_TYPE_EDGE_RISING> - 修改为:
interrupts = <26 IRQ_TYPE_EDGE_RISING 0>
完整的MPU6050 DTS节点示例:
mpu6050@68 { compatible = "invensense,mpu6050"; reg = <0x68>; interrupt-parent = <&gpio0>; interrupts = <26 IRQ_TYPE_EDGE_RISING 0>; status = "okay"; };
验证操作
- 重新编译设备树并更新到开发板
- 加载驱动后,用
dmesg | grep mpu6050查看是否有中断注册成功的日志 - 执行
cat /proc/interrupts,确认GPIO26对应的中断号已被系统正确识别
内容的提问来源于stack exchange,提问作者Anton A
相关产品推荐
相关产品推荐

