mb/google/kukui: Add panel for Kakadu
Declare the following panel for Kakadu:
- BOE_TV105WUM_NW0
BUG=b:148997748
TEST=build Kakadu image passed
BRANCH=kukui
Signed-off-by: Casper Chang <casper_chang@bitand.corp-partner.google.com>
Change-Id: I394b8cafa8be40e5fd6bf8ceb81b520df73718a4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/38822
Reviewed-by: Peichao Li <peichao.wang@bitland.corp-partner.google.com>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/mainboard/google/kukui/Makefile.inc b/src/mainboard/google/kukui/Makefile.inc
index 7839422..a2a147c 100644
--- a/src/mainboard/google/kukui/Makefile.inc
+++ b/src/mainboard/google/kukui/Makefile.inc
@@ -26,6 +26,7 @@
ramstage-y += mainboard.c
ramstage-y += memlayout.ld
ramstage-$(CONFIG_BOARD_GOOGLE_FLAPJACK) += panel_flapjack.c
+ramstage-$(CONFIG_BOARD_GOOGLE_KAKADU) += panel_kakadu.c
ramstage-$(CONFIG_BOARD_GOOGLE_KODAMA) += panel_kodama.c
ramstage-$(CONFIG_BOARD_GOOGLE_KRANE) += panel_krane.c
ramstage-$(CONFIG_BOARD_GOOGLE_KUKUI) += panel_kukui.c
diff --git a/src/mainboard/google/kukui/panel_kakadu.c b/src/mainboard/google/kukui/panel_kakadu.c
new file mode 100644
index 0000000..3cb18ba
--- /dev/null
+++ b/src/mainboard/google/kukui/panel_kakadu.c
@@ -0,0 +1,28 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2020 Bitland Tech Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include "panel.h"
+
+static struct panel_description kakadu_panels[] = {
+ [1] = { .name = "BOE_TV105WUM_NW0", },
+};
+
+struct panel_description *get_panel_description(int panel_id)
+{
+ if (panel_id < 0 || panel_id >= ARRAY_SIZE(kakadu_panels))
+ return NULL;
+
+ return get_panel_from_cbfs(&kakadu_panels[panel_id]);
+}
diff --git a/src/mainboard/google/kukui/panel_params/Makefile.inc b/src/mainboard/google/kukui/panel_params/Makefile.inc
index 016dad0..3bd605d 100644
--- a/src/mainboard/google/kukui/panel_params/Makefile.inc
+++ b/src/mainboard/google/kukui/panel_params/Makefile.inc
@@ -3,6 +3,7 @@
panel-params-$(CONFIG_BOARD_GOOGLE_KRANE) += panel-BOE_TV101WUM_NL6
panel-params-$(CONFIG_BOARD_GOOGLE_KODAMA) += panel-AUO_B101UAN08_3
panel-params-$(CONFIG_BOARD_GOOGLE_KODAMA) += panel-BOE_TV101WUM_N53
+panel-params-$(CONFIG_BOARD_GOOGLE_KAKADU) += panel-BOE_TV105WUM_NW0
panel-params-$(CONFIG_BOARD_GOOGLE_KUKUI) += panel-CMN_P097PFG_SSD2858
panel-params-$(CONFIG_BOARD_GOOGLE_FLAPJACK) += panel-AUO_NT51021D8P
panel-params-$(CONFIG_BOARD_GOOGLE_FLAPJACK) += panel-BOE_TV080WUM_NG0
diff --git a/src/mainboard/google/kukui/panel_params/panel-BOE_TV105WUM_NW0.c b/src/mainboard/google/kukui/panel_params/panel-BOE_TV105WUM_NW0.c
new file mode 100644
index 0000000..4506883
--- /dev/null
+++ b/src/mainboard/google/kukui/panel_params/panel-BOE_TV105WUM_NW0.c
@@ -0,0 +1,333 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2020 Bitland Tech Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include "../panel.h"
+
+struct panel_serializable_data BOE_TV105WUM_NW0 = {
+ .edid = {
+ .ascii_string = "TV105WUM-NW0",
+ .manufacturer_name = "BOE",
+ .panel_bits_per_color = 8,
+ .panel_bits_per_pixel = 24,
+ .mode = {
+ .pixel_clock = 156298,
+ .lvds_dual_channel = 0,
+ .refresh = 60,
+ .ha = 1200, .hbl = 140, .hso = 60, .hspw = 24,
+ .va = 1920, .vbl = 24, .vso = 14, .vspw = 2,
+ .phsync = '-', .pvsync = '-',
+ .x_mm = 147, .y_mm = 236,
+ },
+ },
+ .init = {
+ INIT_DCS_CMD(0x10),
+ INIT_DELAY_CMD(34),
+ INIT_DCS_CMD(0xB0, 0x05),
+ INIT_DCS_CMD(0xB1, 0xE5),
+ INIT_DCS_CMD(0xB3, 0x52),
+ INIT_DCS_CMD(0xB0, 0x00),
+ INIT_DCS_CMD(0xB3, 0x88),
+ INIT_DCS_CMD(0xB0, 0x04),
+ INIT_DCS_CMD(0xB8, 0x00),
+ INIT_DCS_CMD(0xB0, 0x00),
+ INIT_DCS_CMD(0xB6, 0x03),
+ INIT_DCS_CMD(0xBA, 0x87),
+ INIT_DCS_CMD(0xBF, 0x1F),
+ INIT_DCS_CMD(0xC0, 0x0F),
+ INIT_DCS_CMD(0xC2, 0x0E),
+ INIT_DCS_CMD(0xC3, 0x02),
+ INIT_DCS_CMD(0xC4, 0x0E),
+ INIT_DCS_CMD(0xC5, 0x02),
+ INIT_DCS_CMD(0xB0, 0x01),
+ INIT_DCS_CMD(0xE0, 0x26),
+ INIT_DCS_CMD(0xE1, 0x26),
+ INIT_DCS_CMD(0xDC, 0x00),
+ INIT_DCS_CMD(0xDD, 0x00),
+ INIT_DCS_CMD(0xCC, 0x26),
+ INIT_DCS_CMD(0xCD, 0x26),
+ INIT_DCS_CMD(0xC8, 0x00),
+ INIT_DCS_CMD(0xC9, 0x00),
+ INIT_DCS_CMD(0xD2, 0x03),
+ INIT_DCS_CMD(0xD3, 0x03),
+ INIT_DCS_CMD(0xE6, 0x04),
+ INIT_DCS_CMD(0xE7, 0x04),
+ INIT_DCS_CMD(0xC4, 0x09),
+ INIT_DCS_CMD(0xC5, 0x09),
+ INIT_DCS_CMD(0xD8, 0x0A),
+ INIT_DCS_CMD(0xD9, 0x0A),
+ INIT_DCS_CMD(0xC2, 0x0B),
+ INIT_DCS_CMD(0xC3, 0x0B),
+ INIT_DCS_CMD(0xD6, 0x0C),
+ INIT_DCS_CMD(0xD7, 0x0C),
+ INIT_DCS_CMD(0xC0, 0x05),
+ INIT_DCS_CMD(0xC1, 0x05),
+ INIT_DCS_CMD(0xD4, 0x06),
+ INIT_DCS_CMD(0xD5, 0x06),
+ INIT_DCS_CMD(0xCA, 0x07),
+ INIT_DCS_CMD(0xCB, 0x07),
+ INIT_DCS_CMD(0xDE, 0x08),
+ INIT_DCS_CMD(0xDF, 0x08),
+ INIT_DCS_CMD(0xB0, 0x02),
+ INIT_DCS_CMD(0xC0, 0x00),
+ INIT_DCS_CMD(0xC1, 0x11),
+ INIT_DCS_CMD(0xC2, 0x1D),
+ INIT_DCS_CMD(0xC3, 0x2E),
+ INIT_DCS_CMD(0xC4, 0x3F),
+ INIT_DCS_CMD(0xC5, 0x3F),
+ INIT_DCS_CMD(0xC6, 0x3F),
+ INIT_DCS_CMD(0xC7, 0x3F),
+ INIT_DCS_CMD(0xC8, 0x3F),
+ INIT_DCS_CMD(0xC9, 0x3F),
+ INIT_DCS_CMD(0xCA, 0x3F),
+ INIT_DCS_CMD(0xCB, 0x3F),
+ INIT_DCS_CMD(0xCC, 0x3F),
+ INIT_DCS_CMD(0xCD, 0x33),
+ INIT_DCS_CMD(0xCE, 0x32),
+ INIT_DCS_CMD(0xCF, 0x31),
+ INIT_DCS_CMD(0xD0, 0x07),
+ INIT_DCS_CMD(0xD2, 0x00),
+ INIT_DCS_CMD(0xD3, 0x11),
+ INIT_DCS_CMD(0xD4, 0x1D),
+ INIT_DCS_CMD(0xD5, 0x2E),
+ INIT_DCS_CMD(0xD6, 0x3F),
+ INIT_DCS_CMD(0xD7, 0x3F),
+ INIT_DCS_CMD(0xD8, 0x3F),
+ INIT_DCS_CMD(0xD9, 0x3F),
+ INIT_DCS_CMD(0xDA, 0x3F),
+ INIT_DCS_CMD(0xDB, 0x3F),
+ INIT_DCS_CMD(0xDC, 0x3F),
+ INIT_DCS_CMD(0xDD, 0x3F),
+ INIT_DCS_CMD(0xDE, 0x3F),
+ INIT_DCS_CMD(0xDF, 0x33),
+ INIT_DCS_CMD(0xE0, 0x32),
+ INIT_DCS_CMD(0xE1, 0x31),
+ INIT_DCS_CMD(0xE2, 0x07),
+ INIT_DCS_CMD(0xB0, 0x03),
+ INIT_DCS_CMD(0xC8, 0x0B),
+ INIT_DCS_CMD(0xC9, 0x07),
+ INIT_DCS_CMD(0xC3, 0x00),
+ INIT_DCS_CMD(0xE7, 0x00),
+ INIT_DCS_CMD(0xC5, 0x2A),
+ INIT_DCS_CMD(0xDE, 0x2A),
+ INIT_DCS_CMD(0xCA, 0x43),
+ INIT_DCS_CMD(0xC9, 0x07),
+ INIT_DCS_CMD(0xE4, 0xC0),
+ INIT_DCS_CMD(0xE5, 0x0D),
+ INIT_DCS_CMD(0xCB, 0x00),
+ INIT_DCS_CMD(0xB0, 0x06),
+ INIT_DCS_CMD(0xB8, 0xA5),
+ INIT_DCS_CMD(0xC0, 0xA5),
+ INIT_DCS_CMD(0xC7, 0x0F),
+ INIT_DCS_CMD(0xD5, 0x32),
+ INIT_DCS_CMD(0xBC, 0x33),
+ INIT_DCS_CMD(0xB0, 0x07),
+ INIT_DCS_CMD(0xB1, 0x00),
+ INIT_DCS_CMD(0xB2, 0x02),
+ INIT_DCS_CMD(0xB3, 0x0B),
+ INIT_DCS_CMD(0xB4, 0x1A),
+ INIT_DCS_CMD(0xB5, 0x29),
+ INIT_DCS_CMD(0xB6, 0x38),
+ INIT_DCS_CMD(0xB7, 0x58),
+ INIT_DCS_CMD(0xB8, 0x76),
+ INIT_DCS_CMD(0xB9, 0xB9),
+ INIT_DCS_CMD(0xBA, 0xF7),
+ INIT_DCS_CMD(0xBB, 0x6D),
+ INIT_DCS_CMD(0xBC, 0xE5),
+ INIT_DCS_CMD(0xBD, 0xE9),
+ INIT_DCS_CMD(0xBE, 0x5E),
+ INIT_DCS_CMD(0xBF, 0xD6),
+ INIT_DCS_CMD(0xC0, 0x15),
+ INIT_DCS_CMD(0xC1, 0x51),
+ INIT_DCS_CMD(0xC2, 0x71),
+ INIT_DCS_CMD(0xC3, 0x90),
+ INIT_DCS_CMD(0xC4, 0x9C),
+ INIT_DCS_CMD(0xC5, 0xA8),
+ INIT_DCS_CMD(0xC6, 0xB5),
+ INIT_DCS_CMD(0xC7, 0xBC),
+ INIT_DCS_CMD(0xC8, 0xC0),
+ INIT_DCS_CMD(0xC9, 0x00),
+ INIT_DCS_CMD(0xCA, 0x00),
+ INIT_DCS_CMD(0xCB, 0x05),
+ INIT_DCS_CMD(0xCC, 0x6B),
+ INIT_DCS_CMD(0xCD, 0xFF),
+ INIT_DCS_CMD(0xCE, 0xFF),
+ INIT_DCS_CMD(0xB0, 0x08),
+ INIT_DCS_CMD(0xB1, 0x00),
+ INIT_DCS_CMD(0xB2, 0x04),
+ INIT_DCS_CMD(0xB3, 0x0B),
+ INIT_DCS_CMD(0xB4, 0x1A),
+ INIT_DCS_CMD(0xB5, 0x29),
+ INIT_DCS_CMD(0xB6, 0x38),
+ INIT_DCS_CMD(0xB7, 0x58),
+ INIT_DCS_CMD(0xB8, 0x76),
+ INIT_DCS_CMD(0xB9, 0xB8),
+ INIT_DCS_CMD(0xBA, 0xF7),
+ INIT_DCS_CMD(0xBB, 0x6C),
+ INIT_DCS_CMD(0xBC, 0xE3),
+ INIT_DCS_CMD(0xBD, 0xE7),
+ INIT_DCS_CMD(0xBE, 0x5C),
+ INIT_DCS_CMD(0xBF, 0xD3),
+ INIT_DCS_CMD(0xC0, 0x10),
+ INIT_DCS_CMD(0xC1, 0x4C),
+ INIT_DCS_CMD(0xC2, 0x6A),
+ INIT_DCS_CMD(0xC3, 0x8A),
+ INIT_DCS_CMD(0xC4, 0x96),
+ INIT_DCS_CMD(0xC5, 0xA2),
+ INIT_DCS_CMD(0xC6, 0xAE),
+ INIT_DCS_CMD(0xC7, 0xB4),
+ INIT_DCS_CMD(0xC8, 0xB8),
+ INIT_DCS_CMD(0xC9, 0x00),
+ INIT_DCS_CMD(0xCA, 0x00),
+ INIT_DCS_CMD(0xCB, 0x05),
+ INIT_DCS_CMD(0xCC, 0x6B),
+ INIT_DCS_CMD(0xCD, 0xFF),
+ INIT_DCS_CMD(0xCE, 0xFF),
+ INIT_DCS_CMD(0xB0, 0x09),
+ INIT_DCS_CMD(0xB1, 0x04),
+ INIT_DCS_CMD(0xB2, 0x04),
+ INIT_DCS_CMD(0xB3, 0x0C),
+ INIT_DCS_CMD(0xB4, 0x1C),
+ INIT_DCS_CMD(0xB5, 0x2D),
+ INIT_DCS_CMD(0xB6, 0x3C),
+ INIT_DCS_CMD(0xB7, 0x5F),
+ INIT_DCS_CMD(0xB8, 0x80),
+ INIT_DCS_CMD(0xB9, 0xC8),
+ INIT_DCS_CMD(0xBA, 0x0D),
+ INIT_DCS_CMD(0xBB, 0x8A),
+ INIT_DCS_CMD(0xBC, 0x10),
+ INIT_DCS_CMD(0xBD, 0x14),
+ INIT_DCS_CMD(0xBE, 0x91),
+ INIT_DCS_CMD(0xBF, 0x13),
+ INIT_DCS_CMD(0xC0, 0x53),
+ INIT_DCS_CMD(0xC1, 0x93),
+ INIT_DCS_CMD(0xC2, 0xAB),
+ INIT_DCS_CMD(0xC3, 0xC6),
+ INIT_DCS_CMD(0xC4, 0xD6),
+ INIT_DCS_CMD(0xC5, 0xE4),
+ INIT_DCS_CMD(0xC6, 0xF3),
+ INIT_DCS_CMD(0xC7, 0xF9),
+ INIT_DCS_CMD(0xC8, 0xFC),
+ INIT_DCS_CMD(0xC9, 0x00),
+ INIT_DCS_CMD(0xCA, 0x00),
+ INIT_DCS_CMD(0xCB, 0x16),
+ INIT_DCS_CMD(0xCC, 0xAF),
+ INIT_DCS_CMD(0xCD, 0xFF),
+ INIT_DCS_CMD(0xCE, 0xFF),
+ INIT_DCS_CMD(0xB0, 0x0A),
+ INIT_DCS_CMD(0xB1, 0x00),
+ INIT_DCS_CMD(0xB2, 0x02),
+ INIT_DCS_CMD(0xB3, 0x0B),
+ INIT_DCS_CMD(0xB4, 0x1A),
+ INIT_DCS_CMD(0xB5, 0x29),
+ INIT_DCS_CMD(0xB6, 0x38),
+ INIT_DCS_CMD(0xB7, 0x58),
+ INIT_DCS_CMD(0xB8, 0x76),
+ INIT_DCS_CMD(0xB9, 0xB9),
+ INIT_DCS_CMD(0xBA, 0xF7),
+ INIT_DCS_CMD(0xBB, 0x6D),
+ INIT_DCS_CMD(0xBC, 0xE5),
+ INIT_DCS_CMD(0xBD, 0xE9),
+ INIT_DCS_CMD(0xBE, 0x5E),
+ INIT_DCS_CMD(0xBF, 0xD6),
+ INIT_DCS_CMD(0xC0, 0x15),
+ INIT_DCS_CMD(0xC1, 0x51),
+ INIT_DCS_CMD(0xC2, 0x71),
+ INIT_DCS_CMD(0xC3, 0x90),
+ INIT_DCS_CMD(0xC4, 0x9C),
+ INIT_DCS_CMD(0xC5, 0xA8),
+ INIT_DCS_CMD(0xC6, 0xB5),
+ INIT_DCS_CMD(0xC7, 0xBC),
+ INIT_DCS_CMD(0xC8, 0xC0),
+ INIT_DCS_CMD(0xC9, 0x00),
+ INIT_DCS_CMD(0xCA, 0x00),
+ INIT_DCS_CMD(0xCB, 0x05),
+ INIT_DCS_CMD(0xCC, 0x6B),
+ INIT_DCS_CMD(0xCD, 0xFF),
+ INIT_DCS_CMD(0xCE, 0xFF),
+ INIT_DCS_CMD(0xB0, 0x0B),
+ INIT_DCS_CMD(0xB1, 0x00),
+ INIT_DCS_CMD(0xB2, 0x04),
+ INIT_DCS_CMD(0xB3, 0x0B),
+ INIT_DCS_CMD(0xB4, 0x1A),
+ INIT_DCS_CMD(0xB5, 0x29),
+ INIT_DCS_CMD(0xB6, 0x38),
+ INIT_DCS_CMD(0xB7, 0x58),
+ INIT_DCS_CMD(0xB8, 0x76),
+ INIT_DCS_CMD(0xB9, 0xB8),
+ INIT_DCS_CMD(0xBA, 0xF7),
+ INIT_DCS_CMD(0xBB, 0x6C),
+ INIT_DCS_CMD(0xBC, 0xE3),
+ INIT_DCS_CMD(0xBD, 0xE7),
+ INIT_DCS_CMD(0xBE, 0x5C),
+ INIT_DCS_CMD(0xBF, 0xD3),
+ INIT_DCS_CMD(0xC0, 0x10),
+ INIT_DCS_CMD(0xC1, 0x4C),
+ INIT_DCS_CMD(0xC2, 0x6A),
+ INIT_DCS_CMD(0xC3, 0x8A),
+ INIT_DCS_CMD(0xC4, 0x96),
+ INIT_DCS_CMD(0xC5, 0xA2),
+ INIT_DCS_CMD(0xC6, 0xAE),
+ INIT_DCS_CMD(0xC7, 0xB4),
+ INIT_DCS_CMD(0xC8, 0xB8),
+ INIT_DCS_CMD(0xC9, 0x00),
+ INIT_DCS_CMD(0xCA, 0x00),
+ INIT_DCS_CMD(0xCB, 0x05),
+ INIT_DCS_CMD(0xCC, 0x6B),
+ INIT_DCS_CMD(0xCD, 0xFF),
+ INIT_DCS_CMD(0xCE, 0xFF),
+ INIT_DCS_CMD(0xB0, 0x0C),
+ INIT_DCS_CMD(0xB1, 0x04),
+ INIT_DCS_CMD(0xB2, 0x04),
+ INIT_DCS_CMD(0xB3, 0x0C),
+ INIT_DCS_CMD(0xB4, 0x1C),
+ INIT_DCS_CMD(0xB5, 0x2D),
+ INIT_DCS_CMD(0xB6, 0x3C),
+ INIT_DCS_CMD(0xB7, 0x5F),
+ INIT_DCS_CMD(0xB8, 0x80),
+ INIT_DCS_CMD(0xB9, 0xC8),
+ INIT_DCS_CMD(0xBA, 0x0D),
+ INIT_DCS_CMD(0xBB, 0x8A),
+ INIT_DCS_CMD(0xBC, 0x10),
+ INIT_DCS_CMD(0xBD, 0x14),
+ INIT_DCS_CMD(0xBE, 0x91),
+ INIT_DCS_CMD(0xBF, 0x13),
+ INIT_DCS_CMD(0xC0, 0x53),
+ INIT_DCS_CMD(0xC1, 0x93),
+ INIT_DCS_CMD(0xC2, 0xAB),
+ INIT_DCS_CMD(0xC3, 0xC6),
+ INIT_DCS_CMD(0xC4, 0xD6),
+ INIT_DCS_CMD(0xC5, 0xE4),
+ INIT_DCS_CMD(0xC6, 0xF3),
+ INIT_DCS_CMD(0xC7, 0xF9),
+ INIT_DCS_CMD(0xC8, 0xFC),
+ INIT_DCS_CMD(0xC9, 0x00),
+ INIT_DCS_CMD(0xCA, 0x00),
+ INIT_DCS_CMD(0xCB, 0x16),
+ INIT_DCS_CMD(0xCC, 0xAF),
+ INIT_DCS_CMD(0xCD, 0xFF),
+ INIT_DCS_CMD(0xCE, 0xFF),
+ INIT_DELAY_CMD(100),
+ INIT_DCS_CMD(0xB0, 0x00),
+ INIT_DCS_CMD(0xB3, 0x08),
+ INIT_DCS_CMD(0xB0, 0x04),
+ INIT_DCS_CMD(0xB8, 0x68),
+ INIT_DELAY_CMD(10),
+ INIT_DCS_CMD(0x11),
+ INIT_DELAY_CMD(100),
+ INIT_DCS_CMD(0x29),
+ INIT_DELAY_CMD(50),
+ INIT_END_CMD,
+ },
+};