target: msm8916: support splash screen for SKUK
Enable the nt35596 1080p video panel on MSM8939 SKUK devices.
Change-Id: Ib77e8f9a455fe500ab81ac809c28494bdae6f681
diff --git a/target/msm8916/oem_panel.c b/target/msm8916/oem_panel.c
index 6f9ac7c..036081e 100644
--- a/target/msm8916/oem_panel.c
+++ b/target/msm8916/oem_panel.c
@@ -47,6 +47,7 @@
#include "include/panel_innolux_720p_video.h"
#include "include/panel_otm8019a_fwvga_video.h"
#include "include/panel_otm1283a_720p_video.h"
+#include "include/panel_nt35596_1080p_skuk_video.h"
#define DISPLAY_MAX_PANEL_DETECTION 2
#define OTM8019A_FWVGA_VIDEO_PANEL_ON_DELAY 50
@@ -63,6 +64,7 @@
INNOLUX_720P_VIDEO_PANEL,
OTM8019A_FWVGA_VIDEO_PANEL,
OTM1283A_720P_VIDEO_PANEL,
+NT35596_1080P_VIDEO_PANEL,
UNKNOWN_PANEL
};
@@ -77,6 +79,7 @@
{"innolux_720p_video", INNOLUX_720P_VIDEO_PANEL},
{"otm8019a_fwvga_video", OTM8019A_FWVGA_VIDEO_PANEL},
{"otm1283a_720p_video", OTM1283A_720P_VIDEO_PANEL},
+ {"nt35596_1080p_video", NT35596_1080P_VIDEO_PANEL},
};
static uint32_t panel_id;
@@ -238,6 +241,26 @@
memcpy(phy_db->timing,
otm1283a_720p_video_timings, TIMING_SIZE);
break;
+ case NT35596_1080P_VIDEO_PANEL:
+ panelstruct->paneldata = &nt35596_1080p_skuk_video_panel_data;
+ panelstruct->panelres = &nt35596_1080p_skuk_video_panel_res;
+ panelstruct->color = &nt35596_1080p_skuk_video_color;
+ panelstruct->videopanel = &nt35596_1080p_skuk_video_video_panel;
+ panelstruct->commandpanel = &nt35596_1080p_skuk_video_command_panel;
+ panelstruct->state = &nt35596_1080p_skuk_video_state;
+ panelstruct->laneconfig = &nt35596_1080p_skuk_video_lane_config;
+ panelstruct->paneltiminginfo
+ = &nt35596_1080p_skuk_video_timing_info;
+ panelstruct->panelresetseq
+ = &nt35596_1080p_skuk_video_reset_seq;
+ panelstruct->backlightinfo = &nt35596_1080p_skuk_video_backlight;
+ pinfo->mipi.panel_cmds
+ = nt35596_1080p_skuk_video_on_command;
+ pinfo->mipi.num_of_panel_cmds
+ = NT35596_1080P_SKUK_VIDEO_ON_COMMAND;
+ memcpy(phy_db->timing,
+ nt35596_1080p_skuk_video_timings, TIMING_SIZE);
+ break;
case UNKNOWN_PANEL:
default:
memset(panelstruct, 0, sizeof(struct panel_struct));
@@ -303,24 +326,36 @@
auto_pan_loop++;
break;
case HW_PLATFORM_QRD:
- switch (hw_subtype) {
- case HW_PLATFORM_SUBTYPE_SKUH:
- target_id = board_target_id();
- plat_hw_ver_major = ((target_id >> 16) & 0xFF);
+ if (platform_is_msm8939()) {
+ switch (hw_subtype) {
+ case HW_PLATFORM_SUBTYPE_SKUK:
+ panel_id = NT35596_1080P_VIDEO_PANEL;
+ break;
+ default:
+ dprintf(CRITICAL, "Invalid subtype id %d for QRD HW\n",
+ hw_subtype);
+ return PANEL_TYPE_UNKNOWN;
+ }
+ } else {
+ switch (hw_subtype) {
+ case HW_PLATFORM_SUBTYPE_SKUH:
+ target_id = board_target_id();
+ plat_hw_ver_major = ((target_id >> 16) & 0xFF);
- /* qrd fan-out hw ? */
- if ((plat_hw_ver_major >> 4) == 0x1)
- panel_id = OTM1283A_720P_VIDEO_PANEL;
- else
- panel_id = INNOLUX_720P_VIDEO_PANEL;
- break;
- case HW_PLATFORM_SUBTYPE_SKUI:
- panel_id = OTM8019A_FWVGA_VIDEO_PANEL;
- break;
- default:
- dprintf(CRITICAL, "Invalid subtype id %d for QRD HW\n",
- hw_subtype);
- return PANEL_TYPE_UNKNOWN;
+ /* qrd fan-out hw ? */
+ if ((plat_hw_ver_major >> 4) == 0x1)
+ panel_id = OTM1283A_720P_VIDEO_PANEL;
+ else
+ panel_id = INNOLUX_720P_VIDEO_PANEL;
+ break;
+ case HW_PLATFORM_SUBTYPE_SKUI:
+ panel_id = OTM8019A_FWVGA_VIDEO_PANEL;
+ break;
+ default:
+ dprintf(CRITICAL, "Invalid subtype id %d for QRD HW\n",
+ hw_subtype);
+ return PANEL_TYPE_UNKNOWN;
+ }
}
break;
default: