820A显示系统开发流程

前面几片文章介绍了820A的多媒体Display硬件接口,介绍了Qualcomm在Display方面的工作。和性能上的优势,本篇博文主要介绍820A显示系统软件部分的流程。
820A显示调通流程包括内核调通与小内核 (LK) 调通。本节主要看kernel的调试流成。
1.820A的kernel中lcd的点亮流程分析如下:
820A显示系统开发流程_第1张图片
820A显示系统开发流程_第2张图片
2.对背光控制作细节的分析:
主要用到的函数: mdss_dsi_panel_bl_ctrl,位置drivers/video/fbdev/msm/
mdss_dsi_panel.c。主要分为以下步骤
Step1: 对背光值 bl_level的范围做了限制:比最小值还小,且不为0是,设置为最小值
Step2: 背光gpio的控制mdss_dsi_bl_gpio_ctrl(pdata, bl_level)
1>gpio_request(ctrl_pdata->bklt_en_gpio, “bklt_enable”);//申请"bklt_enable”gpio
2>gpio_direction_output(ctrl_pdata->bklt_en_gpio, val);//设置输出电平val
Step3:背光控制选择:BL_WLED(led)、BL_PWM(pwm)、BL_DCS_CMD
Step4:mdss_dsi_panel_bklt_pwm(struct mdss_dsi_ctrl_pdata *ctrl, int level)//pwm控制设置
1>level == 0时ret = pwm_config_us(ctrl->pwm_bl, level,ctrl->pwm_period)
当level==0时,设置pwm的周期
2>占空比 duty = evel * ctrl->pwm_period/ctrl->bklt_max;
3>当ctrl->pwm_period >= USEC_PER_SEC时,重新设置pwm_period
pwm_config_us(ctrl->pwm_bl, duty, ctrl->pwm_period);//
4>ret = pwm_enable(ctrl->pwm_bl);//使能背光控制

820A的lcd点亮流程分析完毕,可能在点亮的过程会遇到闪屏等一些现象。这个要抓具体的log自己分析。要确定在屏幕初始化完整后再点亮背光。

你可能感兴趣的:(820A显示系统开发流程)