dev: gcdb: display: add support to swap DSI lanes to drive a panel
On CDP devices, some panels have the support for an adapter/interposer
card to swap the DSI controller/PHY that drive the panel. This is to
faciliate the usage of a different panel as secondary for dual DSI
use-cases. Add support to specify this using fastboot oem command.
Example:
fastboot oem command for default truly 1080p panel (driven by DSI-0):
fastboot oem select-display-panel truly_1080p_video
fastboot oem command when interposer card is used (driven by DSI-1):
fastboot oem select-display-panel truly_1080p_video:swap
Change-Id: Ia7871200949d2abc8a5d2d8e55ec9315fe5aa37e
diff --git a/dev/gcdb/display/gcdb_display_param.c b/dev/gcdb/display/gcdb_display_param.c
index 91ce12b..e236fa1 100644
--- a/dev/gcdb/display/gcdb_display_param.c
+++ b/dev/gcdb/display/gcdb_display_param.c
@@ -37,7 +37,8 @@
#include "target/display.h"
#include "fastboot_oem_display.h"
-struct oem_panel_data oem_data = {{'\0'}, {'\0'}, false, false, SIM_NONE, "single_dsi", DSI_PLL_DEFAULT};
+struct oem_panel_data oem_data = {{'\0'}, {'\0'}, false, false, false, SIM_NONE,
+ "single_dsi", DSI_PLL_DEFAULT};
static int panel_name_to_dt_string(struct panel_lookup_list supp_panels[],
uint32_t supp_panels_size,
@@ -195,6 +196,10 @@
ch = strstr((char *) panel_name, ":disable");
oem_data.cont_splash = ch ? false : true;
+ /* Interposer card to swap DSI0 and DSI1 lanes */
+ ch = strstr((char *) panel_name, ":swap");
+ oem_data.swap_dsi_ctrl = ch ? true : false;
+
/* DSI PLL source */
ch = strstr((char *) panel_name, ":pll0");
if (ch) {