这套代码包中比如lunch使用
89. sl8541e_1h10_gofu_osea-userdebug
则该工程用默认使用的是ocp8037的摄像头闪光灯,现在我的项目不使用这种外置的i2c设备闪光灯,要在软件上切换回来改为使用PMIC提供的闪光灯通路,即闪光灯的负极接到PMIC2721G的FLASH_IB引脚(L11).
说完原理图连接方式,就开始改软件。
首先在deconfig文件中打开
kernel\arch\arm\configs\sprd_sharkle_defconfig
中配置CONFIG_FLASH_SC2721=y
改好后编译,下载,开机后进摄像头测试,发现闪光灯不亮,接下来开始查找问题所在。
找到定义宏CONFIG_FLASH_SC2721之后增加的编译文件kernel\drivers\misc\sprd_camera\flash\sc2721s\sc2721s_drv.c
确定它有编译进out目录,然后检查该文件中的.compatible = "sprd,sc2721-flash"与dts中的文件配置的compatible = "sprd,sc2721-charger";确实也完全匹配,没有任何差别。
这里遇到了本文讲的主要问题:
在dts文件中配置好了对应的compatible,在驱动代码中也增加了对应字符的of_match_table中设置好相同的字符,但系统在启动时,却怎么也跑不进probe!