高通平臺 lcd 分辨滷更改
1. 更改解析度 需要修改兩部分:
lk部分程式碼:
static struct panel_config adv7533_720p_video_panel_data = {
"qcom,mdss_dsi_adv7533_720p", "dsi:0:", "qcom,mdss-dsi-panel",
- 10, 0, "DISPLAY_1", 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "NONE"
+ 10, 0, "DISPLAY_1", 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL
};
bootloader/lk/dev/gcdb/display/include/panel_adv7533_720p60.h
開始發現不好用改完,需要把上邊的 "none" 改為 NULL
標頭檔案,是這個LCD的配置,我這裡是一個AD7535轉換晶片,裡邊都是相關的配置和引數
bootloader/lk/target/msm8952/oem_panel.c
diff --git a/bootloader/lk/target/msm8952/oem_panel.c b/bootloader/lk/target/msm8952/oem_panel.c
index 9c87343..378be43 100755
--- a/bootloader/lk/target/msm8952/oem_panel.c
+++ b/bootloader/lk/target/msm8952/oem_panel.c
@@ -55,14 +55,14 @@
#include "include/panel_nt35597_wqxga_dsc_cmd.h"
#include "include/panel_byd_1200p_video.h"
#include "include/panel_nt35523_wqxga_dualdsi_video.h"
-//#include "include/panel_adv7533_720p60.h"
-#include "include/panel_adv7533_1080p60.h"
+#include "include/panel_adv7533_720p60.h"
+//#include "include/panel_adv7533_1080p60.h"
/*---------------------------------------------------------------------------*/
/* static panel selection variable */
/*---------------------------------------------------------------------------*/
enum {
-// ADV7533_720P_VIDEO_PANEL,
- ADV7533_1080P_VIDEO_PANEL,
+ ADV7533_720P_VIDEO_PANEL,
+// ADV7533_1080P_VIDEO_PANEL,
TRULY_1080P_VIDEO_PANEL,
TRULY_1080P_CMD_PANEL,
OTM1906C_1080P_CMD_PANEL,
@@ -86,8 +86,8 @@ uint32_t panel_regulator_settings[] = {
* Any panel in this list can be selected using fastboot oem command.
*/
static struct panel_list supp_panels[] = {
-// {"adv7533_720p_video",ADV7533_720P_VIDEO_PANEL},
- {"adv7533_1080p_video",ADV7533_1080P_VIDEO_PANEL},
+ {"adv7533_720p_video",ADV7533_720P_VIDEO_PANEL},
+// {"adv7533_1080p_video",ADV7533_1080P_VIDEO_PANEL},
{"truly_1080p_video", TRULY_1080P_VIDEO_PANEL},
{"truly_1080p_cmd", TRULY_1080P_CMD_PANEL},
{"sharp_1080p_cmd", SHARP_1080P_CMD_PANEL},
@@ -470,7 +470,7 @@ static int init_panel_data(struct panel_struct *panelstruct,
TIMING_SIZE);
pinfo->mipi.tx_eot_append = true;
break;
- case ADV7533_1080P_VIDEO_PANEL:
+/* case ADV7533_1080P_VIDEO_PANEL:
panelstruct->paneldata = &adv7533_1080p_video_panel_data;
panelstruct->panelres = &adv7533_1080p_video_panel_res;
panelstruct->color = &adv7533_1080p_video_color;
@@ -486,7 +486,25 @@ static int init_panel_data(struct panel_struct *panelstruct,
pinfo->adv7533.num_of_cfg_i2c_cmds = ADV7533_1080P_CONFIG_COMMANDS;
memcpy(phy_db->timing,
adv7533_1080p_video_timings, TIMING_SIZE);
+ break;*/
+ case ADV7533_720P_VIDEO_PANEL:
+ panelstruct->paneldata = &adv7533_720p_video_panel_data;
+ panelstruct->panelres = &adv7533_720p_video_panel_res;
+ panelstruct->color = &adv7533_720p_video_color;
+ panelstruct->videopanel = &adv7533_720p_video_video_panel;
+ panelstruct->commandpanel = &adv7533_720p_video_command_panel;
+ panelstruct->state = &adv7533_720p_video_state;
+ panelstruct->laneconfig = &adv7533_720p_video_lane_config;
+ panelstruct->paneltiminginfo
+ = &adv7533_720p_video_timing_info;
+ pinfo->adv7533.dsi_tg_i2c_cmd = adv7533_720p_tg_i2c_command;
+ pinfo->adv7533.num_of_tg_i2c_cmds = ADV7533_720P_TG_COMMANDS;
+ pinfo->adv7533.dsi_setup_cfg_i2c_cmd = adv7533_720p_common_cfg;
+ pinfo->adv7533.num_of_cfg_i2c_cmds = ADV7533_720P_CONFIG_COMMANDS;
+ memcpy(phy_db->timing,
+ adv7533_720p_video_timings, TIMING_SIZE);
break;
+
case UNKNOWN_PANEL:
default:
memset(panelstruct, 0, sizeof(struct panel_struct));
@@ -541,9 +559,9 @@ int oem_panel_select(const char *panel_name, struct panel_struct *panelstruct,
switch (hw_id) {
case HW_PLATFORM_MTP:
if (platform_is_msm8956())
- panel_id = ADV7533_1080P_VIDEO_PANEL;
+ panel_id = ADV7533_720P_VIDEO_PANEL;
else
- panel_id = ADV7533_1080P_VIDEO_PANEL;
+ panel_id = ADV7533_720P_VIDEO_PANEL;
break;
case HW_PLATFORM_SURF:
case HW_PLATFORM_RCM:
@@ -591,7 +609,7 @@ int oem_panel_select(const char *panel_name, struct panel_struct *panelstruct,
auto_pan_loop++;
}
#else
- panel_id = ADV7533_1080P_VIDEO_PANEL;
+ panel_id = ADV7533_720P_VIDEO_PANEL;
KERNEL部分:arch/arm/boot/dts/qcom/msm8976-mdss-mtp.dtsi
75 &mdss_dsi0 {
76 qcom,dsi-pref-prim-pan = <&dsi_adv7533_720p>;
77 pinctrl-names = "mdss_default", "mdss_sleep";
78 pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
79 pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
80
81 qcom,platform-reset-gpio = <&msm_gpio 25 0>;
82 };
紅色部分新增相應的設定資料
-------------
msm8976 開機的預設圖片儲存在一個數組裡,
這個資料在drivers/video/msm/mdss/splash.h 檔案裡
此外要替換成自己的圖片可以 用img2lcd4.0 工具轉換成 陣列,轉換的圖片我用的是PNG的,輸出為24bit。
好要修改標頭檔案裡的寬和高 ,和自己的圖片對應上,
要注意一點不要太大,不然不能開機