通常情况下lcm的avdd默认5.4v,某些屏幕对avdd要求不同,需要进行修改

驱动程序路径:

kernel-4.14/drivers/misc/mediatek/lcm/lcm_pmic.c

int display_bias_enable(void)
{
	int ret = 0;
	int retval = 0;

	display_bias_regulator_init();

	/* set voltage with min & max*/
	ret = regulator_set_voltage(disp_bias_pos, 5800000, 5800000);//修改avdd峰值
	if (ret < 0)
		pr_info("set voltage disp_bias_pos fail, ret = %d\n", ret);
	retval |= ret;

	ret = regulator_set_voltage(disp_bias_neg, 5800000, 5800000);//修改avee峰值
	if (ret < 0)
		pr_info("set voltage disp_bias_neg fail, ret = %d\n", ret);
	retval |= ret;
.........

修改后效果如下:

         我们可以明显的看到,AVDD拉高后有一个阶梯,分别为5.4v和5.8v,那是因为在启动时lk里的电压设置没有修改,导致在lk中AVDD峰值为5.4v,启动后峰值为5.8v;

lk程序路径:

vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/lcm_pmic.c

int display_bias_enable(void)
{
    int ret = 0;
    /*config rt5081 register 0xB2[7:6]=0x3, that is set db_delay=4ms.*/
    ret = PMU_REG_MASK(0xB2, (0x3 << 6), (0x3 << 6));

    /* set AVDD 5.4v, (4v+28*0.05v) */
    /*ret = RT5081_write_byte(0xB3, (1 << 6) | 28);*/
//修改avdd 5.8v,(4v+36*0.05v)
    ret = PMU_REG_MASK(0xB3, 36, (0x3F << 0));
    if (ret < 0)
        LCM_LOGI("nt35695----tps6132----cmd=%0x--i2c write error----\n", 0xB3);
    else
        LCM_LOGI("nt35695----tps6132----cmd=%0x--i2c write success----\n", 0xB3);

    /* set AVEE */
    /*ret = RT5081_write_byte(0xB4, (1 << 6) | 28);*/
    ret = PMU_REG_MASK(0xB4, 36, (0x3F << 0));
    if (ret < 0)
        LCM_LOGI("nt35695----tps6132----cmd=%0x--i2c write error----\n", 0xB4);
    else
        LCM_LOGI("nt35695----tps6132----cmd=%0x--i2c write success----\n", 0xB4);
.............

修改后效果如下:

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