target: msm8952: add support for r69006 and hx8394f panel
Add r69006 panel support for msm8937 sku1 target, and add
hx8394d panel support for msm8937 sku2 target.
Change-Id: Ibfc77036fcd138671e218b939d4ff43d7a709a01
diff --git a/target/msm8952/oem_panel.c b/target/msm8952/oem_panel.c
index bbb3a1f..a46909b 100644
--- a/target/msm8952/oem_panel.c
+++ b/target/msm8952/oem_panel.c
@@ -56,6 +56,9 @@
#include "include/panel_nt35597_wqxga_dsc_cmd.h"
#include "include/panel_hx8394d_720p_video.h"
#include "include/panel_byd_1200p_video.h"
+#include "include/panel_r69006_1080p_cmd.h"
+#include "include/panel_r69006_1080p_video.h"
+#include "include/panel_hx8394f_720p_video.h"
/*---------------------------------------------------------------------------*/
/* static panel selection variable */
@@ -72,6 +75,9 @@
NT35597_WQXGA_DSC_CMD_PANEL,
HX8394D_720P_VIDEO_PANEL,
BYD_1200P_VIDEO_PANEL,
+ R69006_1080P_CMD_PANEL,
+ R69006_1080P_VIDEO_PANEL,
+ HX8394F_720P_VIDEO_PANEL,
UNKNOWN_PANEL
};
@@ -95,6 +101,9 @@
{"nt35597_wqxga_dsc_cmd", NT35597_WQXGA_DSC_CMD_PANEL},
{"hx8394d_720p_video", HX8394D_720P_VIDEO_PANEL},
{"byd_1200p_video", BYD_1200P_VIDEO_PANEL},
+ {"r69006_1080p_cmd",R69006_1080P_CMD_PANEL},
+ {"r69006_1080p_video",R69006_1080P_VIDEO_PANEL},
+ {"hx8394f_720p_video", HX8394F_720P_VIDEO_PANEL}
};
static uint32_t panel_id;
@@ -472,6 +481,81 @@
hx8394d_720p_video_timings, TIMING_SIZE);
pinfo->mipi.signature = HX8394D_720P_VIDEO_SIGNATURE;
break;
+ case R69006_1080P_CMD_PANEL:
+ panelstruct->paneldata = &r69006_1080p_cmd_panel_data;
+ panelstruct->panelres = &r69006_1080p_cmd_panel_res;
+ panelstruct->color = &r69006_1080p_cmd_color;
+ panelstruct->videopanel = &r69006_1080p_cmd_video_panel;
+ panelstruct->commandpanel = &r69006_1080p_cmd_command_panel;
+ panelstruct->state = &r69006_1080p_cmd_state;
+ panelstruct->laneconfig = &r69006_1080p_cmd_lane_config;
+ panelstruct->paneltiminginfo
+ = &r69006_1080p_cmd_timing_info;
+ panelstruct->panelresetseq
+ = &r69006_1080p_cmd_reset_seq;
+ panelstruct->backlightinfo = &r69006_1080p_cmd_backlight;
+ pinfo->mipi.panel_on_cmds
+ = r69006_1080p_cmd_on_command;
+ pinfo->mipi.num_of_panel_on_cmds
+ = R69006_1080P_CMD_ON_COMMAND;
+ pinfo->mipi.panel_off_cmds
+ = r69006_1080p_cmd_off_command;
+ pinfo->mipi.num_of_panel_off_cmds
+ = R69006_1080P_CMD_OFF_COMMAND;
+ memcpy(phy_db->timing,
+ r69006_1080p_cmd_timings, TIMING_SIZE);
+ pinfo->mipi.signature = R69006_1080P_CMD_SIGNATURE;
+ break;
+ case R69006_1080P_VIDEO_PANEL:
+ panelstruct->paneldata = &r69006_1080p_video_panel_data;
+ panelstruct->panelres = &r69006_1080p_video_panel_res;
+ panelstruct->color = &r69006_1080p_video_color;
+ panelstruct->videopanel = &r69006_1080p_video_video_panel;
+ panelstruct->commandpanel = &r69006_1080p_video_command_panel;
+ panelstruct->state = &r69006_1080p_video_state;
+ panelstruct->laneconfig = &r69006_1080p_video_lane_config;
+ panelstruct->paneltiminginfo
+ = &r69006_1080p_video_timing_info;
+ panelstruct->panelresetseq
+ = &r69006_1080p_video_reset_seq;
+ panelstruct->backlightinfo = &r69006_1080p_video_backlight;
+ pinfo->mipi.panel_on_cmds
+ = r69006_1080p_video_on_command;
+ pinfo->mipi.num_of_panel_on_cmds
+ = R69006_1080P_VIDEO_ON_COMMAND;
+ pinfo->mipi.panel_off_cmds
+ = r69006_1080p_video_off_command;
+ pinfo->mipi.num_of_panel_off_cmds
+ = R69006_1080P_VIDEO_OFF_COMMAND;
+ memcpy(phy_db->timing,
+ r69006_1080p_video_timings, TIMING_SIZE);
+ pinfo->mipi.signature = R69006_1080P_VIDEO_SIGNATURE;
+ break;
+ case HX8394F_720P_VIDEO_PANEL:
+ panelstruct->paneldata = &hx8394f_720p_video_panel_data;
+ panelstruct->panelres = &hx8394f_720p_video_panel_res;
+ panelstruct->color = &hx8394f_720p_video_color;
+ panelstruct->videopanel = &hx8394f_720p_video_video_panel;
+ panelstruct->commandpanel = &hx8394f_720p_video_command_panel;
+ panelstruct->state = &hx8394f_720p_video_state;
+ panelstruct->laneconfig = &hx8394f_720p_video_lane_config;
+ panelstruct->paneltiminginfo
+ = &hx8394f_720p_video_timing_info;
+ panelstruct->panelresetseq
+ = &hx8394f_720p_video_reset_seq;
+ panelstruct->backlightinfo = &hx8394f_720p_video_backlight;
+ pinfo->mipi.panel_on_cmds
+ = hx8394f_720p_video_on_command;
+ pinfo->mipi.num_of_panel_on_cmds
+ = HX8394F_720P_VIDEO_ON_COMMAND;
+ pinfo->mipi.panel_off_cmds
+ = hx8394f_720p_video_off_command;
+ pinfo->mipi.num_of_panel_off_cmds
+ = HX8394F_720P_VIDEO_OFF_COMMAND;
+ memcpy(phy_db->timing,
+ hx8394f_720p_video_timings, TIMING_SIZE);
+ pinfo->mipi.signature = HX8394F_720P_VIDEO_SIGNATURE;
+ break;
case BYD_1200P_VIDEO_PANEL:
panelstruct->paneldata = &byd_1200p_video_panel_data;
panelstruct->paneldata->panel_with_enable_gpio = 1;
@@ -587,7 +671,15 @@
else
panel_id = OTM1906C_1080P_CMD_PANEL;
- /* QRD EVT1 uses OTM1906C, and EVT2 uses HX8399A */
+ /* QRD 8937 SKU1 uses R69006, and SKU2 uses HX8399A */
+ if (platform_is_msm8937()){
+ if (plat_hw_ver_major > 16)
+ panel_id = HX8394F_720P_VIDEO_PANEL;
+ else
+ panel_id = R69006_1080P_CMD_PANEL;
+ }
+
+ /* QRD EVT1 uses OTM1906C, and EVT2 uses HX8394F */
if (platform_is_msm8956()) {
switch (auto_pan_loop) {
case 0: