Jerry Han has uploaded this change for review.

View Change

WIP: google/flapjack: Add Panels support

Add panel BOE_TV101WUM_NG0, BOE_TV080WUM_NG0, INX_OTA7290D10P,
AUO_NT51021D8P for FLAPJACK.

Change-Id: I3e50df59de3db9ed6efcccbd01b553c21f793a3f
Signed-off-by: Jerry Han <hanxu5@huaqin.corp-partner.google.com>
---
M src/mainboard/google/kukui/Makefile.inc
M src/mainboard/google/kukui/display.c
M src/mainboard/google/kukui/display.h
A src/mainboard/google/kukui/panel_flapjack.c
4 files changed, 1,112 insertions(+), 0 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/40/32840/1
diff --git a/src/mainboard/google/kukui/Makefile.inc b/src/mainboard/google/kukui/Makefile.inc
index 9576b7d..a91f91e7 100644
--- a/src/mainboard/google/kukui/Makefile.inc
+++ b/src/mainboard/google/kukui/Makefile.inc
@@ -25,6 +25,7 @@
ramstage-y += display.c
ramstage-y += panel_kukui.c
ramstage-y += panel_krane.c
+ramstage-y += panel_flapjack.c
ramstage-y += mainboard.c
ramstage-y += memlayout.ld
ramstage-y += reset.c
diff --git a/src/mainboard/google/kukui/display.c b/src/mainboard/google/kukui/display.c
index b0a5026..55e129b 100644
--- a/src/mainboard/google/kukui/display.c
+++ b/src/mainboard/google/kukui/display.c
@@ -99,6 +99,8 @@
return &kukui_display_intf;
else if (CONFIG(BOARD_GOOGLE_KRANE))
return &krane_display_intf;
+ else if (CONFIG(BOARD_GOOGLE_FLAPJACK))
+ return &flapjack_display_intf;
else
return NULL;
}
diff --git a/src/mainboard/google/kukui/display.h b/src/mainboard/google/kukui/display.h
index 1b184af..bc26c69 100644
--- a/src/mainboard/google/kukui/display.h
+++ b/src/mainboard/google/kukui/display.h
@@ -41,10 +41,21 @@
PANEL_KRANE_UNINITIALIZED
};

+enum flapjack_panel_id {
+ PANEL_FLAPJACK_FIRST = 0,
+ PANEL_FLAPJACK_BOE_TV101WUM_NG0,
+ PANEL_FLAPJACK_BOE_TV080WUM_NG0,
+ PANEL_FLAPJACK_INX_OTA7290D10P,
+ PANEL_FLAPJACK_AUO_NT51021D8P,
+ PANEL_FLAPJACK_UNKNOWN,
+ PANEL_FLAPJACK_COUNT,
+ PANEL_FLAPJACK_UNINITIALIZED
+};

union panel_id {
enum kukui_panel_id kukui_panel;
enum krane_panel_id krane_panel;
+ enum flapjack_panel_id flapjack_panel;
int value;
};

@@ -100,5 +111,6 @@
*/
extern struct board_display_intf kukui_display_intf;
extern struct board_display_intf krane_display_intf;
+extern struct board_display_intf flapjack_display_intf;

