msm7627a: splash screen support

Change-Id: Ifa8223a71da1cb28f1b395009e430998d2c145c6
diff --git a/platform/msm_shared/mipi_dsi.c b/platform/msm_shared/mipi_dsi.c
index 5c3423f..9dd4a49 100644
--- a/platform/msm_shared/mipi_dsi.c
+++ b/platform/msm_shared/mipi_dsi.c
@@ -93,6 +93,24 @@
     .panel_cmds = toshiba_mdt61_video_mode_cmds,
     .num_of_panel_cmds = ARRAY_SIZE(toshiba_mdt61_video_mode_cmds),
 };
+#elif DISPLAY_MIPI_PANEL_RENESAS
+static struct fbcon_config mipi_fb_cfg = {
+    .height = REN_MIPI_FB_HEIGHT,
+    .width = REN_MIPI_FB_WIDTH,
+    .stride = REN_MIPI_FB_WIDTH,
+    .format = FB_FORMAT_RGB888,
+    .bpp = 24,
+    .update_start = NULL,
+    .update_done = NULL,
+};
+struct mipi_dsi_panel_config renesas_panel_info = {
+    .mode = MIPI_VIDEO_MODE,
+    .num_of_lanes = 2,
+    .dsi_phy_config = &mipi_dsi_renesas_panel_phy_ctrl,
+    .panel_cmds = renesas_panel_video_mode_cmds,
+    .num_of_panel_cmds = ARRAY_SIZE(renesas_panel_video_mode_cmds),
+    .lane_swap = 1,
+};
 #else
 static struct fbcon_config mipi_fb_cfg = {
     .height = 0,
@@ -157,7 +175,9 @@
     /* pll ctrl 0 */
     writel(pd->pll[0], MIPI_DSI_BASE + 0x200);
     writel((pd->pll[0] | 0x01), MIPI_DSI_BASE + 0x200);
-
+    /* lane swp ctrol */
+    if (pinfo->lane_swap)
+    writel(pinfo->lane_swap, MIPI_DSI_BASE + 0xac);
     return (0);
 }
 
@@ -169,6 +189,8 @@
     return &novatek_panel_info;
 #elif DISPLAY_MIPI_PANEL_TOSHIBA_MDT61
     return &toshiba_mdt61_panel_info;
+#elif DISPLAY_MIPI_PANEL_RENESAS
+    return &renesas_panel_info;
 #endif
     return NULL;
 }
@@ -551,6 +573,16 @@
     /* Two functions make up mdp_setup_dma_p_video_mode with mdt61 panel functions*/
     mdp_setup_dma_p_video_config(pack_pattern, image_wd, image_ht, MIPI_FB_ADDR, image_wd, ystride);
     mdp_setup_mdt61_video_dsi_config();
+#elif DISPLAY_MIPI_PANEL_RENESAS
+    pack_pattern = 0x21; //RGB
+    config_renesas_dsi_video_mode();
+
+    status +=
+        mdp_setup_dma_p_video_mode(display_wd, display_ht, image_wd, image_ht,
+                                   hsync_porch_fp, hsync_porch_bp,
+                                   vsync_porch_fp, vsync_porch_bp, hsync_width,
+                                   vsync_width, MIPI_FB_ADDR, image_wd,
+                                   pack_pattern, ystride);
 #else
     status += config_dsi_video_mode(display_wd, display_ht, image_wd, image_ht,
                                     hsync_porch_fp, hsync_porch_bp,
@@ -572,12 +604,12 @@
         count++;
         if (count > 0xffff) {
             status = FAIL;
-            dprintf(CRITICAL, "Toshiba Video lane test failed\n");
+            dprintf(CRITICAL, "Video lane test failed\n");
             return status;
         }
     }
 
-    dprintf(SPEW, "Toshiba Video lane tested successfully\n");
+    dprintf(SPEW, "Video lane tested successfully\n");
     return status;
 }
 
@@ -616,7 +648,7 @@
 #if DISPLAY_MIPI_PANEL_TOSHIBA_MDT61
     writel(0x0, DSI_CC_REG);
     writel(0x0, PIXEL_CC_REG);
-#else
+#elif (!DISPLAY_MIPI_PANEL_RENESAS)
     secure_writel(0x0, DSI_CC_REG);
     secure_writel(0x0, PIXEL_CC_REG);
 #endif
@@ -627,7 +659,9 @@
     int status = 0;
     struct mipi_dsi_panel_config *panel_info = get_panel_info();
     /* Enable MMSS_AHB_ARB_MATER_PORT_E for arbiter master0 and master 1 request */
+#if (!DISPLAY_MIPI_PANEL_RENESAS)
     writel(0x00001800, MMSS_SFPB_GPREG);
+#endif
 
 #if DISPLAY_MIPI_PANEL_TOSHIBA_MDT61
     mipi_dsi_phy_init(panel_info);