From 17eeed3e26b4850541bd061ccca09b40fb54af04 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 9 Dec 2024 19:18:56 +0800 Subject: [PATCH] lk1st: msm8916: Add support for Huawei Mediapad T1-A21W Add msm8916-hwt1a21w.dts Add boe_nt51017 panel Enable vcc gpio and vled gpio Set Brightness by using custom dcs commands Signed-off-by: Shaobai Wang --- app/aboot/aboot.c | 2 +- .../lk_panel_boe_nt51017_10_800p_video.h | 16 ++++++++++++++-- lk2nd/panel/oem_panel.c | 15 ++++++++------- platform/msm_shared/display_menu.c | 4 ++-- qhypstub | 1 - target/msm8916/include/target/display.h | 2 +- target/msm8916/target_display.c | 8 +++++--- 7 files changed, 31 insertions(+), 17 deletions(-) delete mode 160000 qhypstub diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c index 0ad935bba..1e9ad627a 100644 --- a/app/aboot/aboot.c +++ b/app/aboot/aboot.c @@ -4051,7 +4051,6 @@ void aboot_init(const struct app_descriptor *app) if (target_is_emmc_boot()) { if (!boot_into_recovery) { - /* Try to boot from first fs we can find */ ssize_t loaded_file = fsboot_boot_first(target_get_scratch_address(), target_get_max_flash_size()); if (loaded_file > 0) @@ -4114,6 +4113,7 @@ void aboot_init(const struct app_descriptor *app) #if FBCON_DISPLAY_MSG display_fastboot_menu(); #endif + } uint32_t get_page_size() diff --git a/lk2nd/panel/generated/lk_panel_boe_nt51017_10_800p_video.h b/lk2nd/panel/generated/lk_panel_boe_nt51017_10_800p_video.h index 92ee49afe..344db670f 100644 --- a/lk2nd/panel/generated/lk_panel_boe_nt51017_10_800p_video.h +++ b/lk2nd/panel/generated/lk_panel_boe_nt51017_10_800p_video.h @@ -107,7 +107,16 @@ static char boe_nt51017_10_800p_video_on_cmd_20[] = { 0x96, 0x40, 0x15, 0x80 }; static char boe_nt51017_10_800p_video_on_cmd_21[] = { - 0x51, 0xff, 0x15, 0x80 + 0x83, 0x00, 0x15, 0x80 +}; +static char boe_nt51017_10_800p_video_on_cmd_22[] = { + 0x84, 0x00, 0x15, 0x80 +}; +static char boe_nt51017_10_800p_video_on_cmd_23[] = { + 0x96, 0x00, 0x15, 0x80 +}; +static char boe_nt51017_10_800p_video_on_cmd_24[] = { + 0xf5, 0xfa, 0x15, 0x80 }; static struct mipi_dsi_cmd boe_nt51017_10_800p_video_on_command[] = { @@ -133,6 +142,9 @@ static struct mipi_dsi_cmd boe_nt51017_10_800p_video_on_command[] = { { sizeof(boe_nt51017_10_800p_video_on_cmd_19), boe_nt51017_10_800p_video_on_cmd_19, 0 }, { sizeof(boe_nt51017_10_800p_video_on_cmd_20), boe_nt51017_10_800p_video_on_cmd_20, 0 }, { sizeof(boe_nt51017_10_800p_video_on_cmd_21), boe_nt51017_10_800p_video_on_cmd_21, 0 }, + { sizeof(boe_nt51017_10_800p_video_on_cmd_22), boe_nt51017_10_800p_video_on_cmd_22, 0 }, + { sizeof(boe_nt51017_10_800p_video_on_cmd_23), boe_nt51017_10_800p_video_on_cmd_23, 0 }, + { sizeof(boe_nt51017_10_800p_video_on_cmd_24), boe_nt51017_10_800p_video_on_cmd_24, 0 }, }; @@ -167,7 +179,7 @@ static struct lane_configuration boe_nt51017_10_800p_video_lane_config = { .lane1_state = 1, .lane2_state = 1, .lane3_state = 1, - .force_clk_lane_hs = 0, + .force_clk_lane_hs = 1, }; static const uint32_t boe_nt51017_10_800p_video_timings[] = { diff --git a/lk2nd/panel/oem_panel.c b/lk2nd/panel/oem_panel.c index 887c98130..b691cc153 100644 --- a/lk2nd/panel/oem_panel.c +++ b/lk2nd/panel/oem_panel.c @@ -16,7 +16,7 @@ #if TARGET_MSM8916 uint32_t panel_regulator_settings[] = { - 0x00, 0x01, 0x01, 0x00, 0x20, 0x07, 0x00 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; #endif @@ -47,19 +47,20 @@ uint32_t oem_panel_max_auto_detect_panels() static int target_tps65132_ctrl(uint8_t enable) { if (enable) { + gpio_tlmm_config(enn_gpio.pin_id, 0, + enn_gpio.pin_direction, 0, + enn_gpio.pin_strength, + enn_gpio.pin_state); + gpio_set_dir(enn_gpio.pin_id, 2); /* for tps65132 ENP pin */ gpio_tlmm_config(enp_gpio.pin_id, 0, - enp_gpio.pin_direction, enp_gpio.pin_pull, + enp_gpio.pin_direction, 0, enp_gpio.pin_strength, enp_gpio.pin_state); gpio_set_dir(enp_gpio.pin_id, 2); /* for tps65132 ENN pin*/ - gpio_tlmm_config(enn_gpio.pin_id, 0, - enn_gpio.pin_direction, enn_gpio.pin_pull, - enn_gpio.pin_strength, - enn_gpio.pin_state); - gpio_set_dir(enn_gpio.pin_id, 2); + } else { gpio_set_dir(enp_gpio.pin_id, 0); /* ENP */ gpio_set_dir(enn_gpio.pin_id, 0); /* ENN */ diff --git a/platform/msm_shared/display_menu.c b/platform/msm_shared/display_menu.c index 272d62714..9c00037de 100644 --- a/platform/msm_shared/display_menu.c +++ b/platform/msm_shared/display_menu.c @@ -345,7 +345,7 @@ void display_bootverify_option_menu_renew(struct select_msg_info *msg_info) FBCON_COMMON_MSG, big_factor); display_fbcon_menu_message("Press volume keys to navigate, and "\ "press power key to select\n\n", FBCON_COMMON_MSG, common_factor); - + display_fbcon_menu_message("Welcome to HICODE002 BOOTLOADER!\n", FBCON_RED_MSG, common_factor); for (i = 0; i < len; i++) { fbcon_draw_line(FBCON_COMMON_MSG); msg_info->info.option_start[i] = fbcon_get_current_line(); @@ -443,7 +443,7 @@ void display_fastboot_menu_renew(struct select_msg_info *fastboot_msg_info) fbcon_draw_line(msg_type); display_fbcon_menu_message("\n\nPress volume keys to navigate, and "\ "press power key to select\n\n", FBCON_COMMON_MSG, common_factor); - + display_fbcon_menu_message("Welcome to HICODE002 BOOTLOADER!\n", FBCON_RED_MSG, common_factor); display_fbcon_menu_message("FASTBOOT MODE\n", FBCON_RED_MSG, common_factor); #ifdef LK2ND_VERSION diff --git a/qhypstub b/qhypstub deleted file mode 160000 index 19b3ecbf8..000000000 --- a/qhypstub +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 19b3ecbf80a802c1446a3aa716ff38be517da7a2 diff --git a/target/msm8916/include/target/display.h b/target/msm8916/include/target/display.h index 8cebaba69..e23e78357 100644 --- a/target/msm8916/include/target/display.h +++ b/target/msm8916/include/target/display.h @@ -72,7 +72,7 @@ static struct gpio_pin enn_gpio_1 = { }; static struct gpio_pin te_gpio = { - 0, 0, 0, 0, 0, 0 + "msmgpio", 24, 3, 1, 0, 1 }; static struct gpio_pin pwm_gpio = { diff --git a/target/msm8916/target_display.c b/target/msm8916/target_display.c index 4973f4d60..16a64af21 100755 --- a/target/msm8916/target_display.c +++ b/target/msm8916/target_display.c @@ -360,7 +360,7 @@ int target_display_dsi2hdmi_config(struct msm_panel_info *pinfo) } static int target_panel_reset_skuh(uint8_t enable) -{ +{ dprintf(CRITICAL, "Reset Panel\n"); int ret = NO_ERROR; if (enable) { /* for tps65132 ENP pin */ @@ -382,7 +382,7 @@ static int target_panel_reset_skuh(uint8_t enable) dprintf(CRITICAL, "qup_blsp_i2c_init failed \n"); ASSERT(0); } - + dprintf(CRITICAL, "Reset Panel\n"); ret = qrd_lcd_i2c_write(QRD_LCD_VPOS_ADDRESS, 0x0E); /* 5.4V */ if (ret) { dprintf(CRITICAL, "VPOS Register: I2C Write failure\n"); @@ -496,8 +496,10 @@ int target_panel_reset(uint8_t enable, struct panel_reset_sequence *resetseq, gpio_set_dir(enable_gpio.pin_id, 2); } - + //target_panel_reset_skuh(enable); + //dprintf(CRITICAL, "Reset Panel\n"); #ifndef WITH_LK2ND_PANEL + dprintf(CRITICAL, "Reset Panel1\n"); if (platform_is_msm8939() || platform_is_msm8929()) { if ((hw_id == HW_PLATFORM_QRD) && (hw_subtype == HW_PLATFORM_SUBTYPE_SKUK))