mirror of
https://xff.cz/git/u-boot/
synced 2025-09-21 18:42:07 +02:00
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: Donghwa Lee <dh09.lee@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Minkyu Kang <mk7.kang@samsung.com> Signed-off-by: Anatolij Gustschin <agust@denx.de>
This commit is contained in:
committed by
Anatolij Gustschin
parent
8ecb4c6473
commit
3d02408665
@@ -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)
|
|||||||
|
|
||||||
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)
|
|||||||
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 @@
|
|||||||
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,8 +37,22 @@ 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)
|
||||||
|
Reference in New Issue
Block a user