blob: 0f7c778ae1fb4045101f8aee534d72c5eb6f20a9 [file] [log] [blame]
Yang Wu9ab5ae72024-03-29 18:08:04 +08001/* SPDX-License-Identifier: GPL-2.0-only */
2
Yang Wu9ab5ae72024-03-29 18:08:04 +08003#include <delay.h>
4#include <gpio.h>
5#include <soc/regulator.h>
6
7#include "gpio.h"
8#include "panel.h"
9
10static 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
27static struct panel_description wugtrio_panels[] = {
28 /* K&D Technology panel with bias IC on it */
29 [4] = {
30 .configure_backlight = backlight_control,
31 .power_on = mipi_panel_power_on,
32 .name = "KD_KD101NE3_40TI",
33 .disp_path = DISP_PATH_MIPI,
Yang Wu68def202024-04-07 11:48:29 +080034 .orientation = LB_FB_ORIENTATION_RIGHT_UP,
Yang Wu9ab5ae72024-03-29 18:08:04 +080035 },
36};
37
38struct panel_description *get_panel_description(void)
39{
40 uint32_t id = panel_id() & 0xF;
41 if (id >= ARRAY_SIZE(wugtrio_panels))
42 return NULL;
43
44 return &wugtrio_panels[id];
45}