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,
+	},
+};