OF: /soc/i2c0mux/i2c@1/os02c10@6c: could not find phandle

记录一次错误定位

树莓派开发相机驱动 OF: /soc/i2c0mux/i2c@1/xxx@xx: could not find phandle

问题现象

dmesg -T 

显示错误:OF: /soc/i2c0mux/i2c@1/xxx@xx: could not find phandle

该错误说明,在解析设备树的时候,有一个 phandle 找不到对应的节点。

报错代码位置(内核源码)

linux/drivers/of/base.c:1300

排查过程

  1. 确定 reference 是用 <&label> 形式
  2. 确定 lable 是存在的
  3. /boot/config.txt 确定添加了 dtoverlay=xxx (xxx是相机芯片的型号)
  4. 若移除 dtoverlay=xxx ,则报错信息消失
  5. 发现 /boot/config.txt同时还有 dtoverlay=imx219。这个是我希望用于比较两个驱动,对照着开发驱动所以打开的。
  6. 移除 dtoverlay=imx219。仅仅保留我的要开发的芯片 dtoverlay=xxx

    问题解决!

    结论

    树莓派 4B 的 overlay 只能同时开启一个相机芯片的驱动,即 /boot/config.txt 添加一条相机芯片的dtoverlay

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据