summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLin Huang <hl@rock-chips.com>2017-12-08 10:31:46 +0800
committerJulius Werner <jwerner@chromium.org>2017-12-12 19:13:22 +0000
commit318a03a417adead20bc2543319b45b68f6536588 (patch)
tree6751e0d8b2d97bebab41cfb887f29613b8f23b11
parent19f67a392a9d802403b203ae5920e45307813276 (diff)
downloadcoreboot-318a03a417adead20bc2543319b45b68f6536588.tar.xz
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>
-rw-r--r--src/mainboard/google/gru/mainboard.c42
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)