From 318a03a417adead20bc2543319b45b68f6536588 Mon Sep 17 00:00:00 2001 From: Lin Huang Date: Fri, 8 Dec 2017 10:31:46 +0800 Subject: google/scarlet: support INNOLUX P097PFG panel Add INNOLUX P097PFG panel timing. According to Scalet schematic, if GPIO3_D4 get low status, it will use INNOLUX P097PFG panel; if GPIO3_D4 get high status, it will use KD097d04 panel. Change-Id: I43fa5d859a9a529a84c58a953b37d03953ce648a Signed-off-by: Lin Huang Reviewed-on: https://review.coreboot.org/22780 Tested-by: build bot (Jenkins) Reviewed-by: Julius Werner Reviewed-by: Paul Menzel --- src/mainboard/google/gru/mainboard.c | 42 +++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c index 1a24862184..1212ad5bd0 100644 --- a/src/mainboard/google/gru/mainboard.c +++ b/src/mainboard/google/gru/mainboard.c @@ -534,12 +534,48 @@ static const struct edid_mode kd097d04_edid_mode = { .vspw = 2, }; +const struct mipi_panel_data inx097pfg_panel = { + .mipi_num = 2, + .format = MIPI_DSI_FMT_RGB888, + .lanes = 8, + .display_on_udelay = 120000, + .video_mode_udelay = 5000, +}; + +static const struct edid_mode inx097pfg_edid_mode = { + .name = "1536x2048@60Hz", + .pixel_clock = 220000, + .refresh = 60, + .ha = 1536, + .hbl = 224, + .hso = 100, + .hspw = 24, + .va = 2048, + .vbl = 38, + .vso = 18, + .vspw = 2, +}; + const struct mipi_panel_data *mainboard_get_mipi_mode (struct edid_mode *edid_mode) { - memcpy(edid_mode, &kd097d04_edid_mode, sizeof(struct edid_mode)); - - return &kd097d04_panel; + switch (sku_id()) { + case 0: + case 2: + case 4: + case 6: + memcpy(edid_mode, &inx097pfg_edid_mode, + sizeof(struct edid_mode)); + return &inx097pfg_panel; + case 1: + case 3: + case 5: + case 7: + default: + memcpy(edid_mode, &kd097d04_edid_mode, + sizeof(struct edid_mode)); + return &kd097d04_panel; + } } static void mainboard_enable(device_t dev) -- cgit v1.2.3