diff options
author | Animesh Kishore <ankishore@nvidia.com> | 2011-07-14 17:22:11 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:47:58 -0800 |
commit | b1f7448a475c53f1c13ec5611364021a26e12f78 (patch) | |
tree | 43444e6877d7713e66a5520092042c6b2c6e591c /arch/arm/mach-tegra/board-enterprise-panel.c | |
parent | 523e72f6e88276fdc8b51d0cde3ccc12384901a1 (diff) |
ARM: tegra: enterprise: DC one-shot mode
Send command to panel to enable TE signal.
Disable/enable TE signal from panel in suspend/resume.
Bug 851754
Original-Change-Id: I16017250788057a49f36e2ba01d09c66cc00dd85
Reviewed-on: http://git-master/r/40628
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: R204168cdbac84a732e4e30efc31f8e8094d57d94
Diffstat (limited to 'arch/arm/mach-tegra/board-enterprise-panel.c')
-rw-r--r-- | arch/arm/mach-tegra/board-enterprise-panel.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-enterprise-panel.c b/arch/arm/mach-tegra/board-enterprise-panel.c index 06e1df1dbe69..9438f865ecb2 100644 --- a/arch/arm/mach-tegra/board-enterprise-panel.c +++ b/arch/arm/mach-tegra/board-enterprise-panel.c @@ -38,6 +38,8 @@ #include "devices.h" #include "gpio-names.h" +#define DC_CTRL_MODE TEGRA_DC_OUT_CONTINUOUS_MODE + /* Select panel to be used. */ #define AVDD_LCD PMU_TCA6416_GPIO_PORT17 #define DSI_PANEL_RESET 0 @@ -430,6 +432,25 @@ static int enterprise_dsi_panel_postsuspend(void) static struct tegra_dsi_cmd dsi_init_cmd[]= { DSI_CMD_SHORT(0x05, 0x11, 0x00), DSI_DLY_MS(150), +#if(DC_CTRL_MODE == TEGRA_DC_OUT_ONE_SHOT_MODE) + DSI_CMD_SHORT(0x15, 0x35, 0x00), +#endif + DSI_CMD_SHORT(0x05, 0x29, 0x00), + DSI_DLY_MS(20), +}; + +static struct tegra_dsi_cmd dsi_early_suspend_cmd[] = { + DSI_CMD_SHORT(0x05, 0x28, 0x00), + DSI_DLY_MS(20), +#if(DC_CTRL_MODE == TEGRA_DC_OUT_ONE_SHOT_MODE) + DSI_CMD_SHORT(0x05, 0x34, 0x00), +#endif +}; + +static struct tegra_dsi_cmd dsi_late_resume_cmd[] = { +#if(DC_CTRL_MODE == TEGRA_DC_OUT_ONE_SHOT_MODE) + DSI_CMD_SHORT(0x15, 0x35, 0x00), +#endif DSI_CMD_SHORT(0x05, 0x29, 0x00), DSI_DLY_MS(20), }; @@ -437,6 +458,9 @@ static struct tegra_dsi_cmd dsi_init_cmd[]= { static struct tegra_dsi_cmd dsi_suspend_cmd[] = { DSI_CMD_SHORT(0x05, 0x28, 0x00), DSI_DLY_MS(20), +#if(DC_CTRL_MODE == TEGRA_DC_OUT_ONE_SHOT_MODE) + DSI_CMD_SHORT(0x05, 0x34, 0x00), +#endif DSI_CMD_SHORT(0x05, 0x10, 0x00), DSI_DLY_MS(5), }; @@ -455,8 +479,15 @@ struct tegra_dsi_out enterprise_dsi = { .n_init_cmd = ARRAY_SIZE(dsi_init_cmd), .dsi_init_cmd = dsi_init_cmd, + .n_early_suspend_cmd = ARRAY_SIZE(dsi_early_suspend_cmd), + .dsi_early_suspend_cmd = dsi_early_suspend_cmd, + + .n_late_resume_cmd = ARRAY_SIZE(dsi_late_resume_cmd), + .dsi_late_resume_cmd = dsi_late_resume_cmd, + .n_suspend_cmd = ARRAY_SIZE(dsi_suspend_cmd), .dsi_suspend_cmd = dsi_suspend_cmd, + .video_data_type = TEGRA_DSI_VIDEO_TYPE_COMMAND_MODE, .lp_cmd_mode_freq_khz = 20000, }; @@ -497,6 +528,8 @@ static struct tegra_dc_out enterprise_disp1_out = { .order = TEGRA_DC_ORDER_RED_BLUE, .sd_settings = &enterprise_sd_settings, + .flags = DC_CTRL_MODE, + .type = TEGRA_DC_OUT_DSI, .modes = enterprise_dsi_modes, |