#endif
diff --git a/src/mainboard/google/kukui/panel_flapjack.c b/src/mainboard/google/kukui/panel_flapjack.c
new file mode 100644
index 0000000..1b72e8a
--- /dev/null
+++ b/src/mainboard/google/kukui/panel_flapjack.c
@@ -0,0 +1,1097 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2019 Huaqin Telecom 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 <console/console.h>
+#include <delay.h>
+#include <device/device.h>
+#include <edid.h>
+#include <gpio.h>
+#include <soc/auxadc.h>
+#include <soc/ddp.h>
+#include <soc/dsi.h>
+#include <soc/gpio.h>
+#include <boardid.h>
+
+#include "display.h"
+#include "gpio.h"
+
+#define PP3300_LCM_EN GPIO(SIM2_SIO)
+#define PP1800_LCM_EN GPIO(SIM2_SRST)
+
+#define FLAPJACK_PANEL_ADC_ID 2
+#define FLAPJACK_PANEL_ID_BIT_POSITION 16
+
+const int tolerance = 30000; /* 30,000 uV */
+
+static struct edid flapjack_boe_tv080wum_edid = {
+ .panel_bits_per_color = 8,
+ .panel_bits_per_pixel = 24,
+ .mode = {
+ .name = "1200x1920@60Hz",
+ .pixel_clock = 159420,
+ .lvds_dual_channel = 0,
+ .refresh = 60,
+ .ha = 1200, .hbl = 164, .hso = 80, .hspw = 24, .hborder = 0,
+ .va = 1920, .vbl = 28, .vso = 10, .vspw = 4, .vborder = 0,
+ .phsync = '-', .pvsync = '-',
+ .x_mm = 107, .y_mm = 132,
+ },
+};
+
+static struct lcm_init_table boe_tv080wum_lcm_init_cmd[] = {
+ {INIT_CMD, 1, {0x10} },
+ {DELAY_CMD, 0x22, {} },
+ {INIT_CMD, 2, {0xB0, 0x05} },
+ {INIT_CMD, 2, {0xB1, 0xE5} },
+ {INIT_CMD, 2, {0xB3, 0x52} },
+ {INIT_CMD, 2, {0xB0, 0x00} },
+ {INIT_CMD, 2, {0xB3, 0x88} },
+ {INIT_CMD, 2, {0xB0, 0x04} },
+ {INIT_CMD, 2, {0xB8, 0x00} },
+ {INIT_CMD, 2, {0xB0, 0x00} },
+ {INIT_CMD, 2, {0xB2, 0x50} },
+ {INIT_CMD, 2, {0xB6, 0x03} },
+ {INIT_CMD, 2, {0xBA, 0x8B} },
+ {INIT_CMD, 2, {0xBF, 0x15} },
+ {INIT_CMD, 2, {0xC0, 0x0F} },
+ {INIT_CMD, 2, {0xC2, 0x0C} },
+ {INIT_CMD, 2, {0xC3, 0x02} },
+ {INIT_CMD, 2, {0xC4, 0x0C} },
+ {INIT_CMD, 2, {0xC5, 0x02} },
+ {INIT_CMD, 2, {0xB0, 0x01} },
+ {INIT_CMD, 2, {0xE0, 0x26} },
+ {INIT_CMD, 2, {0xE1, 0x26} },
+ {INIT_CMD, 2, {0xDC, 0x00} },
+ {INIT_CMD, 2, {0xDD, 0x00} },
+ {INIT_CMD, 2, {0xCC, 0x26} },
+ {INIT_CMD, 2, {0xCD, 0x26} },
+ {INIT_CMD, 2, {0xC8, 0x00} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xD2, 0x04} },
+ {INIT_CMD, 2, {0xD3, 0x04} },
+ {INIT_CMD, 2, {0xE6, 0x03} },
+ {INIT_CMD, 2, {0xE7, 0x03} },
+ {INIT_CMD, 2, {0xC4, 0x08} },
+ {INIT_CMD, 2, {0xC5, 0x08} },
+ {INIT_CMD, 2, {0xD8, 0x07} },
+ {INIT_CMD, 2, {0xD9, 0x07} },
+ {INIT_CMD, 2, {0xC2, 0x06} },
+ {INIT_CMD, 2, {0xC3, 0x06} },
+ {INIT_CMD, 2, {0xD6, 0x05} },
+ {INIT_CMD, 2, {0xD7, 0x05} },
+ {INIT_CMD, 2, {0xC0, 0x0C} },
+ {INIT_CMD, 2, {0xC1, 0x0C} },
+ {INIT_CMD, 2, {0xD4, 0x0B} },
+ {INIT_CMD, 2, {0xD5, 0x0B} },
+ {INIT_CMD, 2, {0xCA, 0x0A} },
+ {INIT_CMD, 2, {0xCB, 0x0A} },
+ {INIT_CMD, 2, {0xDE, 0x09} },
+ {INIT_CMD, 2, {0xDF, 0x09} },
+ {INIT_CMD, 2, {0xC6, 0x26} },
+ {INIT_CMD, 2, {0xC7, 0x26} },
+ {INIT_CMD, 2, {0xCE, 0x00} },
+ {INIT_CMD, 2, {0xCF, 0x00} },
+ {INIT_CMD, 2, {0xDA, 0x26} },
+ {INIT_CMD, 2, {0xDB, 0x26} },
+ {INIT_CMD, 2, {0xE2, 0x00} },
+ {INIT_CMD, 2, {0xE3, 0x00} },
+ {INIT_CMD, 2, {0xB0, 0x02} },
+ {INIT_CMD, 2, {0xC0, 0x00} },
+ {INIT_CMD, 2, {0xC1, 0x07} },
+ {INIT_CMD, 2, {0xC2, 0x0D} },
+ {INIT_CMD, 2, {0xC3, 0x18} },
+ {INIT_CMD, 2, {0xC4, 0x27} },
+ {INIT_CMD, 2, {0xC5, 0x28} },
+ {INIT_CMD, 2, {0xC6, 0x30} },
+ {INIT_CMD, 2, {0xC7, 0x2E} },
+ {INIT_CMD, 2, {0xC8, 0x2F} },
+ {INIT_CMD, 2, {0xC9, 0x1A} },
+ {INIT_CMD, 2, {0xCA, 0x20} },
+ {INIT_CMD, 2, {0xCB, 0x29} },
+ {INIT_CMD, 2, {0xCC, 0x26} },
+ {INIT_CMD, 2, {0xCD, 0x32} },
+ {INIT_CMD, 2, {0xCE, 0x33} },
+ {INIT_CMD, 2, {0xCF, 0x31} },
+ {INIT_CMD, 2, {0xD0, 0x06} },
+ {INIT_CMD, 2, {0xD2, 0x00} },
+ {INIT_CMD, 2, {0xD3, 0x07} },
+ {INIT_CMD, 2, {0xD4, 0x12} },
+ {INIT_CMD, 2, {0xD5, 0x26} },
+ {INIT_CMD, 2, {0xD6, 0x3D} },
+ {INIT_CMD, 2, {0xD7, 0x3F} },
+ {INIT_CMD, 2, {0xD8, 0x3F} },
+ {INIT_CMD, 2, {0xD9, 0x3F} },
+ {INIT_CMD, 2, {0xDA, 0x3F} },
+ {INIT_CMD, 2, {0xDB, 0x3F} },
+ {INIT_CMD, 2, {0xDC, 0x3F} },
+ {INIT_CMD, 2, {0xDD, 0x3F} },
+ {INIT_CMD, 2, {0xDE, 0x3F} },
+ {INIT_CMD, 2, {0xDF, 0x3A} },
+ {INIT_CMD, 2, {0xE0, 0x37} },
+ {INIT_CMD, 2, {0xE1, 0x35} },
+ {INIT_CMD, 2, {0xE2, 0x07} },
+ {INIT_CMD, 2, {0xB0, 0x03} },
+ {INIT_CMD, 2, {0xC8, 0x0B} },
+ {INIT_CMD, 2, {0xC9, 0x07} },
+ {INIT_CMD, 2, {0xC3, 0x00} },
+ {INIT_CMD, 2, {0xE7, 0x00} },
+ {INIT_CMD, 2, {0xC5, 0x2A} },
+ {INIT_CMD, 2, {0xDE, 0x2A} },
+ {INIT_CMD, 2, {0xCA, 0x43} },
+ {INIT_CMD, 2, {0xC9, 0x07} },
+ {INIT_CMD, 2, {0xE4, 0xC0} },
+ {INIT_CMD, 2, {0xE5, 0x0D} },
+ {INIT_CMD, 2, {0xCB, 0x00} },
+ {INIT_CMD, 2, {0xB0, 0x06} },
+ {INIT_CMD, 2, {0xB8, 0xA5} },
+ {INIT_CMD, 2, {0xC0, 0xA5} },
+ {INIT_CMD, 2, {0xC7, 0x0F} },
+ {INIT_CMD, 2, {0xD5, 0x32} },
+ {INIT_CMD, 2, {0xB8, 0x00} },
+ {INIT_CMD, 2, {0xC0, 0x00} },
+ {INIT_CMD, 2, {0xBC, 0x00} },
+ {INIT_CMD, 2, {0xB0, 0x07} },
+ {INIT_CMD, 2, {0xB1, 0x00} },
+ {INIT_CMD, 2, {0xB2, 0x09} },
+ {INIT_CMD, 2, {0xB3, 0x19} },
+ {INIT_CMD, 2, {0xB4, 0x2F} },
+ {INIT_CMD, 2, {0xB5, 0x44} },
+ {INIT_CMD, 2, {0xB6, 0x52} },
+ {INIT_CMD, 2, {0xB7, 0x6A} },
+ {INIT_CMD, 2, {0xB8, 0x8A} },
+ {INIT_CMD, 2, {0xB9, 0xCA} },
+ {INIT_CMD, 2, {0xBA, 0x0C} },
+ {INIT_CMD, 2, {0xBB, 0x87} },
+ {DELAY_CMD, 0x05, {} },
+ {INIT_CMD, 2, {0xBC, 0x06} },
+ {INIT_CMD, 2, {0xBD, 0x0A} },
+ {INIT_CMD, 2, {0xBE, 0x9B} },
+ {INIT_CMD, 2, {0xBF, 0x0C} },
+ {INIT_CMD, 2, {0xC0, 0x3D} },
+ {INIT_CMD, 2, {0xC1, 0x71} },
+ {INIT_CMD, 2, {0xC2, 0x90} },
+ {INIT_CMD, 2, {0xC3, 0xA0} },
+ {INIT_CMD, 2, {0xC4, 0xA8} },
+ {INIT_CMD, 2, {0xC5, 0xB1} },
+ {INIT_CMD, 2, {0xC6, 0xBB} },
+ {INIT_CMD, 2, {0xC7, 0xC0} },
+ {INIT_CMD, 2, {0xC8, 0xC4} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xCA, 0x00} },
+ {INIT_CMD, 2, {0xCB, 0x16} },
+ {INIT_CMD, 2, {0xCC, 0xAF} },
+ {INIT_CMD, 2, {0xCD, 0xFF} },
+ {INIT_CMD, 2, {0xCE, 0xFF} },
+ {INIT_CMD, 2, {0xB0, 0x08} },
+ {INIT_CMD, 2, {0xB1, 0x04} },
+ {INIT_CMD, 2, {0xB2, 0x08} },
+ {INIT_CMD, 2, {0xB3, 0x19} },
+ {INIT_CMD, 2, {0xB4, 0x31} },
+ {INIT_CMD, 2, {0xB5, 0x46} },
+ {INIT_CMD, 2, {0xB6, 0x55} },
+ {INIT_CMD, 2, {0xB7, 0x6E} },
+ {INIT_CMD, 2, {0xB8, 0x92} },
+ {INIT_CMD, 2, {0xB9, 0xD4} },
+ {INIT_CMD, 2, {0xBA, 0x1B} },
+ {INIT_CMD, 2, {0xBB, 0x9B} },
+ {DELAY_CMD, 0x05, {} },
+ {INIT_CMD, 2, {0xBC, 0x28} },
+ {INIT_CMD, 2, {0xBD, 0x2D} },
+ {INIT_CMD, 2, {0xBE, 0xC3} },
+ {INIT_CMD, 2, {0xBF, 0x2F} },
+ {INIT_CMD, 2, {0xC0, 0x62} },
+ {INIT_CMD, 2, {0xC1, 0x99} },
+ {INIT_CMD, 2, {0xC2, 0xAB} },
+ {INIT_CMD, 2, {0xC3, 0xBF} },
+ {INIT_CMD, 2, {0xC4, 0xCF} },
+ {INIT_CMD, 2, {0xC5, 0xDF} },
+ {INIT_CMD, 2, {0xC6, 0xF0} },
+ {INIT_CMD, 2, {0xC7, 0xF9} },
+ {INIT_CMD, 2, {0xC8, 0xFC} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xCA, 0x00} },
+ {INIT_CMD, 2, {0xCB, 0x16} },
+ {INIT_CMD, 2, {0xCC, 0xAF} },
+ {INIT_CMD, 2, {0xCD, 0xFF} },
+ {INIT_CMD, 2, {0xCE, 0xFF} },
+ {INIT_CMD, 2, {0xB0, 0x09} },
+ {INIT_CMD, 2, {0xB1, 0x04} },
+ {INIT_CMD, 2, {0xB2, 0x05} },
+ {INIT_CMD, 2, {0xB3, 0x17} },
+ {INIT_CMD, 2, {0xB4, 0x2E} },
+ {INIT_CMD, 2, {0xB5, 0x42} },
+ {INIT_CMD, 2, {0xB6, 0x51} },
+ {INIT_CMD, 2, {0xB7, 0x69} },
+ {INIT_CMD, 2, {0xB8, 0x88} },
+ {INIT_CMD, 2, {0xB9, 0xC9} },
+ {INIT_CMD, 2, {0xBA, 0x0C} },
+ {INIT_CMD, 2, {0xBB, 0x86} },
+ {DELAY_CMD, 0x05, {} },
+ {INIT_CMD, 2, {0xBC, 0x03} },
+ {INIT_CMD, 2, {0xBD, 0x08} },
+ {INIT_CMD, 2, {0xBE, 0x95} },
+ {INIT_CMD, 2, {0xBF, 0x05} },
+ {INIT_CMD, 2, {0xC0, 0x35} },
+ {INIT_CMD, 2, {0xC1, 0x62} },
+ {INIT_CMD, 2, {0xC2, 0x81} },
+ {INIT_CMD, 2, {0xC3, 0x96} },
+ {INIT_CMD, 2, {0xC4, 0x9E} },
+ {INIT_CMD, 2, {0xC5, 0xA5} },
+ {INIT_CMD, 2, {0xC6, 0xAD} },
+ {INIT_CMD, 2, {0xC7, 0xB1} },
+ {INIT_CMD, 2, {0xC8, 0xB4} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xCA, 0x00} },
+ {INIT_CMD, 2, {0xCB, 0x16} },
+ {INIT_CMD, 2, {0xCC, 0xAF} },
+ {INIT_CMD, 2, {0xCD, 0xFF} },
+ {INIT_CMD, 2, {0xCE, 0xFF} },
+ {INIT_CMD, 2, {0xB0, 0x0A} },
+ {INIT_CMD, 2, {0xB1, 0x00} },
+ {INIT_CMD, 2, {0xB2, 0x09} },
+ {INIT_CMD, 2, {0xB3, 0x19} },
+ {INIT_CMD, 2, {0xB4, 0x2F} },
+ {INIT_CMD, 2, {0xB5, 0x44} },
+ {INIT_CMD, 2, {0xB6, 0x52} },
+ {INIT_CMD, 2, {0xB7, 0x6A} },
+ {INIT_CMD, 2, {0xB8, 0x8A} },
+ {INIT_CMD, 2, {0xB9, 0xCA} },
+ {INIT_CMD, 2, {0xBA, 0x0C} },
+ {INIT_CMD, 2, {0xBB, 0x87} },
+ {DELAY_CMD, 0x05, {} },
+ {INIT_CMD, 2, {0xBC, 0x06} },
+ {INIT_CMD, 2, {0xBD, 0x0A} },
+ {INIT_CMD, 2, {0xBE, 0x9B} },
+ {INIT_CMD, 2, {0xBF, 0x0C} },
+ {INIT_CMD, 2, {0xC0, 0x3D} },
+ {INIT_CMD, 2, {0xC1, 0x71} },
+ {INIT_CMD, 2, {0xC2, 0x90} },
+ {INIT_CMD, 2, {0xC3, 0xA0} },
+ {INIT_CMD, 2, {0xC4, 0xA8} },
+ {INIT_CMD, 2, {0xC5, 0xB1} },
+ {INIT_CMD, 2, {0xC6, 0xBB} },
+ {INIT_CMD, 2, {0xC7, 0xC0} },
+ {INIT_CMD, 2, {0xC8, 0xC4} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xCA, 0x00} },
+ {INIT_CMD, 2, {0xCB, 0x16} },
+ {INIT_CMD, 2, {0xCC, 0xAF} },
+ {INIT_CMD, 2, {0xCD, 0xFF} },
+ {INIT_CMD, 2, {0xCE, 0xFF} },
+ {INIT_CMD, 2, {0xB0, 0x0B} },
+ {INIT_CMD, 2, {0xB1, 0x04} },
+ {INIT_CMD, 2, {0xB2, 0x08} },
+ {INIT_CMD, 2, {0xB3, 0x19} },
+ {INIT_CMD, 2, {0xB4, 0x31} },
+ {INIT_CMD, 2, {0xB5, 0x46} },
+ {INIT_CMD, 2, {0xB6, 0x55} },
+ {INIT_CMD, 2, {0xB7, 0x6E} },
+ {INIT_CMD, 2, {0xB8, 0x92} },
+ {INIT_CMD, 2, {0xB9, 0xD4} },
+ {INIT_CMD, 2, {0xBA, 0x1B} },
+ {INIT_CMD, 2, {0xBB, 0x9B} },
+ {DELAY_CMD, 0x05, {} },
+ {INIT_CMD, 2, {0xBC, 0x28} },
+ {INIT_CMD, 2, {0xBD, 0x2D} },
+ {INIT_CMD, 2, {0xBE, 0xC3} },
+ {INIT_CMD, 2, {0xBF, 0x2F} },
+ {INIT_CMD, 2, {0xC0, 0x62} },
+ {INIT_CMD, 2, {0xC1, 0x99} },
+ {INIT_CMD, 2, {0xC2, 0xAB} },
+ {INIT_CMD, 2, {0xC3, 0xBF} },
+ {INIT_CMD, 2, {0xC4, 0xCF} },
+ {INIT_CMD, 2, {0xC5, 0xDF} },
+ {INIT_CMD, 2, {0xC6, 0xF0} },
+ {INIT_CMD, 2, {0xC7, 0xF9} },
+ {INIT_CMD, 2, {0xC8, 0xFC} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xCA, 0x00} },
+ {INIT_CMD, 2, {0xCB, 0x16} },
+ {INIT_CMD, 2, {0xCC, 0xAF} },
+ {INIT_CMD, 2, {0xCD, 0xFF} },
+ {INIT_CMD, 2, {0xCE, 0xFF} },
+ {INIT_CMD, 2, {0xB0, 0x0C} },
+ {INIT_CMD, 2, {0xB1, 0x04} },
+ {INIT_CMD, 2, {0xB2, 0x05} },
+ {INIT_CMD, 2, {0xB3, 0x17} },
+ {INIT_CMD, 2, {0xB4, 0x2E} },
+ {INIT_CMD, 2, {0xB5, 0x42} },
+ {INIT_CMD, 2, {0xB6, 0x51} },
+ {INIT_CMD, 2, {0xB7, 0x69} },
+ {INIT_CMD, 2, {0xB8, 0x88} },
+ {INIT_CMD, 2, {0xB9, 0xC9} },
+ {INIT_CMD, 2, {0xBA, 0x0C} },
+ {INIT_CMD, 2, {0xBB, 0x86} },
+ {DELAY_CMD, 0x05, {} },
+ {INIT_CMD, 2, {0xBC, 0x03} },
+ {INIT_CMD, 2, {0xBD, 0x08} },
+ {INIT_CMD, 2, {0xBE, 0x95} },
+ {INIT_CMD, 2, {0xBF, 0x05} },
+ {INIT_CMD, 2, {0xC0, 0x35} },
+ {INIT_CMD, 2, {0xC1, 0x62} },
+ {INIT_CMD, 2, {0xC2, 0x81} },
+ {INIT_CMD, 2, {0xC3, 0x96} },
+ {INIT_CMD, 2, {0xC4, 0x9E} },
+ {INIT_CMD, 2, {0xC5, 0xA5} },
+ {INIT_CMD, 2, {0xC6, 0xAD} },
+ {INIT_CMD, 2, {0xC7, 0xB1} },
+ {INIT_CMD, 2, {0xC8, 0xB4} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xCA, 0x00} },
+ {INIT_CMD, 2, {0xCB, 0x16} },
+ {INIT_CMD, 2, {0xCC, 0xAF} },
+ {INIT_CMD, 2, {0xCD, 0xFF} },
+ {INIT_CMD, 2, {0xCE, 0xFF} },
+ {DELAY_CMD, 0x64, {} },
+ {INIT_CMD, 2, {0xB0, 0x00} },
+ {INIT_CMD, 2, {0xB3, 0x08} },
+ {INIT_CMD, 2, {0xB0, 0x04} },
+ {INIT_CMD, 2, {0xB8, 0x68} },
+ {DELAY_CMD, 0x0A, {} },
+ {INIT_CMD, 1, {0x11} },
+ {DELAY_CMD, 0x78, {} },
+ {INIT_CMD, 1, {0x29} },
+ {DELAY_CMD, 0x14, {} },
+
+};
+
+/* flapjack C19 BOE tv101wum panel : PANEL_FLAPJACK_BOE_TV101WUM_NG0 */
+static struct edid flapjack_boe_tv101wum_edid = {
+ .panel_bits_per_color = 8,
+ .panel_bits_per_pixel = 24,
+ .mode = {
+ .name = "1200x1920@60Hz",
+ .pixel_clock = 159420,
+ .lvds_dual_channel = 0,
+ .refresh = 60,
+ .ha = 1200, .hbl = 164, .hso = 80, .hspw = 24, .hborder = 0,
+ .va = 1920, .vbl = 28, .vso = 10, .vspw = 4, .vborder = 0,
+ .phsync = '-', .pvsync = '-',
+ .x_mm = 135, .y_mm = 216,
+ },
+};
+
+static struct lcm_init_table boe_tv101wum_lcm_init_cmd[] = {
+ {INIT_CMD, 1, {0x10} },
+ {DELAY_CMD, 0x22, {} },
+ {INIT_CMD, 2, {0xB0, 0x05} },
+ {INIT_CMD, 2, {0xB1, 0xE5} },
+ {INIT_CMD, 2, {0xB3, 0x52} },
+ {INIT_CMD, 2, {0xB0, 0x00} },
+ {INIT_CMD, 2, {0xB3, 0x88} },
+ {INIT_CMD, 2, {0xB0, 0x04} },
+ {INIT_CMD, 2, {0xB8, 0x00} },
+ {INIT_CMD, 2, {0xB0, 0x00} },
+ {INIT_CMD, 2, {0xB2, 0x50} },
+ {INIT_CMD, 2, {0xB6, 0x03} },
+ {INIT_CMD, 2, {0xBA, 0x8B} },
+ {INIT_CMD, 2, {0xBF, 0x15} },
+ {INIT_CMD, 2, {0xC0, 0x0F} },
+ {INIT_CMD, 2, {0xC2, 0x0C} },
+ {INIT_CMD, 2, {0xC3, 0x02} },
+ {INIT_CMD, 2, {0xC4, 0x0C} },
+ {INIT_CMD, 2, {0xC5, 0x02} },
+ {INIT_CMD, 2, {0xB0, 0x01} },
+ {INIT_CMD, 2, {0xE0, 0x26} },
+ {INIT_CMD, 2, {0xE1, 0x26} },
+ {INIT_CMD, 2, {0xDC, 0x00} },
+ {INIT_CMD, 2, {0xDD, 0x00} },
+ {INIT_CMD, 2, {0xCC, 0x26} },
+ {INIT_CMD, 2, {0xCD, 0x26} },
+ {INIT_CMD, 2, {0xC8, 0x00} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xD2, 0x04} },
+ {INIT_CMD, 2, {0xD3, 0x04} },
+ {INIT_CMD, 2, {0xE6, 0x03} },
+ {INIT_CMD, 2, {0xE7, 0x03} },
+ {INIT_CMD, 2, {0xC4, 0x08} },
+ {INIT_CMD, 2, {0xC5, 0x08} },
+ {INIT_CMD, 2, {0xD8, 0x07} },
+ {INIT_CMD, 2, {0xD9, 0x07} },
+ {INIT_CMD, 2, {0xC2, 0x06} },
+ {INIT_CMD, 2, {0xC3, 0x06} },
+ {INIT_CMD, 2, {0xD6, 0x05} },
+ {INIT_CMD, 2, {0xD7, 0x05} },
+ {INIT_CMD, 2, {0xC0, 0x0C} },
+ {INIT_CMD, 2, {0xC1, 0x0C} },
+ {INIT_CMD, 2, {0xD4, 0x0B} },
+ {INIT_CMD, 2, {0xD5, 0x0B} },
+ {INIT_CMD, 2, {0xCA, 0x0A} },
+ {INIT_CMD, 2, {0xCB, 0x0A} },
+ {INIT_CMD, 2, {0xDE, 0x09} },
+ {INIT_CMD, 2, {0xDF, 0x09} },
+ {INIT_CMD, 2, {0xC6, 0x26} },
+ {INIT_CMD, 2, {0xC7, 0x26} },
+ {INIT_CMD, 2, {0xCE, 0x00} },
+ {INIT_CMD, 2, {0xCF, 0x00} },
+ {INIT_CMD, 2, {0xDA, 0x26} },
+ {INIT_CMD, 2, {0xDB, 0x26} },
+ {INIT_CMD, 2, {0xE2, 0x00} },
+ {INIT_CMD, 2, {0xE3, 0x00} },
+ {INIT_CMD, 2, {0xB0, 0x02} },
+ {INIT_CMD, 2, {0xC0, 0x00} },
+ {INIT_CMD, 2, {0xC1, 0x07} },
+ {INIT_CMD, 2, {0xC2, 0x0D} },
+ {INIT_CMD, 2, {0xC3, 0x18} },
+ {INIT_CMD, 2, {0xC4, 0x27} },
+ {INIT_CMD, 2, {0xC5, 0x28} },
+ {INIT_CMD, 2, {0xC6, 0x30} },
+ {INIT_CMD, 2, {0xC7, 0x2E} },
+ {INIT_CMD, 2, {0xC8, 0x2F} },
+ {INIT_CMD, 2, {0xC9, 0x1A} },
+ {INIT_CMD, 2, {0xCA, 0x20} },
+ {INIT_CMD, 2, {0xCB, 0x29} },
+ {INIT_CMD, 2, {0xCC, 0x26} },
+ {INIT_CMD, 2, {0xCD, 0x32} },
+ {INIT_CMD, 2, {0xCE, 0x33} },
+ {INIT_CMD, 2, {0xCF, 0x31} },
+ {INIT_CMD, 2, {0xD0, 0x06} },
+ {INIT_CMD, 2, {0xD2, 0x00} },
+ {INIT_CMD, 2, {0xD3, 0x07} },
+ {INIT_CMD, 2, {0xD4, 0x12} },
+ {INIT_CMD, 2, {0xD5, 0x26} },
+ {INIT_CMD, 2, {0xD6, 0x3D} },
+ {INIT_CMD, 2, {0xD7, 0x3F} },
+ {INIT_CMD, 2, {0xD8, 0x3F} },
+ {INIT_CMD, 2, {0xD9, 0x3F} },
+ {INIT_CMD, 2, {0xDA, 0x3F} },
+ {INIT_CMD, 2, {0xDB, 0x3F} },
+ {INIT_CMD, 2, {0xDC, 0x3F} },
+ {INIT_CMD, 2, {0xDD, 0x3F} },
+ {INIT_CMD, 2, {0xDE, 0x3F} },
+ {INIT_CMD, 2, {0xDF, 0x3A} },
+ {INIT_CMD, 2, {0xE0, 0x37} },
+ {INIT_CMD, 2, {0xE1, 0x35} },
+ {INIT_CMD, 2, {0xE2, 0x07} },
+ {INIT_CMD, 2, {0xB0, 0x03} },
+ {INIT_CMD, 2, {0xC8, 0x0B} },
+ {INIT_CMD, 2, {0xC9, 0x07} },
+ {INIT_CMD, 2, {0xC3, 0x00} },
+ {INIT_CMD, 2, {0xE7, 0x00} },
+ {INIT_CMD, 2, {0xC5, 0x2A} },
+ {INIT_CMD, 2, {0xDE, 0x2A} },
+ {INIT_CMD, 2, {0xCA, 0x43} },
+ {INIT_CMD, 2, {0xC9, 0x07} },
+ {INIT_CMD, 2, {0xE4, 0xC0} },
+ {INIT_CMD, 2, {0xE5, 0x0D} },
+ {INIT_CMD, 2, {0xCB, 0x00} },
+ {INIT_CMD, 2, {0xB0, 0x06} },
+ {INIT_CMD, 2, {0xB8, 0xA5} },
+ {INIT_CMD, 2, {0xC0, 0xA5} },
+ {INIT_CMD, 2, {0xC7, 0x0F} },
+ {INIT_CMD, 2, {0xD5, 0x32} },
+ {INIT_CMD, 2, {0xB8, 0x00} },
+ {INIT_CMD, 2, {0xC0, 0x00} },
+ {INIT_CMD, 2, {0xBC, 0x00} },
+ {INIT_CMD, 2, {0xB0, 0x07} },
+ {INIT_CMD, 2, {0xB1, 0x00} },
+ {INIT_CMD, 2, {0xB2, 0x09} },
+ {INIT_CMD, 2, {0xB3, 0x19} },
+ {INIT_CMD, 2, {0xB4, 0x2F} },
+ {INIT_CMD, 2, {0xB5, 0x44} },
+ {INIT_CMD, 2, {0xB6, 0x52} },
+ {INIT_CMD, 2, {0xB7, 0x6A} },
+ {INIT_CMD, 2, {0xB8, 0x8A} },
+ {INIT_CMD, 2, {0xB9, 0xCA} },
+ {INIT_CMD, 2, {0xBA, 0x0C} },
+ {INIT_CMD, 2, {0xBB, 0x87} },
+ {DELAY_CMD, 0x05, {} },
+ {INIT_CMD, 2, {0xBC, 0x06} },
+ {INIT_CMD, 2, {0xBD, 0x0A} },
+ {INIT_CMD, 2, {0xBE, 0x9B} },
+ {INIT_CMD, 2, {0xBF, 0x0C} },
+ {INIT_CMD, 2, {0xC0, 0x3D} },
+ {INIT_CMD, 2, {0xC1, 0x71} },
+ {INIT_CMD, 2, {0xC2, 0x90} },
+ {INIT_CMD, 2, {0xC3, 0xA0} },
+ {INIT_CMD, 2, {0xC4, 0xA8} },
+ {INIT_CMD, 2, {0xC5, 0xB1} },
+ {INIT_CMD, 2, {0xC6, 0xBB} },
+ {INIT_CMD, 2, {0xC7, 0xC0} },
+ {INIT_CMD, 2, {0xC8, 0xC4} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xCA, 0x00} },
+ {INIT_CMD, 2, {0xCB, 0x16} },
+ {INIT_CMD, 2, {0xCC, 0xAF} },
+ {INIT_CMD, 2, {0xCD, 0xFF} },
+ {INIT_CMD, 2, {0xCE, 0xFF} },
+ {INIT_CMD, 2, {0xB0, 0x08} },
+ {INIT_CMD, 2, {0xB1, 0x04} },
+ {INIT_CMD, 2, {0xB2, 0x08} },
+ {INIT_CMD, 2, {0xB3, 0x19} },
+ {INIT_CMD, 2, {0xB4, 0x31} },
+ {INIT_CMD, 2, {0xB5, 0x46} },
+ {INIT_CMD, 2, {0xB6, 0x55} },
+ {INIT_CMD, 2, {0xB7, 0x6E} },
+ {INIT_CMD, 2, {0xB8, 0x92} },
+ {INIT_CMD, 2, {0xB9, 0xD4} },
+ {INIT_CMD, 2, {0xBA, 0x1B} },
+ {INIT_CMD, 2, {0xBB, 0x9B} },
+ {DELAY_CMD, 0x05, {} },
+ {INIT_CMD, 2, {0xBC, 0x28} },
+ {INIT_CMD, 2, {0xBD, 0x2D} },
+ {INIT_CMD, 2, {0xBE, 0xC3} },
+ {INIT_CMD, 2, {0xBF, 0x2F} },
+ {INIT_CMD, 2, {0xC0, 0x62} },
+ {INIT_CMD, 2, {0xC1, 0x99} },
+ {INIT_CMD, 2, {0xC2, 0xAB} },
+ {INIT_CMD, 2, {0xC3, 0xBF} },
+ {INIT_CMD, 2, {0xC4, 0xCF} },
+ {INIT_CMD, 2, {0xC5, 0xDF} },
+ {INIT_CMD, 2, {0xC6, 0xF0} },
+ {INIT_CMD, 2, {0xC7, 0xF9} },
+ {INIT_CMD, 2, {0xC8, 0xFC} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xCA, 0x00} },
+ {INIT_CMD, 2, {0xCB, 0x16} },
+ {INIT_CMD, 2, {0xCC, 0xAF} },
+ {INIT_CMD, 2, {0xCD, 0xFF} },
+ {INIT_CMD, 2, {0xCE, 0xFF} },
+ {INIT_CMD, 2, {0xB0, 0x09} },
+ {INIT_CMD, 2, {0xB1, 0x04} },
+ {INIT_CMD, 2, {0xB2, 0x05} },
+ {INIT_CMD, 2, {0xB3, 0x17} },
+ {INIT_CMD, 2, {0xB4, 0x2E} },
+ {INIT_CMD, 2, {0xB5, 0x42} },
+ {INIT_CMD, 2, {0xB6, 0x51} },
+ {INIT_CMD, 2, {0xB7, 0x69} },
+ {INIT_CMD, 2, {0xB8, 0x88} },
+ {INIT_CMD, 2, {0xB9, 0xC9} },
+ {INIT_CMD, 2, {0xBA, 0x0C} },
+ {INIT_CMD, 2, {0xBB, 0x86} },
+ {DELAY_CMD, 0x05, {} },
+ {INIT_CMD, 2, {0xBC, 0x03} },
+ {INIT_CMD, 2, {0xBD, 0x08} },
+ {INIT_CMD, 2, {0xBE, 0x95} },
+ {INIT_CMD, 2, {0xBF, 0x05} },
+ {INIT_CMD, 2, {0xC0, 0x35} },
+ {INIT_CMD, 2, {0xC1, 0x62} },
+ {INIT_CMD, 2, {0xC2, 0x81} },
+ {INIT_CMD, 2, {0xC3, 0x96} },
+ {INIT_CMD, 2, {0xC4, 0x9E} },
+ {INIT_CMD, 2, {0xC5, 0xA5} },
+ {INIT_CMD, 2, {0xC6, 0xAD} },
+ {INIT_CMD, 2, {0xC7, 0xB1} },
+ {INIT_CMD, 2, {0xC8, 0xB4} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xCA, 0x00} },
+ {INIT_CMD, 2, {0xCB, 0x16} },
+ {INIT_CMD, 2, {0xCC, 0xAF} },
+ {INIT_CMD, 2, {0xCD, 0xFF} },
+ {INIT_CMD, 2, {0xCE, 0xFF} },
+ {INIT_CMD, 2, {0xB0, 0x0A} },
+ {INIT_CMD, 2, {0xB1, 0x00} },
+ {INIT_CMD, 2, {0xB2, 0x09} },
+ {INIT_CMD, 2, {0xB3, 0x19} },
+ {INIT_CMD, 2, {0xB4, 0x2F} },
+ {INIT_CMD, 2, {0xB5, 0x44} },
+ {INIT_CMD, 2, {0xB6, 0x52} },
+ {INIT_CMD, 2, {0xB7, 0x6A} },
+ {INIT_CMD, 2, {0xB8, 0x8A} },
+ {INIT_CMD, 2, {0xB9, 0xCA} },
+ {INIT_CMD, 2, {0xBA, 0x0C} },
+ {INIT_CMD, 2, {0xBB, 0x87} },
+ {DELAY_CMD, 0x05, {} },
+ {INIT_CMD, 2, {0xBC, 0x06} },
+ {INIT_CMD, 2, {0xBD, 0x0A} },
+ {INIT_CMD, 2, {0xBE, 0x9B} },
+ {INIT_CMD, 2, {0xBF, 0x0C} },
+ {INIT_CMD, 2, {0xC0, 0x3D} },
+ {INIT_CMD, 2, {0xC1, 0x71} },
+ {INIT_CMD, 2, {0xC2, 0x90} },
+ {INIT_CMD, 2, {0xC3, 0xA0} },
+ {INIT_CMD, 2, {0xC4, 0xA8} },
+ {INIT_CMD, 2, {0xC5, 0xB1} },
+ {INIT_CMD, 2, {0xC6, 0xBB} },
+ {INIT_CMD, 2, {0xC7, 0xC0} },
+ {INIT_CMD, 2, {0xC8, 0xC4} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xCA, 0x00} },
+ {INIT_CMD, 2, {0xCB, 0x16} },
+ {INIT_CMD, 2, {0xCC, 0xAF} },
+ {INIT_CMD, 2, {0xCD, 0xFF} },
+ {INIT_CMD, 2, {0xCE, 0xFF} },
+ {INIT_CMD, 2, {0xB0, 0x0B} },
+ {INIT_CMD, 2, {0xB1, 0x04} },
+ {INIT_CMD, 2, {0xB2, 0x08} },
+ {INIT_CMD, 2, {0xB3, 0x19} },
+ {INIT_CMD, 2, {0xB4, 0x31} },
+ {INIT_CMD, 2, {0xB5, 0x46} },
+ {INIT_CMD, 2, {0xB6, 0x55} },
+ {INIT_CMD, 2, {0xB7, 0x6E} },
+ {INIT_CMD, 2, {0xB8, 0x92} },
+ {INIT_CMD, 2, {0xB9, 0xD4} },
+ {INIT_CMD, 2, {0xBA, 0x1B} },
+ {INIT_CMD, 2, {0xBB, 0x9B} },
+ {DELAY_CMD, 0x05, {} },
+ {INIT_CMD, 2, {0xBC, 0x28} },
+ {INIT_CMD, 2, {0xBD, 0x2D} },
+ {INIT_CMD, 2, {0xBE, 0xC3} },
+ {INIT_CMD, 2, {0xBF, 0x2F} },
+ {INIT_CMD, 2, {0xC0, 0x62} },
+ {INIT_CMD, 2, {0xC1, 0x99} },
+ {INIT_CMD, 2, {0xC2, 0xAB} },
+ {INIT_CMD, 2, {0xC3, 0xBF} },
+ {INIT_CMD, 2, {0xC4, 0xCF} },
+ {INIT_CMD, 2, {0xC5, 0xDF} },
+ {INIT_CMD, 2, {0xC6, 0xF0} },
+ {INIT_CMD, 2, {0xC7, 0xF9} },
+ {INIT_CMD, 2, {0xC8, 0xFC} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xCA, 0x00} },
+ {INIT_CMD, 2, {0xCB, 0x16} },
+ {INIT_CMD, 2, {0xCC, 0xAF} },
+ {INIT_CMD, 2, {0xCD, 0xFF} },
+ {INIT_CMD, 2, {0xCE, 0xFF} },
+ {INIT_CMD, 2, {0xB0, 0x0C} },
+ {INIT_CMD, 2, {0xB1, 0x04} },
+ {INIT_CMD, 2, {0xB2, 0x05} },
+ {INIT_CMD, 2, {0xB3, 0x17} },
+ {INIT_CMD, 2, {0xB4, 0x2E} },
+ {INIT_CMD, 2, {0xB5, 0x42} },
+ {INIT_CMD, 2, {0xB6, 0x51} },
+ {INIT_CMD, 2, {0xB7, 0x69} },
+ {INIT_CMD, 2, {0xB8, 0x88} },
+ {INIT_CMD, 2, {0xB9, 0xC9} },
+ {INIT_CMD, 2, {0xBA, 0x0C} },
+ {INIT_CMD, 2, {0xBB, 0x86} },
+ {DELAY_CMD, 0x05, {} },
+ {INIT_CMD, 2, {0xBC, 0x03} },
+ {INIT_CMD, 2, {0xBD, 0x08} },
+ {INIT_CMD, 2, {0xBE, 0x95} },
+ {INIT_CMD, 2, {0xBF, 0x05} },
+ {INIT_CMD, 2, {0xC0, 0x35} },
+ {INIT_CMD, 2, {0xC1, 0x62} },
+ {INIT_CMD, 2, {0xC2, 0x81} },
+ {INIT_CMD, 2, {0xC3, 0x96} },
+ {INIT_CMD, 2, {0xC4, 0x9E} },
+ {INIT_CMD, 2, {0xC5, 0xA5} },
+ {INIT_CMD, 2, {0xC6, 0xAD} },
+ {INIT_CMD, 2, {0xC7, 0xB1} },
+ {INIT_CMD, 2, {0xC8, 0xB4} },
+ {INIT_CMD, 2, {0xC9, 0x00} },
+ {INIT_CMD, 2, {0xCA, 0x00} },
+ {INIT_CMD, 2, {0xCB, 0x16} },
+ {INIT_CMD, 2, {0xCC, 0xAF} },
+ {INIT_CMD, 2, {0xCD, 0xFF} },
+ {INIT_CMD, 2, {0xCE, 0xFF} },
+ {DELAY_CMD, 0x64, {} },
+ {INIT_CMD, 2, {0xB0, 0x00} },
+ {INIT_CMD, 2, {0xB3, 0x08} },
+ {INIT_CMD, 2, {0xB0, 0x04} },
+ {INIT_CMD, 2, {0xB8, 0x68} },
+ {DELAY_CMD, 0x0A, {} },
+ {INIT_CMD, 1, {0x11} },
+ {DELAY_CMD, 0x78, {} },
+ {INIT_CMD, 1, {0x29} },
+ {DELAY_CMD, 0x14, {} },
+};
+
+/* flapjack C18 AUO NT51021 panel : PANEL_AUO_NT51021D8P */
+static struct edid flapjack_auo_nt51021d8p_edid = {
+ .panel_bits_per_color = 8,
+ .panel_bits_per_pixel = 24,
+ .mode = {
+ .name = "1200x1920@60Hz",
+ .pixel_clock = 159420,
+ .lvds_dual_channel = 0,
+ .refresh = 60,
+ .ha = 1200, .hbl = 141, .hso = 80, .hspw = 1, .hborder = 0,
+ .va = 1920, .vbl = 61, .vso = 35, .vspw = 1, .vborder = 0,
+ .phsync = '-', .pvsync = '-',
+ .x_mm = 107, .y_mm = 132,
+ },
+};
+
+static struct lcm_init_table auo_nt51021d8p_lcm_init_cmd[] = {
+ {INIT_CMD, 1, {0x11} },
+ {DELAY_CMD, 0x78, {} },
+ {INIT_CMD, 1, {0x29} },
+ {DELAY_CMD, 0x14, {} },
+};
+
+/* flapjack C19 INX OTA7290 panel : PANEL_INX_OTA7290D10P */
+static struct edid flapjack_inx_ota7290d10p_edid = {
+ .panel_bits_per_color = 8,
+ .panel_bits_per_pixel = 24,
+ .mode = {
+ .name = "1200x1920@60Hz",
+ .pixel_clock = 159420,
+ .lvds_dual_channel = 0,
+ .refresh = 60,
+ .ha = 1200, .hbl = 141, .hso = 80, .hspw = 1, .hborder = 0,
+ .va = 1920, .vbl = 61, .vso = 35, .vspw = 1, .vborder = 0,
+ .phsync = '-', .pvsync = '-',
+ .x_mm = 135, .y_mm = 216,
+ },
+};
+
+static struct lcm_init_table inx_ota7290d10p_lcm_init_cmd[] = {
+ {INIT_CMD, 2, { 0xB0, 0x5A} },
+ {INIT_CMD, 2, { 0xB1, 0x00} },
+ {INIT_CMD, 2, { 0x89, 0x01} },
+ {INIT_CMD, 2, { 0x91, 0x17} },
+ {INIT_CMD, 2, { 0xB1, 0x03} },
+ {INIT_CMD, 2, { 0x2C, 0x28} },
+ {INIT_CMD, 2, { 0x00, 0xF1} },
+ {INIT_CMD, 2, { 0x01, 0x78} },
+ {INIT_CMD, 2, { 0x02, 0x3C} },
+ {INIT_CMD, 2, { 0x03, 0x1E} },
+ {INIT_CMD, 2, { 0x04, 0x8F} },
+ {INIT_CMD, 2, { 0x05, 0x01} },
+ {INIT_CMD, 2, { 0x06, 0x00} },
+ {INIT_CMD, 2, { 0x07, 0x00} },
+ {INIT_CMD, 2, { 0x08, 0x00} },
+ {INIT_CMD, 2, { 0x09, 0x00} },
+ {INIT_CMD, 2, { 0x0A, 0x01} },
+ {INIT_CMD, 2, { 0x0B, 0x3C} },
+ {INIT_CMD, 2, { 0x0C, 0x00} },
+ {INIT_CMD, 2, { 0x0D, 0x00} },
+ {INIT_CMD, 2, { 0x0E, 0x24} },
+ {INIT_CMD, 2, { 0x0F, 0x1C} },
+ {INIT_CMD, 2, { 0x10, 0xC8} },
+ {INIT_CMD, 2, { 0x11, 0x60} },
+ {INIT_CMD, 2, { 0x12, 0x70} },
+ {INIT_CMD, 2, { 0x13, 0x01} },
+ {INIT_CMD, 2, { 0x14, 0xE3} },
+ {INIT_CMD, 2, { 0x15, 0xFF} },
+ {INIT_CMD, 2, { 0x16, 0x3D} },
+ {INIT_CMD, 2, { 0x17, 0x0E} },
+ {INIT_CMD, 2, { 0x18, 0x01} },
+ {INIT_CMD, 2, { 0x19, 0x00} },
+ {INIT_CMD, 2, { 0x1A, 0x00} },
+ {INIT_CMD, 2, { 0x1B, 0xFC} },
+ {INIT_CMD, 2, { 0x1C, 0x0B} },
+ {INIT_CMD, 2, { 0x1D, 0xA0} },
+ {INIT_CMD, 2, { 0x1E, 0x03} },
+ {INIT_CMD, 2, { 0x1F, 0x04} },
+ {INIT_CMD, 2, { 0x20, 0x0C} },
+ {INIT_CMD, 2, { 0x21, 0x00} },
+ {INIT_CMD, 2, { 0x22, 0x04} },
+ {INIT_CMD, 2, { 0x23, 0x81} },
+ {INIT_CMD, 2, { 0x24, 0x1F} },
+ {INIT_CMD, 2, { 0x25, 0x10} },
+ {INIT_CMD, 2, { 0x26, 0x9B} },
+ {INIT_CMD, 2, { 0x2D, 0x01} },
+ {INIT_CMD, 2, { 0x2E, 0x84} },
+ {INIT_CMD, 2, { 0x2F, 0x00} },
+ {INIT_CMD, 2, { 0x30, 0x02} },
+ {INIT_CMD, 2, { 0x31, 0x08} },
+ {INIT_CMD, 2, { 0x32, 0x01} },
+ {INIT_CMD, 2, { 0x33, 0x1C} },
+ {INIT_CMD, 2, { 0x34, 0x70} },
+ {INIT_CMD, 2, { 0x35, 0xFF} },
+ {INIT_CMD, 2, { 0x36, 0xFF} },
+ {INIT_CMD, 2, { 0x37, 0xFF} },
+ {INIT_CMD, 2, { 0x38, 0xFF} },
+ {INIT_CMD, 2, { 0x39, 0xFF} },
+ {INIT_CMD, 2, { 0x3A, 0x05} },
+ {INIT_CMD, 2, { 0x3B, 0x00} },
+ {INIT_CMD, 2, { 0x3C, 0x00} },
+ {INIT_CMD, 2, { 0x3D, 0x00} },
+ {INIT_CMD, 2, { 0x3E, 0x0F} },
+ {INIT_CMD, 2, { 0x3F, 0xA4} },
+ {INIT_CMD, 2, { 0x40, 0x28} },
+ {INIT_CMD, 2, { 0x41, 0xFC} },
+ {INIT_CMD, 2, { 0x42, 0x01} },
+ {INIT_CMD, 2, { 0x43, 0x08} },
+ {INIT_CMD, 2, { 0x44, 0x05} },
+ {INIT_CMD, 2, { 0x45, 0xF0} },
+ {INIT_CMD, 2, { 0x46, 0x01} },
+ {INIT_CMD, 2, { 0x47, 0x02} },
+ {INIT_CMD, 2, { 0x48, 0x00} },
+ {INIT_CMD, 2, { 0x49, 0x58} },
+ {INIT_CMD, 2, { 0x4A, 0x00} },
+ {INIT_CMD, 2, { 0x4B, 0x05} },
+ {INIT_CMD, 2, { 0x4C, 0x03} },
+ {INIT_CMD, 2, { 0x4D, 0xD0} },
+ {INIT_CMD, 2, { 0x4E, 0x13} },
+ {INIT_CMD, 2, { 0x4F, 0xFF} },
+ {INIT_CMD, 2, { 0x50, 0x0A} },
+ {INIT_CMD, 2, { 0x51, 0x53} },
+ {INIT_CMD, 2, { 0x52, 0x26} },
+ {INIT_CMD, 2, { 0x53, 0x22} },
+ {INIT_CMD, 2, { 0x54, 0x09} },
+ {INIT_CMD, 2, { 0x55, 0x22} },
+ {INIT_CMD, 2, { 0x56, 0x00} },
+ {INIT_CMD, 2, { 0x57, 0x1C} },
+ {INIT_CMD, 2, { 0x58, 0x03} },
+ {INIT_CMD, 2, { 0x59, 0x3F} },
+ {INIT_CMD, 2, { 0x5A, 0x28} },
+ {INIT_CMD, 2, { 0x5B, 0x01} },
+ {INIT_CMD, 2, { 0x5C, 0xCC} },
+ {INIT_CMD, 2, { 0x5D, 0x21} },
+ {INIT_CMD, 2, { 0x5E, 0x04} },
+ {INIT_CMD, 2, { 0x5F, 0x13} },
+ {INIT_CMD, 2, { 0x60, 0x42} },
+ {INIT_CMD, 2, { 0x61, 0x08} },
+ {INIT_CMD, 2, { 0x62, 0x64} },
+ {INIT_CMD, 2, { 0x63, 0xEB} },
+ {INIT_CMD, 2, { 0x64, 0x10} },
+ {INIT_CMD, 2, { 0x65, 0xA8} },
+ {INIT_CMD, 2, { 0x66, 0x84} },
+ {INIT_CMD, 2, { 0x67, 0x8E} },
+ {INIT_CMD, 2, { 0x68, 0x29} },
+ {INIT_CMD, 2, { 0x69, 0x11} },
+ {INIT_CMD, 2, { 0x6A, 0x42} },
+ {INIT_CMD, 2, { 0x6B, 0x38} },
+ {INIT_CMD, 2, { 0x6C, 0x21} },
+ {INIT_CMD, 2, { 0x6D, 0x84} },
+ {INIT_CMD, 2, { 0x6E, 0x50} },
+ {INIT_CMD, 2, { 0x6F, 0xB6} },
+ {INIT_CMD, 2, { 0x70, 0x0E} },
+ {INIT_CMD, 2, { 0x71, 0xA1} },
+ {INIT_CMD, 2, { 0x72, 0xCE} },
+ {INIT_CMD, 2, { 0x73, 0xF8} },
+ {INIT_CMD, 2, { 0x74, 0xDA} },
+ {INIT_CMD, 2, { 0x75, 0x1A} },
+ {INIT_CMD, 2, { 0x76, 0x00} },
+ {INIT_CMD, 2, { 0x77, 0x00} },
+ {INIT_CMD, 2, { 0x78, 0x5F} },
+ {INIT_CMD, 2, { 0x79, 0xE0} },
+ {INIT_CMD, 2, { 0x7A, 0x01} },
+ {INIT_CMD, 2, { 0x7B, 0xFF} },
+ {INIT_CMD, 2, { 0x7C, 0xFF} },
+ {INIT_CMD, 2, { 0x7D, 0xFF} },
+ {INIT_CMD, 2, { 0x7E, 0xFF} },
+ {INIT_CMD, 2, { 0x7F, 0xFE} },
+ {INIT_CMD, 2, { 0xB1, 0x02} },
+ {INIT_CMD, 2, { 0x00, 0xFF} },
+ {INIT_CMD, 2, { 0x01, 0x01} },
+ {INIT_CMD, 2, { 0x02, 0x00} },
+ {INIT_CMD, 2, { 0x03, 0x00} },
+ {INIT_CMD, 2, { 0x04, 0x00} },
+ {INIT_CMD, 2, { 0x05, 0x00} },
+ {INIT_CMD, 2, { 0x06, 0x00} },
+ {INIT_CMD, 2, { 0x07, 0x00} },
+ {INIT_CMD, 2, { 0x08, 0xC0} },
+ {INIT_CMD, 2, { 0x09, 0x00} },
+ {INIT_CMD, 2, { 0x0A, 0x00} },
+ {INIT_CMD, 2, { 0x0B, 0x04} },
+ {INIT_CMD, 2, { 0x0C, 0xE6} },
+ {INIT_CMD, 2, { 0x0D, 0x0D} },
+ {INIT_CMD, 2, { 0x0F, 0x08} },
+ {INIT_CMD, 2, { 0x10, 0xE5} },
+ {INIT_CMD, 2, { 0x11, 0xA8} },
+ {INIT_CMD, 2, { 0x12, 0xEC} },
+ {INIT_CMD, 2, { 0x13, 0x54} },
+ {INIT_CMD, 2, { 0x14, 0x5A} },
+ {INIT_CMD, 2, { 0x15, 0xD5} },
+ {INIT_CMD, 2, { 0x16, 0x23} },
+ {INIT_CMD, 2, { 0x17, 0x11} },
+ {INIT_CMD, 2, { 0x18, 0x2F} },
+ {INIT_CMD, 2, { 0x19, 0x93} },
+ {INIT_CMD, 2, { 0x1A, 0xA6} },
+ {INIT_CMD, 2, { 0x1B, 0x0F} },
+ {INIT_CMD, 2, { 0x1C, 0xFF} },
+ {INIT_CMD, 2, { 0x1D, 0xFF} },
+ {INIT_CMD, 2, { 0x1E, 0xFF} },
+ {INIT_CMD, 2, { 0x1F, 0xFF} },
+ {INIT_CMD, 2, { 0x20, 0xFF} },
+ {INIT_CMD, 2, { 0x21, 0xFF} },
+ {INIT_CMD, 2, { 0x22, 0xFF} },
+ {INIT_CMD, 2, { 0x23, 0xFF} },
+ {INIT_CMD, 2, { 0x24, 0xFF} },
+ {INIT_CMD, 2, { 0x25, 0xFF} },
+ {INIT_CMD, 2, { 0x26, 0xFF} },
+ {INIT_CMD, 2, { 0x27, 0x1F} },
+ {INIT_CMD, 2, { 0x28, 0xC8} },
+ {INIT_CMD, 2, { 0x29, 0xFF} },
+ {INIT_CMD, 2, { 0x2A, 0xFF} },
+ {INIT_CMD, 2, { 0x2B, 0xFF} },
+ {INIT_CMD, 2, { 0x2C, 0x07} },
+ {INIT_CMD, 2, { 0x2D, 0x03} },
+ {INIT_CMD, 2, { 0x33, 0x09} },
+ {INIT_CMD, 2, { 0x35, 0x7F} },
+ {INIT_CMD, 2, { 0x36, 0x0C} },
+ {INIT_CMD, 2, { 0x38, 0x7F} },
+ {INIT_CMD, 2, { 0x3A, 0x80} },
+ {INIT_CMD, 2, { 0x3B, 0x55} },
+ {INIT_CMD, 2, { 0x3C, 0xE2} },
+ {INIT_CMD, 2, { 0x3D, 0x32} },
+ {INIT_CMD, 2, { 0x3E, 0x00} },
+ {INIT_CMD, 2, { 0x3F, 0x58} },
+ {INIT_CMD, 2, { 0x40, 0x06} },
+ {INIT_CMD, 2, { 0x41, 0x80} },
+ {INIT_CMD, 2, { 0x42, 0xCB} },
+ {INIT_CMD, 2, { 0x43, 0x2C} },
+ {INIT_CMD, 2, { 0x44, 0x61} },
+ {INIT_CMD, 2, { 0x45, 0x39} },
+ {INIT_CMD, 2, { 0x46, 0x00} },
+ {INIT_CMD, 2, { 0x47, 0x00} },
+ {INIT_CMD, 2, { 0x48, 0x8B} },
+ {INIT_CMD, 2, { 0x49, 0xD2} },
+ {INIT_CMD, 2, { 0x4A, 0x01} },
+ {INIT_CMD, 2, { 0x4B, 0x00} },
+ {INIT_CMD, 2, { 0x4C, 0x10} },
+ {INIT_CMD, 2, { 0x4D, 0xC0} },
+ {INIT_CMD, 2, { 0x4E, 0x0F} },
+ {INIT_CMD, 2, { 0x4F, 0xF1} },
+ {INIT_CMD, 2, { 0x50, 0x78} },
+ {INIT_CMD, 2, { 0x51, 0x7A} },
+ {INIT_CMD, 2, { 0x52, 0x34} },
+ {INIT_CMD, 2, { 0x53, 0x99} },
+ {INIT_CMD, 2, { 0x54, 0xA2} },
+ {INIT_CMD, 2, { 0x55, 0x03} },
+ {INIT_CMD, 2, { 0x56, 0x6C} },
+ {INIT_CMD, 2, { 0x57, 0x1A} },
+ {INIT_CMD, 2, { 0x58, 0x05} },
+ {INIT_CMD, 2, { 0x59, 0x30} },
+ {INIT_CMD, 2, { 0x5A, 0x1E} },
+ {INIT_CMD, 2, { 0x5B, 0x8F} },
+ {INIT_CMD, 2, { 0x5C, 0xC7} },
+ {INIT_CMD, 2, { 0x5D, 0xE3} },
+ {INIT_CMD, 2, { 0x5E, 0xF1} },
+ {INIT_CMD, 2, { 0x5F, 0x78} },
+ {INIT_CMD, 2, { 0x60, 0x3C} },
+ {INIT_CMD, 2, { 0x61, 0x36} },
+ {INIT_CMD, 2, { 0x62, 0x1E} },
+ {INIT_CMD, 2, { 0x63, 0x1B} },
+ {INIT_CMD, 2, { 0x64, 0x8F} },
+ {INIT_CMD, 2, { 0x65, 0xC7} },
+ {INIT_CMD, 2, { 0x66, 0xE3} },
+ {INIT_CMD, 2, { 0x67, 0x31} },
+ {INIT_CMD, 2, { 0x68, 0x14} },
+ {INIT_CMD, 2, { 0x69, 0x89} },
+ {INIT_CMD, 2, { 0x6A, 0x70} },
+ {INIT_CMD, 2, { 0x6B, 0x8C} },
+ {INIT_CMD, 2, { 0x6C, 0x8D} },
+ {INIT_CMD, 2, { 0x6D, 0x8D} },
+ {INIT_CMD, 2, { 0x6E, 0x8D} },
+ {INIT_CMD, 2, { 0x6F, 0x8D} },
+ {INIT_CMD, 2, { 0x70, 0xC7} },
+ {INIT_CMD, 2, { 0x71, 0xE3} },
+ {INIT_CMD, 2, { 0x72, 0xF1} },
+ {INIT_CMD, 2, { 0x73, 0xD8} },
+ {INIT_CMD, 2, { 0x74, 0xD8} },
+ {INIT_CMD, 2, { 0x75, 0xD8} },
+ {INIT_CMD, 2, { 0x76, 0x18} },
+ {INIT_CMD, 2, { 0x77, 0x00} },
+ {INIT_CMD, 2, { 0x78, 0x00} },
+ {INIT_CMD, 2, { 0x79, 0x00} },
+ {INIT_CMD, 2, { 0x7A, 0xC6} },
+ {INIT_CMD, 2, { 0x7B, 0xC6} },
+ {INIT_CMD, 2, { 0x7C, 0xC6} },
+ {INIT_CMD, 2, { 0x7D, 0xC6} },
+ {INIT_CMD, 2, { 0x7E, 0xC6} },
+ {INIT_CMD, 2, { 0x7F, 0xE3} },
+ {INIT_CMD, 2, { 0x0B, 0x04} },
+ {INIT_CMD, 2, { 0xB1, 0x03} },
+ {INIT_CMD, 2, { 0x2C, 0x2C} },
+ {INIT_CMD, 2, { 0xB1, 0x00} },
+ {INIT_CMD, 2, { 0x89, 0x03} },
+ {INIT_CMD, 1, {0x11} },
+ {DELAY_CMD, 0x78, {} },
+ {INIT_CMD, 1, {0x29} },
+ {DELAY_CMD, 0x14, {} },
+};
+
+struct panel_info flapjack_panel_info[] = {
+ PANEL(PANEL_FLAPJACK_BOE_TV101WUM_NG0,
+ 74000,
+ flapjack_boe_tv101wum_edid,
+ boe_tv101wum_lcm_init_cmd),
+ PANEL(PANEL_FLAPJACK_BOE_TV080WUM_NG0,
+ 212000,
+ flapjack_boe_tv080wum_edid,
+ boe_tv080wum_lcm_init_cmd),
+ PANEL(PANEL_FLAPJACK_INX_OTA7290D10P,
+ 1191000,
+ flapjack_inx_ota7290d10p_edid,
+ inx_ota7290d10p_lcm_init_cmd),
+ PANEL(PANEL_FLAPJACK_AUO_NT51021D8P,
+ 1027000,
+ flapjack_auo_nt51021d8p_edid,
+ auo_nt51021d8p_lcm_init_cmd),
+ {{PANEL_FLAPJACK_UNKNOWN}, "PANEL_FLAPJACK_UNKNOWN",
+ 0, NULL, NULL, 0},
+};
+
+static union panel_id get_panel_id_from_adc(int channel,
+ struct board_display_intf *intf)
+{
+ uint32_t ver = board_id();
+
+ if (ver == BOARD_ID_UNKNOWN || ver < 3) {
+ int id;
+ int value = auxadc_get_voltage(channel);
+
+ for (id = 0; id < intf->all_panel_info_size; id++) {
+ if (ABS(value - intf->all_panel_info[id].voltage) < tolerance)
+ return intf->all_panel_info[id].disp_id;
+ }
+
+ return (union panel_id)PANEL_FLAPJACK_UNKNOWN;
+ } else
+ return (union panel_id)((sku_id() >> FLAPJACK_PANEL_ID_BIT_POSITION) & 0xf);
+}
+
+
+static union panel_id flapjack_get_panel_id(struct board_display_intf *intf)
+{
+ union panel_id id;
+
+ id = get_panel_id_from_adc(FLAPJACK_PANEL_ADC_ID,
+ intf);
+ return id;
+};
+
+static bool flapjack_is_panel_id_valid(union panel_id id)
+{
+ if (id.value < PANEL_FLAPJACK_UNKNOWN)
+ return true;
+ return false;
+};
+
+static int flapjack_backlight(struct board_display_intf *intf)
+{
+ configure_backlight();
+ return 0;
+};
+
+static int flapjack_power(struct board_display_intf *intf)
+{
+ int result = 0;
+ switch (intf->cur_panel_info->disp_id.value) {
+ case PANEL_FLAPJACK_BOE_HIMAX8279D10P:
+ case PANEL_FLAPJACK_BOE_HIMAX8279D8P:
+ case PANEL_FLAPJACK_INX_OTA7290D10P:
+ case PANEL_FLAPJACK_AUO_NT51021D8P:
+ gpio_output(PP3300_LCM_EN, 1);
+ gpio_output(PP1800_LCM_EN, 1);
+
+ gpio_output(GPIO(LCM_RST), 0);
+ mdelay(20);
+ gpio_output(GPIO(LCM_RST), 1);
+ mdelay(10);
+ break;
+ case PANEL_FLAPJACK_UNKNOWN:
+ default:
+ result = ERR;
+ break;
+ }
+ return result;
+};
+
+struct board_display_intf flapjack_display_intf = {
+ .board = "flapjack",
+ .all_panel_info = flapjack_panel_info,
+ .all_panel_info_size = ARRAY_SIZE(flapjack_panel_info),
+ .cur_panel_info = NULL,
+ .get_panel_id = &flapjack_get_panel_id,
+ .is_panel_id_valid = &flapjack_is_panel_id_valid,
+ .backlight = &flapjack_backlight,
+ .power = &flapjack_power,
+};

To view, visit change 32840. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I3e50df59de3db9ed6efcccbd01b553c21f793a3f
Gerrit-Change-Number: 32840
Gerrit-PatchSet: 1
Gerrit-Owner: Jerry Han <hanxu5@huaqin.corp-partner.google.com>
Gerrit-MessageType: newchange