diff options
author | Lin Huang <hl@rock-chips.com> | 2017-12-08 10:31:46 +0800 |
---|---|---|
committer | Julius Werner <jwerner@chromium.org> | 2017-12-12 19:13:22 +0000 |
commit | 318a03a417adead20bc2543319b45b68f6536588 (patch) | |
tree | 6751e0d8b2d97bebab41cfb887f29613b8f23b11 /src | |
parent | 19f67a392a9d802403b203ae5920e45307813276 (diff) |
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 <hl@rock-chips.com>
Reviewed-on: https://review.coreboot.org/22780
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'src')
-rw-r--r-- | src/mainboard/google/gru/mainboard.c | 42 |
1 files 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) |