From 0499ce9f8319cac1078f4b2423e4e7b420611943 Mon Sep 17 00:00:00 2001 From: Lin Huang Date: Wed, 17 Jan 2018 14:24:14 +0800 Subject: rockchip/rk3399: Support LONG_WRITE type in MIPI DSI Some panels need to transfer initial code, and some of them will be over 3 bytes, so support LONG_WRITE type in driver. Refactor mipi dsi transfer function to support it. Change-Id: I212c14165e074c40a4a1a25140d9e8dfdfba465f Signed-off-by: Lin Huang Reviewed-on: https://review.coreboot.org/23299 Tested-by: build bot (Jenkins) Reviewed-by: Julius Werner --- src/mainboard/google/gru/mainboard.c | 242 +++++++++++++++++------------------ 1 file changed, 121 insertions(+), 121 deletions(-) (limited to 'src/mainboard/google/gru') diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c index 1212ad5bd0..101d7cd477 100644 --- a/src/mainboard/google/gru/mainboard.c +++ b/src/mainboard/google/gru/mainboard.c @@ -378,136 +378,137 @@ void mainboard_power_on_backlight(void) static struct panel_init_command kd097d04_init_commands[] = { /* voltage setting */ - { 0xB0, 0x00 }, - { 0xB2, 0x02 }, - { 0xB3, 0x11 }, - { 0xB4, 0x00 }, - { 0xB6, 0x80 }, + MIPI_INIT_CMD(0xB0, 0x00), + MIPI_INIT_CMD(0xB2, 0x02), + MIPI_INIT_CMD(0xB3, 0x11), + MIPI_INIT_CMD(0xB4, 0x00), + MIPI_INIT_CMD(0xB6, 0x80), /* VCOM disable */ - { 0xB8, 0x80 }, - { 0xBA, 0x43 }, + MIPI_INIT_CMD(0xB8, 0x80), + MIPI_INIT_CMD(0xBA, 0x43), /* VCOM setting */ - { 0xBB, 0x53 }, + MIPI_INIT_CMD(0xBB, 0x53), /* VSP setting */ - { 0xBC, 0x0A }, + MIPI_INIT_CMD(0xBC, 0x0A), /* VSN setting */ - { 0xBD, 0x4A }, + MIPI_INIT_CMD(0xBD, 0x4A), /* VGH setting */ - { 0xBE, 0x2F }, + MIPI_INIT_CMD(0xBE, 0x2F), /* VGL setting */ - { 0xBF, 0x1A }, - { 0xF0, 0x39 }, - { 0xF1, 0x21 }, + MIPI_INIT_CMD(0xBF, 0x1A), + MIPI_INIT_CMD(0xF0, 0x39), + MIPI_INIT_CMD(0xF1, 0x21), /* Gamma setting */ - { 0xB0, 0x02 }, - { 0xC0, 0x00 }, - { 0xC1, 0x01 }, - { 0xC2, 0x0B }, - { 0xC3, 0x15 }, - { 0xC4, 0x22 }, - { 0xC5, 0x11 }, - { 0xC6, 0x15 }, - { 0xC7, 0x19 }, - { 0xC8, 0x1A }, - { 0xC9, 0x16 }, - { 0xCA, 0x18 }, - { 0xCB, 0x13 }, - { 0xCC, 0x18 }, - { 0xCD, 0x13 }, - { 0xCE, 0x1C }, - { 0xCF, 0x19 }, - { 0xD0, 0x21 }, - { 0xD1, 0x2C }, - { 0xD2, 0x2F }, - { 0xD3, 0x30 }, - { 0xD4, 0x19 }, - { 0xD5, 0x1F }, - { 0xD6, 0x00 }, - { 0xD7, 0x01 }, - { 0xD8, 0x0B }, - { 0xD9, 0x15 }, - { 0xDA, 0x22 }, - { 0xDB, 0x11 }, - { 0xDC, 0x15 }, - { 0xDD, 0x19 }, - { 0xDE, 0x1A }, - { 0xDF, 0x16 }, - { 0xE0, 0x18 }, - { 0xE1, 0x13 }, - { 0xE2, 0x18 }, - { 0xE3, 0x13 }, - { 0xE4, 0x1C }, - { 0xE5, 0x19 }, - { 0xE6, 0x21 }, - { 0xE7, 0x2C }, - { 0xE8, 0x2F }, - { 0xE9, 0x30 }, - { 0xEA, 0x19 }, - { 0xEB, 0x1F }, + MIPI_INIT_CMD(0xB0, 0x02), + MIPI_INIT_CMD(0xC0, 0x00), + MIPI_INIT_CMD(0xC1, 0x01), + MIPI_INIT_CMD(0xC2, 0x0B), + MIPI_INIT_CMD(0xC3, 0x15), + MIPI_INIT_CMD(0xC4, 0x22), + MIPI_INIT_CMD(0xC5, 0x11), + MIPI_INIT_CMD(0xC6, 0x15), + MIPI_INIT_CMD(0xC7, 0x19), + MIPI_INIT_CMD(0xC8, 0x1A), + MIPI_INIT_CMD(0xC9, 0x16), + MIPI_INIT_CMD(0xCA, 0x18), + MIPI_INIT_CMD(0xCB, 0x13), + MIPI_INIT_CMD(0xCC, 0x18), + MIPI_INIT_CMD(0xCD, 0x13), + MIPI_INIT_CMD(0xCE, 0x1C), + MIPI_INIT_CMD(0xCF, 0x19), + MIPI_INIT_CMD(0xD0, 0x21), + MIPI_INIT_CMD(0xD1, 0x2C), + MIPI_INIT_CMD(0xD2, 0x2F), + MIPI_INIT_CMD(0xD3, 0x30), + MIPI_INIT_CMD(0xD4, 0x19), + MIPI_INIT_CMD(0xD5, 0x1F), + MIPI_INIT_CMD(0xD6, 0x00), + MIPI_INIT_CMD(0xD7, 0x01), + MIPI_INIT_CMD(0xD8, 0x0B), + MIPI_INIT_CMD(0xD9, 0x15), + MIPI_INIT_CMD(0xDA, 0x22), + MIPI_INIT_CMD(0xDB, 0x11), + MIPI_INIT_CMD(0xDC, 0x15), + MIPI_INIT_CMD(0xDD, 0x19), + MIPI_INIT_CMD(0xDE, 0x1A), + MIPI_INIT_CMD(0xDF, 0x16), + MIPI_INIT_CMD(0xE0, 0x18), + MIPI_INIT_CMD(0xE1, 0x13), + MIPI_INIT_CMD(0xE2, 0x18), + MIPI_INIT_CMD(0xE3, 0x13), + MIPI_INIT_CMD(0xE4, 0x1C), + MIPI_INIT_CMD(0xE5, 0x19), + MIPI_INIT_CMD(0xE6, 0x21), + MIPI_INIT_CMD(0xE7, 0x2C), + MIPI_INIT_CMD(0xE8, 0x2F), + MIPI_INIT_CMD(0xE9, 0x30), + MIPI_INIT_CMD(0xEA, 0x19), + MIPI_INIT_CMD(0xEB, 0x1F), /* GOA MUX setting */ - { 0xB0, 0x01 }, - { 0xC0, 0x10 }, - { 0xC1, 0x0F }, - { 0xC2, 0x0E }, - { 0xC3, 0x0D }, - { 0xC4, 0x0C }, - { 0xC5, 0x0B }, - { 0xC6, 0x0A }, - { 0xC7, 0x09 }, - { 0xC8, 0x08 }, - { 0xC9, 0x07 }, - { 0xCA, 0x06 }, - { 0xCB, 0x05 }, - { 0xCC, 0x00 }, - { 0xCD, 0x01 }, - { 0xCE, 0x02 }, - { 0xCF, 0x03 }, - { 0xD0, 0x04 }, - { 0xD6, 0x10 }, - { 0xD7, 0x0F }, - { 0xD8, 0x0E }, - { 0xD9, 0x0D }, - { 0xDA, 0x0C }, - { 0xDB, 0x0B }, - { 0xDC, 0x0A }, - { 0xDD, 0x09 }, - { 0xDE, 0x08 }, - { 0xDF, 0x07 }, - { 0xE0, 0x06 }, - { 0xE1, 0x05 }, - { 0xE2, 0x00 }, - { 0xE3, 0x01 }, - { 0xE4, 0x02 }, - { 0xE5, 0x03 }, - { 0xE6, 0x04 }, - { 0xE7, 0x00 }, - { 0xEC, 0xC0 }, + MIPI_INIT_CMD(0xB0, 0x01), + MIPI_INIT_CMD(0xC0, 0x10), + MIPI_INIT_CMD(0xC1, 0x0F), + MIPI_INIT_CMD(0xC2, 0x0E), + MIPI_INIT_CMD(0xC3, 0x0D), + MIPI_INIT_CMD(0xC4, 0x0C), + MIPI_INIT_CMD(0xC5, 0x0B), + MIPI_INIT_CMD(0xC6, 0x0A), + MIPI_INIT_CMD(0xC7, 0x09), + MIPI_INIT_CMD(0xC8, 0x08), + MIPI_INIT_CMD(0xC9, 0x07), + MIPI_INIT_CMD(0xCA, 0x06), + MIPI_INIT_CMD(0xCB, 0x05), + MIPI_INIT_CMD(0xCC, 0x00), + MIPI_INIT_CMD(0xCD, 0x01), + MIPI_INIT_CMD(0xCE, 0x02), + MIPI_INIT_CMD(0xCF, 0x03), + MIPI_INIT_CMD(0xD0, 0x04), + MIPI_INIT_CMD(0xD6, 0x10), + MIPI_INIT_CMD(0xD7, 0x0F), + MIPI_INIT_CMD(0xD8, 0x0E), + MIPI_INIT_CMD(0xD9, 0x0D), + MIPI_INIT_CMD(0xDA, 0x0C), + MIPI_INIT_CMD(0xDB, 0x0B), + MIPI_INIT_CMD(0xDC, 0x0A), + MIPI_INIT_CMD(0xDD, 0x09), + MIPI_INIT_CMD(0xDE, 0x08), + MIPI_INIT_CMD(0xDF, 0x07), + MIPI_INIT_CMD(0xE0, 0x06), + MIPI_INIT_CMD(0xE1, 0x05), + MIPI_INIT_CMD(0xE2, 0x00), + MIPI_INIT_CMD(0xE3, 0x01), + MIPI_INIT_CMD(0xE4, 0x02), + MIPI_INIT_CMD(0xE5, 0x03), + MIPI_INIT_CMD(0xE6, 0x04), + MIPI_INIT_CMD(0xE7, 0x00), + MIPI_INIT_CMD(0xEC, 0xC0), /* GOA timing setting */ - { 0xB0, 0x03 }, - { 0xC0, 0x01 }, - { 0xC2, 0x6F }, - { 0xC3, 0x6F }, - { 0xC5, 0x36 }, - { 0xC8, 0x08 }, - { 0xC9, 0x04 }, - { 0xCA, 0x41 }, - { 0xCC, 0x43 }, - { 0xCF, 0x60 }, - { 0xD2, 0x04 }, - { 0xD3, 0x04 }, - { 0xD4, 0x03 }, - { 0xD5, 0x02 }, - { 0xD6, 0x01 }, - { 0xD7, 0x00 }, - { 0xDB, 0x01 }, - { 0xDE, 0x36 }, - { 0xE6, 0x6F }, - { 0xE7, 0x6F }, + MIPI_INIT_CMD(0xB0, 0x03), + MIPI_INIT_CMD(0xC0, 0x01), + MIPI_INIT_CMD(0xC2, 0x6F), + MIPI_INIT_CMD(0xC3, 0x6F), + MIPI_INIT_CMD(0xC5, 0x36), + MIPI_INIT_CMD(0xC8, 0x08), + MIPI_INIT_CMD(0xC9, 0x04), + MIPI_INIT_CMD(0xCA, 0x41), + MIPI_INIT_CMD(0xCC, 0x43), + MIPI_INIT_CMD(0xCF, 0x60), + MIPI_INIT_CMD(0xD2, 0x04), + MIPI_INIT_CMD(0xD3, 0x04), + MIPI_INIT_CMD(0xD4, 0x03), + MIPI_INIT_CMD(0xD5, 0x02), + MIPI_INIT_CMD(0xD6, 0x01), + MIPI_INIT_CMD(0xD7, 0x00), + MIPI_INIT_CMD(0xDB, 0x01), + MIPI_INIT_CMD(0xDE, 0x36), + MIPI_INIT_CMD(0xE6, 0x6F), + MIPI_INIT_CMD(0xE7, 0x6F), /* GOE setting */ - { 0xB0, 0x06 }, - { 0xB8, 0xA5 }, - { 0xC0, 0xA5 }, - { 0xD5, 0x3F }, + MIPI_INIT_CMD(0xB0, 0x06), + MIPI_INIT_CMD(0xB8, 0xA5), + MIPI_INIT_CMD(0xC0, 0xA5), + MIPI_INIT_CMD(0xD5, 0x3F), + {}, }; const struct mipi_panel_data kd097d04_panel = { @@ -517,7 +518,6 @@ const struct mipi_panel_data kd097d04_panel = { .display_on_udelay = 120000, .video_mode_udelay = 5000, .init_cmd = kd097d04_init_commands, - .num_init_commands = ARRAY_SIZE(kd097d04_init_commands) }; static const struct edid_mode kd097d04_edid_mode = { -- cgit v1.2.3