summaryrefslogtreecommitdiff
path: root/src/soc/mediatek/mt8188
diff options
context:
space:
mode:
authorYidi Lin <yidilin@chromium.org>2024-01-03 16:07:24 +0800
committerFelix Held <felix-coreboot@felixheld.de>2024-01-10 14:20:25 +0000
commitba604b558e3a4e9e53c948391bc86a7bc775e6b3 (patch)
tree9a179c8219bb842507b0c2f2ba3d1e2852d680e9 /src/soc/mediatek/mt8188
parent7224999497634dbd4c15fc8b1cdd4d2d2b39fec2 (diff)
soc/mediatek: Add common implementation to configure display
The sequences of configure_display() are similar on MediaTek platforms. The sequences usually involve following steps: 1. Setup mtcmos for display hardware block. - mtcmos_display_power_on() - mtcmos_protect_display_bus() 2. Configure backlight pins 3. Power on the panel - It also powers on the bridge in MIPI DSI to eDP case. 4. General initialization for DDP(display data path) 5. Initialize eDP/MIPI DSI accordingly, - For eDP path, it calls mtk_edp_init() to get edid from the panel and initializes eDP driver. - For MIPI DSI path, the edid is retrieved either from the bridge or from CBFS (the serializable data), and then initializes DSI driver. 6. Set framebuffer bits per pixel 7. Setup DDP mode 8. Setup panel orientation This patch extracts geralt/display.c to mediatek/common/display.c and refactors `struct panel_description` to generalize the display init sequences. configure_display() is also renamed to mtk_display_init(). TEST=check FW screen on geralt. Change-Id: I403bba8a826de5f3fb2ea96a5403725ff194164f Signed-off-by: Yidi Lin <yidilin@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/79776 Reviewed-by: Yu-Ping Wu <yupingso@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/mediatek/mt8188')
-rw-r--r--src/soc/mediatek/mt8188/Makefile.inc1
-rw-r--r--src/soc/mediatek/mt8188/include/soc/ddp.h10
2 files changed, 2 insertions, 9 deletions
diff --git a/src/soc/mediatek/mt8188/Makefile.inc b/src/soc/mediatek/mt8188/Makefile.inc
index 6a643b0057..4731fab14c 100644
--- a/src/soc/mediatek/mt8188/Makefile.inc
+++ b/src/soc/mediatek/mt8188/Makefile.inc
@@ -37,6 +37,7 @@ ramstage-y += cpu_input_gating.c
ramstage-y += ../common/ddp.c ddp.c
ramstage-y += ../common/devapc.c devapc.c
ramstage-y += ../common/dfd.c
+ramstage-y += ../common/display.c
ramstage-y += ../common/dp/dp_intf.c ../common/dp/dptx.c ../common/dp/dptx_hal.c dp_intf.c
ramstage-y += ../common/dpm.c
ramstage-$(CONFIG_DPM_FOUR_CHANNEL) += ../common/dpm_4ch.c
diff --git a/src/soc/mediatek/mt8188/include/soc/ddp.h b/src/soc/mediatek/mt8188/include/soc/ddp.h
index da14a2c4e7..94fdb810a7 100644
--- a/src/soc/mediatek/mt8188/include/soc/ddp.h
+++ b/src/soc/mediatek/mt8188/include/soc/ddp.h
@@ -5,6 +5,7 @@
#include <soc/addressmap.h>
#include <soc/ddp_common.h>
+#include <soc/display.h>
#include <types.h>
#define MAIN_PATH_OVL_NR 1
@@ -282,13 +283,4 @@ enum {
SMI_LARB_PORT_L0_OVL_RDMA0 = 0xF88,
};
-enum disp_path_sel {
- DISP_PATH_NONE = 0,
- DISP_PATH_EDP,
- DISP_PATH_MIPI,
-};
-
-void mtk_ddp_init(void);
-void mtk_ddp_mode_set(const struct edid *edid, enum disp_path_sel);
-
#endif