LCD调试主要有三个任务: 1.供电 2.背光 3.LCD驱动
➢ DSI供电
vdd 2.8V 给IC内部供电 vddio 1.8V 给GPIO供电
mdss_dsi0: qcom,mdss_dsi
mdss_dsi0: qcom,mdss_dsi_ctrl0@1a94000 {
compatible = "qcom,mdss-dsi-ctrl";
label = "MDSS DSI CTRL->0";
cell-index = <0>;
reg = <0x1a94000 0x400>,
<0x1a94400 0x580>,
<0x193e000 0x30>;
reg-names = "dsi_ctrl", "dsi_phy", "mmss_misc_phys";
qcom,timing-db-mode;
qcom,mdss-mdp = <&mdss_mdp>;
vdd-supply = <&pm8953_l10>;
vddio-supply = <&pm8953_l6>;
lab-supply = <&lab_regulator>;
ibb-supply = <&ibb_regulator>;
clocks = <&clock_gcc_mdss clk_gcc_mdss_byte0_clk>,
<&clock_gcc_mdss clk_gcc_mdss_pclk0_clk>,
<&clock_gcc clk_gcc_mdss_esc0_clk>,
<&clock_gcc_mdss clk_byte0_clk_src>,
<&clock_gcc_mdss clk_pclk0_clk_src>,
<&mdss_dsi0_pll clk_dsi0pll_byte_clk_mux>,
<&mdss_dsi0_pll clk_dsi0pll_pixel_clk_mux>,
<&mdss_dsi0_pll clk_dsi0pll_byte_clk_src>,
<&mdss_dsi0_pll clk_dsi0pll_pixel_clk_src>,
<&mdss_dsi0_pll
clk_dsi0pll_shadow_byte_clk_src>,
<&mdss_dsi0_pll
clk_dsi0pll_shadow_pixel_clk_src>;
clock-names = "byte_clk", "pixel_clk", "core_clk",
"byte_clk_rcg", "pixel_clk_rcg",
"pll_byte_clk_mux", "pll_pixel_clk_mux",
"pll_byte_clk_src", "pll_pixel_clk_src",
"pll_shadow_byte_clk_src",
"pll_shadow_pixel_clk_src";
qcom,platform-strength-ctrl = [ff 06
ff 06
ff 06
ff 06
ff 00];
qcom,platform-regulator-settings = [1d
1d 1d 1d 1d];
qcom,platform-lane-config = [00 00 10 0f
00 00 10 0f
00 00 10 0f
00 00 10 0f
00 00 10 8f];
};
主要有两个GPIO需要配置,reset和te
qcom,platform-te-gpio = <&tlmm 24 0>; //命令模式下使用TE脚
qcom,platform-reset-gpio = <&tlmm 61 0>;
GPIO使能控制电源:
qcom,platform-enable-gpio = <&tlmm 22 0>;
qcom,platform-enb-gpio = <&tlmm 23 0>;
➢ 背光
高通LCD背光: 有三种模式:
PWM mode :PMIC输出PWM控制背光芯片
DCS mode :通过MIPI配置LCM IC寄存器输出PWM
WLED mode :GPIO I2C等控制背光芯片
BLPMICControlType 用于控制当前背光的 PMIC 控制器。如果选择
0,则会从目标条目获取 PWM GPIO 配置。
0 = PWM GPIO
1 = WLED
2 = DCS 命令
3 = LPG
qcom,mdss-dsi-bl-pmic-control-type: 用于指定此面板的背光控制方法的字符串。
"bl_ctrl_pwm" = 由 PWM GPIO 控制背光。
"bl_ctrl_wled" = 由 WLED 控制背光。
"bl_ctrl_dcs" = 由 DCS 命令控制背光。
其他:未知背光控制。(默认)
1.如果背光受 PWM 控制,还需配置 PWM 参数,如下所示。
qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
&dsi_jdi_1080_vid {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm";
qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
qcom,mdss-dsi-bl-pmic-bank-select = <0>;
qcom,mdss-dsi-pwm-gpio = <&pm8916_mpps 4 0>;
};
2.对于 WLED 背光控制,按照如下所示选择类型、最高背光级别和最低背光级别。
&dsi_dual_sharp_video_0 {
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,cont-splash-enabled;
};
wled: qcom,leds@d800
需要注意max-current,高通默认是25mA,但是LCD芯片的数据手册里大部分是20mA。设置过高,会导致屏幕发烫,多耗电。
3.通过随时发送 DCS 命令控制背光。
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <255>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
➢ LCD驱动
&mdss_mdp {
dsi_ota7291a_wxga_video: qcom,mdss_dsi_ota7291a_wxga_video {
qcom,mdss-dsi-panel-name = "ota7291a wxga video mode dsi panel";