1 /* SPDX-License-Identifier: GPL-2.0-only */
4 #include <console/console.h>
7 #include <framebuffer_info.h>
12 #include <soc/gpio_common.h>
13 #include <soc/mtcmos.h>
18 int configure_display(void)
23 struct panel_description
*panel
= get_active_panel();
27 printk(BIOS_INFO
, "%s: Starting display initialization\n", __func__
);
29 mtcmos_display_power_on();
31 panel
->configure_panel_backlight();
37 if (panel
->disp_path
== DISP_PATH_EDP
) {
38 if (mtk_edp_init(&edid
) < 0) {
39 printk(BIOS_ERR
, "%s: Failed to initialize eDP\n", __func__
);
44 u32 mipi_dsi_flags
= (MIPI_DSI_MODE_VIDEO
|
45 MIPI_DSI_MODE_VIDEO_SYNC_PULSE
|
47 MIPI_DSI_MODE_EOT_PACKET
);
49 edid
= panel
->s
->edid
;
51 if (mtk_dsi_init(mipi_dsi_flags
, MIPI_DSI_FMT_RGB888
, 4, &edid
,
52 panel
->s
->init
) < 0) {
53 printk(BIOS_ERR
, "%s: Failed in DSI init\n", __func__
);
58 name
= edid
.ascii_string
;
60 name
= "unknown name";
61 printk(BIOS_INFO
, "%s: '%s %s' %dx%d@%dHz\n", __func__
,
62 edid
.manufacturer_name
, name
, edid
.mode
.ha
, edid
.mode
.va
,
65 edid_set_framebuffer_bits_per_pixel(&edid
, 32, 0);
67 mtk_ddp_mode_set(&edid
, panel
->disp_path
);
68 info
= fb_new_framebuffer_info_from_edid(&edid
, (uintptr_t)0);
70 fb_set_orientation(info
, LB_FB_ORIENTATION_NORMAL
);