Merge "target: msm8610: QRD target support in GCDB for 8x10"
diff --git a/target/msm8610/oem_panel.c b/target/msm8610/oem_panel.c
index eabd70d..e532b56 100755
--- a/target/msm8610/oem_panel.c
+++ b/target/msm8610/oem_panel.c
@@ -42,6 +42,9 @@
/*---------------------------------------------------------------------------*/
#include "include/panel_truly_wvga_cmd.h"
#include "include/panel_truly_wvga_video.h"
+#include "include/panel_hx8379a_wvga_video.h"
+#include "include/panel_otm8018b_fwvga_video.h"
+#include "include/panel_nt35590_720p_video.h"
/*---------------------------------------------------------------------------*/
/* static panel selection variable */
@@ -49,6 +52,9 @@
enum {
TRULY_WVGA_CMD_PANEL,
TRULY_WVGA_VIDEO_PANEL,
+HX8379A_WVGA_VIDEO_PANEL,
+OTM8018B_FWVGA_VIDEO_PANEL,
+NT35590_720P_VIDEO_PANEL,
};
static uint32_t panel_id;
@@ -90,6 +96,8 @@
panelstruct->laneconfig = &truly_wvga_cmd_lane_config;
panelstruct->paneltiminginfo
= &truly_wvga_cmd_timing_info;
+ panelstruct->panelresetseq
+ = &truly_wvga_cmd_reset_seq;
panelstruct->backlightinfo = &truly_wvga_cmd_backlight;
pinfo->mipi.panel_cmds
= truly_wvga_cmd_on_command;
@@ -108,6 +116,8 @@
panelstruct->laneconfig = &truly_wvga_video_lane_config;
panelstruct->paneltiminginfo
= &truly_wvga_video_timing_info;
+ panelstruct->panelresetseq
+ = &truly_wvga_video_reset_seq;
panelstruct->backlightinfo = &truly_wvga_video_backlight;
pinfo->mipi.panel_cmds
= truly_wvga_video_on_command;
@@ -116,6 +126,66 @@
memcpy(phy_db->timing,
truly_wvga_video_timings, TIMING_SIZE);
break;
+ case HX8379A_WVGA_VIDEO_PANEL:
+ panelstruct->paneldata = &hx8379a_wvga_video_panel_data;
+ panelstruct->panelres = &hx8379a_wvga_video_panel_res;
+ panelstruct->color = &hx8379a_wvga_video_color;
+ panelstruct->videopanel = &hx8379a_wvga_video_video_panel;
+ panelstruct->commandpanel = &hx8379a_wvga_video_command_panel;
+ panelstruct->state = &hx8379a_wvga_video_state;
+ panelstruct->laneconfig = &hx8379a_wvga_video_lane_config;
+ panelstruct->paneltiminginfo
+ = &hx8379a_wvga_video_timing_info;
+ panelstruct->panelresetseq
+ = &hx8379a_wvga_video_reset_seq;
+ panelstruct->backlightinfo = &hx8379a_wvga_video_backlight;
+ pinfo->mipi.panel_cmds
+ = hx8379a_wvga_video_on_command;
+ pinfo->mipi.num_of_panel_cmds
+ = HX8379A_WVGA_VIDEO_ON_COMMAND;
+ memcpy(phy_db->timing,
+ hx8379a_wvga_video_timings, TIMING_SIZE);
+ break;
+ case OTM8018B_FWVGA_VIDEO_PANEL:
+ panelstruct->paneldata = &otm8018b_fwvga_video_panel_data;
+ panelstruct->panelres = &otm8018b_fwvga_video_panel_res;
+ panelstruct->color = &otm8018b_fwvga_video_color;
+ panelstruct->videopanel = &otm8018b_fwvga_video_video_panel;
+ panelstruct->commandpanel = &otm8018b_fwvga_video_command_panel;
+ panelstruct->state = &otm8018b_fwvga_video_state;
+ panelstruct->laneconfig = &otm8018b_fwvga_video_lane_config;
+ panelstruct->paneltiminginfo
+ = &otm8018b_fwvga_video_timing_info;
+ panelstruct->panelresetseq
+ = &otm8018b_fwvga_video_reset_seq;
+ panelstruct->backlightinfo = &otm8018b_fwvga_video_backlight;
+ pinfo->mipi.panel_cmds
+ = otm8018b_fwvga_video_on_command;
+ pinfo->mipi.num_of_panel_cmds
+ = OTM8018B_FWVGA_VIDEO_ON_COMMAND;
+ memcpy(phy_db->timing,
+ otm8018b_fwvga_video_timings, TIMING_SIZE);
+ break;
+ case NT35590_720P_VIDEO_PANEL:
+ panelstruct->paneldata = &nt35590_720p_video_panel_data;
+ panelstruct->panelres = &nt35590_720p_video_panel_res;
+ panelstruct->color = &nt35590_720p_video_color;
+ panelstruct->videopanel = &nt35590_720p_video_video_panel;
+ panelstruct->commandpanel = &nt35590_720p_video_command_panel;
+ panelstruct->state = &nt35590_720p_video_state;
+ panelstruct->laneconfig = &nt35590_720p_video_lane_config;
+ panelstruct->paneltiminginfo
+ = &nt35590_720p_video_timing_info;
+ panelstruct->panelresetseq
+ = &nt35590_720p_video_panel_reset_seq;
+ panelstruct->backlightinfo = &nt35590_720p_video_backlight;
+ pinfo->mipi.panel_cmds
+ = nt35590_720p_video_on_command;
+ pinfo->mipi.num_of_panel_cmds
+ = NT35590_720P_VIDEO_ON_COMMAND;
+ memcpy(phy_db->timing,
+ nt35590_720p_video_timings, TIMING_SIZE);
+ break;
default:
dprintf(CRITICAL, "Panel ID not detected %d\n", panel_id);
return false;
@@ -128,10 +198,22 @@
struct mdss_dsi_phy_ctrl *phy_db)
{
uint32_t hw_id = board_hardware_id();
+ uint32_t platform_subtype = board_hardware_subtype();
switch (hw_id) {
case HW_PLATFORM_QRD:
+ if ((0 == platform_subtype) || (1 == platform_subtype))
+ panel_id = HX8379A_WVGA_VIDEO_PANEL;
+ else if (3 == platform_subtype)
+ panel_id = OTM8018B_FWVGA_VIDEO_PANEL;
+ break;
case HW_PLATFORM_MTP:
+ if (0 == platform_subtype)
+ panel_id = TRULY_WVGA_VIDEO_PANEL;
+ else
+ panel_id = NT35590_720P_VIDEO_PANEL;
+ break;
+
case HW_PLATFORM_SURF:
panel_id = TRULY_WVGA_VIDEO_PANEL;
break;