由于客户方案变更,使用后置ov5640、前置gc2145作为pad的camera组合,但二者i2c地址均为0x78,挂载在同一i2c总线上,按平常配置使用会存在冲突,ov5640devices无法注册成功,导致设备节点只有一个/dev/video0。
log报错信息:
[ 1.254049:0] soc-camera-pdrv soc-camera-pdrv.1: Probing enodrv err
[ 1.260340:0] soc-camera-pdrv soc-camera-pdrv.1: Probing evdc err
[ 1.268354:0] soc-camera-pdrv soc-camera-pdrv.1: Probing epower err
[ 1.274818:0] soc-camera-pdrv soc-camera-pdrv.1: Probing eadd err
[ 1.281168:0] soc-camera-pdrv soc-camera-pdrv.1: Probing ereg err
解决办法:
1、在ov5640驱动里面取消对ov5640型号的检测:
/*
if (priv->model != 0x5640) {
ret = -ENODEV;
goto err;
}
*/
2、gc2145板极资源devices注册时i2c地址不使用0x78,在驱动里面probe函数中直接给i2c地址赋值0x78(client->addr = 0x78 >> 1;);