android7.1 msm8937背光控制
multipurpose pin (MPP)
1.硬件设计
背光IC采用LN3492HCMH,背光控制接口引脚描述对应上图CON2
1.1 LCD以及背光供电时序的要求
可知先给LCD电路供电,后面给LED供电。
1.2 LED阵列电特性
1.3 PWM控制引脚
PWM由MPP2_LCD_BL_PWM控制,此引脚连接PM8937_MPP2
PM8937的MPP
PMI8937的MPP,我们用的是PMI8937_MPP2
2.Android背光控制类型
有背光控制方法PWM、WLED和DCS这几种,
WLED:White LightEmitting Diode,白光二极管
PWM:Pulse widthmodulation,脉宽调制
DCS:Display CommandSet,显示命令集
DCS is a MIPI Alliance specification forthe command set used by DSI and DBI-2 standards. Commands are sent from thehost processor to the display module. On the display module, a displaycontroller receives and interprets commands, then takes appropriate action.Commands fall into four broad categories: read register, write register, readmemory and write memory. A command may be accompanied by multiple parameters.(来至于MIPI DSI定义)
至于控制背光的方法,这取决于我们使用的显示屏面板。
LM215WF3 is a Color Active Matrix LiquidCrystal Display with a Light Emitting Diode (发光二极管,LED)backlight Assembly(背光组件) without LED driver(但没有LED控制电路,需要外部设计)。
It requires two power inputs. One isemployed to power the LCD electronics and to drive the TFT array and liquidcrystal. The second input power for the LED/Backlight, is typically generatedby a LED Driver. The LED Driver is an external unit(外部单元) to the LCDs.
3.软件部分
3.1 bootloader部分
以上是调用过程,主要由msm8952_pwm_backlight_ctrl()来配置
3.2 kernel部分
我们知道背光控制模式是由我们使用的显示背光电路决定的。例如,我们是PWM,对应设备树
3.2.1软件流程
3.2.1.1初始化流程
(1)注册mdss_dsi_ctrl背光设备树的驱动和分析
通过调用红色代码可以知道背光调节mdss_dsi_panel_bl_ctrl()实现,另外pwm_request()函数的实现
第四十三行表示请求PWM设备,ctrl->pwm_lpg_chan是PWM设备索引,"lcd-bklt"表示PWM设备标签ctrl->pwm_bl指向此设备。
(2)注册mdss_fb驱动和注册lcd-backlight
mdss_fb.c通过led_classdev_register注册一个led classdev,路径/sys/class/led/lcd-backlight,背光亮度设置函数见红色函数指针brightness_set,指向mdss_fb_set_bl_brightness()
3.2.1.2背光调节过程
例如,我们常用的背光调节方法;
(1)调整系统设置
(2)/sys/class/leds/lcd-backlight,比如echo 255 > /brightness。
从上层到HAL层的set_light_backligh()最后调用到底层驱动mdss_dsi_panel_bklt_pwm()调整背光。
3.2.2背光控制相关设备树配置
kernel\msm-3.18\arch\arm\boot\dts\qcom\msm8937-pmi8937-qrd-sku2.dtsi下对应显示屏的节点
&dsi_lm215w_lvds_1080p_video {
qcom,mdss-dsi-bl-pmic-control-type= "bl_ctrl_pwm";//采用PWM方式
qcom,mdss-dsi-bl-pmic-pwm-frequency= <100>;
qcom,mdss-dsi-bl-pmic-bank-select= <0>;
qcom,mdss-dsi-pwm-gpio= ;
qcom,panel-supply-entries= ;
qcom,cont-splash-enabled;
};
qcom,mdss-dsi-bl-pmic-control-type ="bl_ctrl_pwm";//采用PWM方式
qcom,mdss-dsi-bl-pmic-pwm-frequency =<100>; //PWM period in microseconds.
qcom,mdss-dsi-bl-pmic-bank-select =<0>; LPG channel for backlight
LPG是Light PulseGenerator,也就是PWM,mdss/mdss_dsi_panel.c这个属性有分析,对应pwm_lpg_chan成员
qcom,mdss-dsi-pwm-gpio =;表示PWM在这里控制引脚mpp
参考链接:
高通LCD之背光
MSM8909平台 LED背光的控制
高通LCD背光控制软件简析
android背光设置