Skip to content

Commit 2902fef

Browse files
committed
add cm_hx8896a01_dsi_vdo_drv cm_hx8896a01_dsi_vdo_boe_drv based on dummy_lcm_drv
1 parent 9ace4c3 commit 2902fef

File tree

3 files changed

+218
-0
lines changed

3 files changed

+218
-0
lines changed
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
#include <linux/string.h>
2+
3+
#include "lcm_drv.h"
4+
5+
6+
// ---------------------------------------------------------------------------
7+
// Local Constants
8+
// ---------------------------------------------------------------------------
9+
10+
#define FRAME_WIDTH (480)
11+
#define FRAME_HEIGHT (800)
12+
13+
14+
// ---------------------------------------------------------------------------
15+
// Local Variables
16+
// ---------------------------------------------------------------------------
17+
18+
static LCM_UTIL_FUNCS lcm_util = {0};
19+
20+
#define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v)))
21+
22+
#define UDELAY(n) (lcm_util.udelay(n))
23+
#define MDELAY(n) (lcm_util.mdelay(n))
24+
25+
26+
// ---------------------------------------------------------------------------
27+
// Local Functions
28+
// ---------------------------------------------------------------------------
29+
30+
31+
// ---------------------------------------------------------------------------
32+
// LCM Driver Implementations
33+
// ---------------------------------------------------------------------------
34+
35+
static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util)
36+
{
37+
memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS));
38+
}
39+
40+
41+
static void lcm_get_params(LCM_PARAMS *params)
42+
{
43+
memset(params, 0, sizeof(LCM_PARAMS));
44+
45+
params->type = LCM_TYPE_DPI;
46+
params->ctrl = LCM_CTRL_NONE;
47+
params->width = FRAME_WIDTH;
48+
params->height = FRAME_HEIGHT;
49+
50+
params->dpi.mipi_pll_clk_ref = 0;
51+
params->dpi.mipi_pll_clk_div1 = 42;
52+
params->dpi.mipi_pll_clk_div2 = 10;
53+
params->dpi.dpi_clk_div = 2;
54+
params->dpi.dpi_clk_duty = 1;
55+
56+
params->dpi.clk_pol = LCM_POLARITY_FALLING;
57+
params->dpi.de_pol = LCM_POLARITY_FALLING;
58+
params->dpi.vsync_pol = LCM_POLARITY_FALLING;
59+
params->dpi.hsync_pol = LCM_POLARITY_FALLING;
60+
61+
params->dpi.hsync_pulse_width = 4;
62+
params->dpi.hsync_back_porch = 10;
63+
params->dpi.hsync_front_porch = 18;
64+
params->dpi.vsync_pulse_width = 2;
65+
params->dpi.vsync_back_porch = 2;
66+
params->dpi.vsync_front_porch = 14;
67+
68+
params->dpi.format = LCM_DPI_FORMAT_RGB888;
69+
params->dpi.rgb_order = LCM_COLOR_ORDER_RGB;
70+
params->dpi.is_serial_output = 0;
71+
72+
params->dpi.intermediat_buffer_num = 2;
73+
74+
params->dpi.io_driving_current = 0;
75+
}
76+
77+
78+
static void lcm_init(void)
79+
{
80+
}
81+
82+
83+
static void lcm_suspend(void)
84+
{
85+
}
86+
87+
88+
static void lcm_resume(void)
89+
{
90+
}
91+
92+
93+
// ---------------------------------------------------------------------------
94+
// Get LCM Driver Hooks
95+
// ---------------------------------------------------------------------------
96+
97+
LCM_DRIVER cm_hx8896a01_dsi_vdo_drv =
98+
{
99+
.set_util_funcs = lcm_set_util_funcs,
100+
.get_params = lcm_get_params,
101+
.init = lcm_init,
102+
.suspend = lcm_suspend,
103+
.resume = lcm_resume
104+
};
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
#include <linux/string.h>
2+
3+
#include "lcm_drv.h"
4+
5+
6+
// ---------------------------------------------------------------------------
7+
// Local Constants
8+
// ---------------------------------------------------------------------------
9+
10+
#define FRAME_WIDTH (480)
11+
#define FRAME_HEIGHT (800)
12+
13+
14+
// ---------------------------------------------------------------------------
15+
// Local Variables
16+
// ---------------------------------------------------------------------------
17+
18+
static LCM_UTIL_FUNCS lcm_util = {0};
19+
20+
#define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v)))
21+
22+
#define UDELAY(n) (lcm_util.udelay(n))
23+
#define MDELAY(n) (lcm_util.mdelay(n))
24+
25+
26+
// ---------------------------------------------------------------------------
27+
// Local Functions
28+
// ---------------------------------------------------------------------------
29+
30+
31+
// ---------------------------------------------------------------------------
32+
// LCM Driver Implementations
33+
// ---------------------------------------------------------------------------
34+
35+
static void lcm_set_util_funcs(const LCM_UTIL_FUNCS *util)
36+
{
37+
memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS));
38+
}
39+
40+
41+
static void lcm_get_params(LCM_PARAMS *params)
42+
{
43+
memset(params, 0, sizeof(LCM_PARAMS));
44+
45+
params->type = LCM_TYPE_DPI;
46+
params->ctrl = LCM_CTRL_NONE;
47+
params->width = FRAME_WIDTH;
48+
params->height = FRAME_HEIGHT;
49+
50+
params->dpi.mipi_pll_clk_ref = 0;
51+
params->dpi.mipi_pll_clk_div1 = 42;
52+
params->dpi.mipi_pll_clk_div2 = 10;
53+
params->dpi.dpi_clk_div = 2;
54+
params->dpi.dpi_clk_duty = 1;
55+
56+
params->dpi.clk_pol = LCM_POLARITY_FALLING;
57+
params->dpi.de_pol = LCM_POLARITY_FALLING;
58+
params->dpi.vsync_pol = LCM_POLARITY_FALLING;
59+
params->dpi.hsync_pol = LCM_POLARITY_FALLING;
60+
61+
params->dpi.hsync_pulse_width = 4;
62+
params->dpi.hsync_back_porch = 10;
63+
params->dpi.hsync_front_porch = 18;
64+
params->dpi.vsync_pulse_width = 2;
65+
params->dpi.vsync_back_porch = 2;
66+
params->dpi.vsync_front_porch = 14;
67+
68+
params->dpi.format = LCM_DPI_FORMAT_RGB888;
69+
params->dpi.rgb_order = LCM_COLOR_ORDER_RGB;
70+
params->dpi.is_serial_output = 0;
71+
72+
params->dpi.intermediat_buffer_num = 2;
73+
74+
params->dpi.io_driving_current = 0;
75+
}
76+
77+
78+
static void lcm_init(void)
79+
{
80+
}
81+
82+
83+
static void lcm_suspend(void)
84+
{
85+
}
86+
87+
88+
static void lcm_resume(void)
89+
{
90+
}
91+
92+
93+
// ---------------------------------------------------------------------------
94+
// Get LCM Driver Hooks
95+
// ---------------------------------------------------------------------------
96+
97+
LCM_DRIVER cm_hx8896a01_dsi_vdo_boe_drv =
98+
{
99+
.set_util_funcs = lcm_set_util_funcs,
100+
.get_params = lcm_get_params,
101+
.init = lcm_init,
102+
.suspend = lcm_suspend,
103+
.resume = lcm_resume
104+
};

