Skip to content
Snippets Groups Projects
Commit 3d024086 authored by Donghwa Lee's avatar Donghwa Lee Committed by Anatolij Gustschin
Browse files

LCD: support another s6e8ax0 panel type


s6e8ax0 panel has many panel of types. This patch support another panel
on TIZEN lunchbox board(HWREVISION 2). This panel has reversed panel
display type. So, I had added necessary command.

Signed-off-by: default avatarDonghwa Lee <dh09.lee@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Acked-by: default avatarMinkyu Kang <mk7.kang@samsung.com>
Signed-off-by: default avatarAnatolij Gustschin <agust@denx.de>
parent 8ecb4c64
Branches
Tags
Loading
...@@ -329,6 +329,7 @@ struct mipi_dsim_lcd_device { ...@@ -329,6 +329,7 @@ struct mipi_dsim_lcd_device {
char *name; char *name;
int id; int id;
int bus_id; int bus_id;
int reverse_panel;
struct mipi_dsim_device *master; struct mipi_dsim_device *master;
void *platform_data; void *platform_data;
......
...@@ -53,6 +53,11 @@ u32 get_board_rev(void) ...@@ -53,6 +53,11 @@ u32 get_board_rev(void)
static void check_hw_revision(void); static void check_hw_revision(void);
static int hwrevision(int rev)
{
return (board_rev & 0xf) == rev;
}
int board_init(void) int board_init(void)
{ {
gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100; gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
...@@ -492,6 +497,9 @@ void init_panel_info(vidinfo_t *vid) ...@@ -492,6 +497,9 @@ void init_panel_info(vidinfo_t *vid)
vid->interface_mode = FIMD_RGB_INTERFACE; vid->interface_mode = FIMD_RGB_INTERFACE;
vid->mipi_enabled = 1; vid->mipi_enabled = 1;
if (hwrevision(2))
mipi_lcd_device.reverse_panel = 1;
strcpy(s6e8ax0_platform_data.lcd_panel_name, mipi_lcd_device.name); strcpy(s6e8ax0_platform_data.lcd_panel_name, mipi_lcd_device.name);
s6e8ax0_platform_data.lcd_power = lcd_power; s6e8ax0_platform_data.lcd_power = lcd_power;
s6e8ax0_platform_data.mipi_power = mipi_power; s6e8ax0_platform_data.mipi_power = mipi_power;
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
static void s6e8ax0_panel_cond(struct mipi_dsim_device *dsim_dev) static void s6e8ax0_panel_cond(struct mipi_dsim_device *dsim_dev)
{ {
struct mipi_dsim_master_ops *ops = dsim_dev->master_ops; struct mipi_dsim_master_ops *ops = dsim_dev->master_ops;
int reverse = dsim_dev->dsim_lcd_dev->reverse_panel;
const unsigned char data_to_send[] = { const unsigned char data_to_send[] = {
0xf8, 0x3d, 0x35, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x4c, 0xf8, 0x3d, 0x35, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x4c,
0x6e, 0x10, 0x27, 0x7d, 0x3f, 0x10, 0x00, 0x00, 0x20, 0x6e, 0x10, 0x27, 0x7d, 0x3f, 0x10, 0x00, 0x00, 0x20,
...@@ -36,9 +37,23 @@ static void s6e8ax0_panel_cond(struct mipi_dsim_device *dsim_dev) ...@@ -36,9 +37,23 @@ static void s6e8ax0_panel_cond(struct mipi_dsim_device *dsim_dev)
0xff, 0xff, 0xc8 0xff, 0xff, 0xc8
}; };
const unsigned char data_to_send_reverse[] = {
0xf8, 0x19, 0x35, 0x00, 0x00, 0x00, 0x93, 0x00, 0x3c,
0x7d, 0x08, 0x27, 0x7d, 0x3f, 0x00, 0x00, 0x00, 0x20,
0x04, 0x08, 0x6e, 0x00, 0x00, 0x00, 0x02, 0x08, 0x08,
0x23, 0x23, 0xc0, 0xc1, 0x01, 0x41, 0xc1, 0x00, 0xc1,
0xf6, 0xf6, 0xc1
};
if (reverse) {
ops->cmd_write(dsim_dev, MIPI_DSI_DCS_LONG_WRITE,
(unsigned int)data_to_send_reverse,
ARRAY_SIZE(data_to_send_reverse));
} else {
ops->cmd_write(dsim_dev, MIPI_DSI_DCS_LONG_WRITE, ops->cmd_write(dsim_dev, MIPI_DSI_DCS_LONG_WRITE,
(unsigned int)data_to_send, ARRAY_SIZE(data_to_send)); (unsigned int)data_to_send, ARRAY_SIZE(data_to_send));
} }
}
static void s6e8ax0_display_cond(struct mipi_dsim_device *dsim_dev) static void s6e8ax0_display_cond(struct mipi_dsim_device *dsim_dev)
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment