diff options
author | Itsuki Yamashita <yamashitai@casio.co.jp> | 2015-10-16 11:49:57 +0900 |
---|---|---|
committer | Itsuki Yamashita <yamashitai@casio.co.jp> | 2015-10-16 11:49:57 +0900 |
commit | ded989b8d765de77a5e1e85e0d10e413c6ad3237 (patch) | |
tree | 2a83a85301759e7b7fb4a707246d7c7b9414c7b9 | |
parent | 9e20108023efef3436468cce58aa0f19accfc550 (diff) | |
download | koi-uboot-ded989b8d765de77a5e1e85e0d10e413c6ad3237.tar.gz |
video: add off sequence
Change-Id: Ib9f063a15cb078cd7eadb26874e07e8ff7e8006b
Signed-off-by: Itsuki Yamashita <yamashitai@casio.co.jp>
-rw-r--r-- | drivers/video/display.c | 2 | ||||
-rw-r--r-- | drivers/video/exynos_mipi_dsi.c | 18 | ||||
-rw-r--r-- | drivers/video/sharp_mipi_lcd.c | 10 | ||||
-rw-r--r-- | drivers/video/sharp_mipi_lcd.h | 8 |
4 files changed, 37 insertions, 1 deletions
diff --git a/drivers/video/display.c b/drivers/video/display.c index 207eca0c2..864e9e124 100644 --- a/drivers/video/display.c +++ b/drivers/video/display.c @@ -108,8 +108,8 @@ void Backlight_Turnoff(void) void Display_Turnoff(void) { - LCD_Stop(); Backlight_Turnoff(); + LCD_Stop(); LCD_turnoff(); printf("Turn off Display\n"); diff --git a/drivers/video/exynos_mipi_dsi.c b/drivers/video/exynos_mipi_dsi.c index dd10135d5..9f938013d 100644 --- a/drivers/video/exynos_mipi_dsi.c +++ b/drivers/video/exynos_mipi_dsi.c @@ -31,6 +31,9 @@ #include "exynos_mipi_dsi_lowlevel.h" #include "exynos_mipi_dsi_common.h" +#if defined(CONFIG_SHARP_LCD) +#include "sharp_mipi_lcd.h" +#endif #define master_to_driver(a) (a->dsim_lcd_drv) #define master_to_device(a) (a->dsim_lcd_dev) @@ -245,6 +248,7 @@ int exynos_mipi_dsi_init(void) void exynos_mipi_dsi_stop(void) { struct mipi_dsim_device *dsim; + struct mipi_dsim_config *dsim_config; dsim = kzalloc(sizeof(struct mipi_dsim_device), GFP_KERNEL); if (!dsim) { @@ -252,6 +256,20 @@ void exynos_mipi_dsi_stop(void) return -EFAULT; } + /* get mipi_dsim_config. */ + dsim_config = dsim_pd->dsim_config; + if (dsim_config == NULL) { + debug("failed to get dsim config data.\n"); + return -EFAULT; + } + + dsim->pd = dsim_pd; + dsim->dsim_config = dsim_config; + dsim->master_ops = &master_ops; + +#if defined(CONFIG_SHARP_LCD) + sharp_mipi_power_sequence_off(dsim); +#endif exynos_mipi_dsi_sw_reset(dsim); exynos_mipi_dsi_enable_hs_clock(dsim, 0); exynos_mipi_dsi_enable_byte_clock(dsim, 0); diff --git a/drivers/video/sharp_mipi_lcd.c b/drivers/video/sharp_mipi_lcd.c index f48efd188..48983292d 100644 --- a/drivers/video/sharp_mipi_lcd.c +++ b/drivers/video/sharp_mipi_lcd.c @@ -5,6 +5,7 @@ #include "exynos_mipi_dsi_lowlevel.h" #include "exynos_mipi_dsi_common.h" +#include "sharp_mipi_lcd.h" #include "sharp_mipi_lcd_commands.h" static void sharp_power_sequence_on(struct mipi_dsim_device *dsim) @@ -69,6 +70,15 @@ static void sharp_power_sequence_on(struct mipi_dsim_device *dsim) mdelay(130); } +void sharp_mipi_power_sequence_off(struct mipi_dsim_device *dsim) +{ + struct mipi_dsim_master_ops *ops = dsim->master_ops; + + ops->cmd_write(dsim, MIPI_DSI_DCS_SHORT_WRITE, 0x28, 0x00); + ops->cmd_write(dsim, MIPI_DSI_DCS_SHORT_WRITE, 0x10, 0x00); + mdelay(110); +} + static int sharp_mipi_lcd_panel_set(struct mipi_dsim_device *dsim) { sharp_power_sequence_on(dsim); diff --git a/drivers/video/sharp_mipi_lcd.h b/drivers/video/sharp_mipi_lcd.h new file mode 100644 index 000000000..dc690271f --- /dev/null +++ b/drivers/video/sharp_mipi_lcd.h @@ -0,0 +1,8 @@ +/* Header file for sharp display driver */ + +#ifndef _SHARP_MIPI_LCD_H +#define _SHARP_MIPI_LCD_H + +void sharp_mipi_power_sequence_off(struct mipi_dsim_device *dsim); + +#endif /* _SHARP_MIPI_LCD_H */ |