高通821平台LCD调试(4):LK部分流程(三)

总目录:高通821平台LCD调试

上一篇:LK部分流程(二)


一、msm_display_init

其中主要起作用的代码如下:重点看power_func和bl_func,这两个接口。分别为供电使能和背光使能。

ret = pdata->power_func(1, &(panel->panel_info)); //mdss_dsi_panel_power
ret = pdata->pll_clk_func(1, &(panel->panel_info));//mdss_dsi_panel_clock
ret = msm_display_config();//
ret = msm_display_on();//
ret = pdata->bl_func(1);//mdss_dsi_bl_enable

二、Power Enable

/gcdb_display.c 

上电时主要做了两件事:使能电源和复位

ret = target_ldo_ctrl(enable, pinfo);
ret = mdss_dsi_panel_reset(enable);

看一下target_ldo_ctrl的具体实现

1. 首先使能VDDIO和VDDA

2. 设施BL_EN为双向输入输出管脚

3. 使能偏压输出

int target_ldo_ctrl(uint8_t enable, struct msm_panel_info *pinfo)
{
	uint32_t val = BIT(1) | BIT(13) | BIT(27); //使能LDO 2 / 14 /28 /19
	if (enable) {
		regulator_enable(val);
		mdelay(10);         //参考第一部分硬件描述,时序需要至少1ms延时
		regulator_enable(REG_LDO19);
		gpio_set(76,2);    //使能BL_EN 管脚,拉高
		wled_init(pinfo);  //初始化PMI8994 WLED
		qpnp_ibb_enable(true);  //使能偏压±5.5V
		mdelay(20);        //参考第一部分硬件描述,时序需要至少1ms延时
		if (pinfo->lcd_reg_en)
			lcd_reg_enable();
	} else {
		if (pinfo->lcd_reg_en)
			lcd_reg_disable();
		regulator_disable(val);
	}
	return NO_ERROR;
}

三、背光使能

最终调用了qpnp_wled_enable_backlight(enable);输出背光电压

由于背光用到了PMI8994 WLED,因而需要对其做相应的配置:

target/msm8996/rules.mk

 MODULES += \
       dev/qpnp_wled
/dev/qpnp_wled/qpnp_wled.c

在qpnp_wled_setup中修改默认参数

	wled->ovp_mv = QPNP_WLED_OVP_19400_MV;
	wled->fs_curr_ua = 10000;







猜你喜欢

转载自blog.csdn.net/musicalspace/article/details/81013069