mb/google/brya/var/omnigul: Modify NVMe and UFS Storage support
[coreboot.git] / src / mainboard / google / geralt / display.c
blob396d6e0c03336b58da6ff9eb897aa99b3b9deaba
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #include <assert.h>
4 #include <console/console.h>
5 #include <delay.h>
6 #include <edid.h>
7 #include <framebuffer_info.h>
8 #include <gpio.h>
9 #include <soc/ddp.h>
10 #include <soc/dptx.h>
11 #include <soc/dsi.h>
12 #include <soc/gpio_common.h>
13 #include <soc/mtcmos.h>
15 #include "display.h"
16 #include "panel.h"
18 int configure_display(void)
20 struct edid edid;
21 struct fb_info *info;
22 const char *name;
23 struct panel_description *panel = get_active_panel();
24 if (!panel)
25 return -1;
27 printk(BIOS_INFO, "%s: Starting display initialization\n", __func__);
29 mtcmos_display_power_on();
31 panel->configure_panel_backlight();
32 panel->power_on();
34 mtk_ddp_init();
35 mdelay(200);
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__);
40 return -1;
43 } else {
44 u32 mipi_dsi_flags = (MIPI_DSI_MODE_VIDEO |
45 MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
46 MIPI_DSI_MODE_LPM |
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__);
54 return -1;
58 name = edid.ascii_string;
59 if (name[0] == '\0')
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,
63 edid.mode.refresh);
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);
69 if (info)
70 fb_set_orientation(info, LB_FB_ORIENTATION_NORMAL);
72 return 0;