总目录:高通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;