1 /* SPDX-License-Identifier: GPL-2.0-only */
2
3 #include <delay.h>
4 #include <gpio.h>
5 #include <soc/regulator.h>
6
7 #include "gpio.h"
8 #include "panel.h"
9
mipi_panel_power_on(void)10 static void mipi_panel_power_on(void)
11 {
12 mainboard_set_regulator_voltage(MTK_REGULATOR_VIO18, 1800000);
13 udelay(100);
14 mainboard_set_regulator_voltage(MTK_REGULATOR_VCN33, 3300000);
15
16 gpio_output(GPIO_EN_PP3300_DISP_X, 1);
17 mdelay(5);
18
19 /* DISP_RST_1V8_L */
20 gpio_output(GPIO_EDPBRDG_RST_L, 1);
21 mdelay(15);
22 gpio_output(GPIO_EDPBRDG_RST_L, 0);
23 udelay(20);
24 gpio_output(GPIO_EDPBRDG_RST_L, 1);
25 }
26
27 static struct panel_description wugtrio_panels[] = {
28 /* STA Technology panel with bias IC on it */
29 [0] = {
30 .configure_backlight = backlight_control,
31 .power_on = mipi_panel_power_on,
32 .name = "STA_ER88577",
33 .disp_path = DISP_PATH_MIPI,
34 .orientation = LB_FB_ORIENTATION_RIGHT_UP,
35 },
36 /* K&D Technology panel with bias IC on it */
37 [4] = {
38 .configure_backlight = backlight_control,
39 .power_on = mipi_panel_power_on,
40 .name = "KD_KD101NE3_40TI",
41 .disp_path = DISP_PATH_MIPI,
42 .orientation = LB_FB_ORIENTATION_RIGHT_UP,
43 },
44 /* LCE Corporation panel with bias IC on it */
45 [7] = {
46 .configure_backlight = backlight_control,
47 .power_on = mipi_panel_power_on,
48 .name = "LCE_LMFBX101117480",
49 .disp_path = DISP_PATH_MIPI,
50 .orientation = LB_FB_ORIENTATION_RIGHT_UP,
51 },
52 };
53
get_panel_description(void)54 struct panel_description *get_panel_description(void)
55 {
56 uint32_t id = panel_id() & 0xF;
57 if (id >= ARRAY_SIZE(wugtrio_panels))
58 return NULL;
59
60 return &wugtrio_panels[id];
61 }
62