###MT6739,8.1,gc8034
由于是在量产线上出现的问题,首先就是拿过来重刷userdebug版本,抓取开机打印信息:

摄像头点不亮一般来讲跟上电关系比较大,log显示i2c没通,试试把DVDD提升到1.9v,发现可以点亮。这是由于摄像头的一致性不太好,有小部分模组需要的VDDIO要在1.8V之上才能点亮。(其实这个问题在之前的另一个项目上也有出现过…)
接下里就是要在软件实现提升电压了。
1、由于这是要从主板上供电的,我们找pmic的datasheet找到给DVDD上电的寄存器:

可知,寄存器0x1c40的默认值是0x0,此时默认电压是1.8v,+100mV就是 0xa。
2、kernel-4.4/drivers/misc/mediatek/pmic/common/upmu.c 这里面有两个函数用来操作pmic的寄存器:(这两个函数在很多地方都有使用)
unsigned int upmu_get_reg_value(unsigned int reg) //获取寄存器reg的值
{
unsigned int reg_val = 0;
unsigned int ret = 0;
ret = pmic_read_interface(reg, ®_val, 0xFFFF, 0x0);
return reg_val;
}
EXPORT_SYMBOL(upmu_get_reg_value);
void upmu_set_reg_value(unsigned

在MT6739、8.1系统及gc8034摄像头的项目中,遇到量产线上摄像头偶尔无法识别的问题。通过升级DVDD电压至1.9V解决了i2c通信未通的问题。在软件层面,通过修改PMIC寄存器值来实现电压调整,具体涉及upmu.c中的函数操作。不同平台对此支持不同,如mt6735m不支持电压微调。
最低0.47元/天 解锁文章
4041

被折叠的 条评论
为什么被折叠?



