From fa36d0b79fb9fdc9747bb653398c1893eb7221c8 Mon Sep 17 00:00:00 2001 From: Casper Chang Date: Tue, 11 Feb 2020 11:34:26 +0800 Subject: 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 Change-Id: I394b8cafa8be40e5fd6bf8ceb81b520df73718a4 Reviewed-on: https://review.coreboot.org/c/coreboot/+/38822 Reviewed-by: Peichao Li Reviewed-by: Hung-Te Lin Tested-by: build bot (Jenkins) --- src/mainboard/google/kukui/Makefile.inc | 1 + src/mainboard/google/kukui/panel_kakadu.c | 28 ++ .../google/kukui/panel_params/Makefile.inc | 1 + .../kukui/panel_params/panel-BOE_TV105WUM_NW0.c | 333 +++++++++++++++++++++ 4 files changed, 363 insertions(+) create mode 100644 src/mainboard/google/kukui/panel_kakadu.c create mode 100644 src/mainboard/google/kukui/panel_params/panel-BOE_TV105WUM_NW0.c (limited to 'src/mainboard/google/kukui') diff --git a/src/mainboard/google/kukui/Makefile.inc b/src/mainboard/google/kukui/Makefile.inc index 7839422f93..a2a147c399 100644 --- a/src/mainboard/google/kukui/Makefile.inc +++ b/src/mainboard/google/kukui/Makefile.inc @@ -26,6 +26,7 @@ ramstage-y += chromeos.c 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 0000000000..3cb18ba918 --- /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 016dad05ef..3bd605d9b2 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-AUO_KD101N80_45NA 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 0000000000..45068839ff --- /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, + }, +}; -- cgit v1.2.3