diff --git a/src/mainboard/google/cherry/mainboard.c b/src/mainboard/google/cherry/mainboard.c
index c1593ca..0e78f62 100644
--- a/src/mainboard/google/cherry/mainboard.c
+++ b/src/mainboard/google/cherry/mainboard.c
@@ -7,13 +7,10 @@
 #include <device/device.h>
 #include <device/mmio.h>
 #include <ec/google/chromeec/ec.h>
-#include <edid.h>
-#include <framebuffer_info.h>
 #include <gpio.h>
 #include <soc/bl31.h>
-#include <soc/ddp.h>
+#include <soc/display.h>
 #include <soc/dpm.h>
-#include <soc/dptx.h>
 #include <soc/i2c.h>
 #include <soc/msdc.h>
 #include <soc/mtcmos.h>
@@ -58,7 +55,7 @@
 }
 
 /* Set up backlight control pins as output pin and power-off by default */
-static void configure_panel_backlight(void)
+static void configure_backlight(void)
 {
 	gpio_output(GPIO_AP_EDP_BKLTEN, 0);
 	gpio_output(GPIO_BL_PWM_1V8, 0);
@@ -72,41 +69,16 @@
 	gpio_output(GPIO_EN_PP3300_DISP_X, 1);
 }
 
-static bool configure_display(void)
+static struct panel_description panel = {
+	.configure_backlight = configure_backlight,
+	.power_on = power_on_panel,
+	.disp_path = DISP_PATH_EDP,
+	.orientation = LB_FB_ORIENTATION_NORMAL,
+};
+
+struct panel_description *get_active_panel(void)
 {
-	struct edid edid;
-	struct fb_info *info;
-	const char *name;
-
-	printk(BIOS_INFO, "%s: Starting display initialization\n", __func__);
-
-	mtcmos_display_power_on();
-	mtcmos_protect_display_bus();
-	configure_panel_backlight();
-	power_on_panel();
-
-	mtk_ddp_init();
-	mdelay(200);
-
-	if (mtk_edp_init(&edid) < 0) {
-		printk(BIOS_ERR, "%s: Failed to initialize eDP\n", __func__);
-		return false;
-	}
-	name = edid.ascii_string;
-	if (name[0] == '\0')
-		name = "unknown name";
-	printk(BIOS_INFO, "%s: '%s %s' %dx%d@%dHz\n", __func__,
-	       edid.manufacturer_name, name, edid.mode.ha, edid.mode.va,
-	       edid.mode.refresh);
-
-	edid_set_framebuffer_bits_per_pixel(&edid, 32, 0);
-
-	mtk_ddp_mode_set(&edid);
-	info = fb_new_framebuffer_info_from_edid(&edid, (uintptr_t)0);
-	if (info)
-		fb_set_orientation(info, LB_FB_ORIENTATION_NORMAL);
-
-	return true;
+	return &panel;
 }
 
 static void configure_i2s(void)
@@ -133,7 +105,7 @@
 static void mainboard_init(struct device *dev)
 {
 	if (display_init_required())
-		configure_display();
+		mtk_display_init();
 	else
 		printk(BIOS_INFO, "%s: Skipped display initialization\n", __func__);
 