mediatek/custom/common/kernel/lcm/mt65xx_lcm_list.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,8 @@ extern LCM_DRIVER otm9605a_dsi_vdo_lg_lcm_drv;
168168
extern LCM_DRIVER nt35517_dsi_vdo_qhd_lcm_drv;
169169
extern LCM_DRIVER hx8389b_qhd_dsi_vdo_drv;
170170

171+
extern LCM_DRIVER cm_hx8896a01_dsi_vdo_drv;
172+
extern LCM_DRIVER cm_hx8896a01_dsi_vdo_boe_drv;
171173

172174
LCM_DRIVER* lcm_driver_list[] =
173175
{
@@ -751,6 +753,14 @@ LCM_DRIVER* lcm_driver_list[] =
751753
&hx8389b_qhd_dsi_vdo_drv,
752754
#endif
753755

756+
#if defined(CM_HX8896A01_DSI_VDO)
757+
&cm_hx8896a01_dsi_vdo_drv,
758+
#endif
759+
760+
#if defined(CM_HX8896A01_DSI_VDO_BOE)
761+
&cm_hx8896a01_dsi_vdo_boe_drv,
762+
#endif
763+
754764
};
755765

756766
#define LCM_COMPILE_ASSERT(condition) LCM_COMPILE_ASSERT_X(condition, __LINE__)

0 commit comments

Comments
 (0)