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: