一、移植前注意事项:
1. LCD移植会分为二部分, Kernel 和 bootloader, Kernel侧主要管理开机后的正常显示功能, Bootloader侧主要管理开机过程中的显示工作,所以移植时不能忽略Bootloader处。
2. 看原理图或者与硬件确定是用什么接口。常用的有RGB接口,MIPI接口。
RGB:18根并口数据线,SPI作为控制线。
MIPI:低速模式下为控制线,高速模式下为数据线。
二、LCD的移植:
KERNEL部分:
Lcd kernel驱动相关文件:
ap-src\kernel\arch\arm\mach-msm\board-msm7627a-display.c //LCD板级文件
ap-src\kernel\drivers\video\msm\mipi_XXXX.c //与屏相关的驱动文件
ap-src\kernel\drivers\video\msm\mipi_XXXX.h
ap-src\kernel\drivers\video\msm\mipi_XXXX_video_xga_pt.c //与基带相关的驱动文件
ap-src\kernel\drivers\video\msm\msm_dss_io_7x27a.c //与MIPI时序等相关的文件
将上面的文件加入到相应的目录下,并修改 Makefile和Kconfig文件,使其编译进内核中。
2.ap-src\kernel\arch\arm\mach-msm\board-msm7627a-display.c
配置LCD RESET引脚
#define GPIO_SKUD_LCD_BRDG_RESET_N 78 //根据原理图来配置
static unsigned skud_mipi_dsi_gpio[] = {
GPIO_CFG(GPIO_SKUD_LCD_BRDG_RESET_N,0,GPIO_CFG_OUTPUT,GPIO_CFG_NO_PULL,GPIO_CFG_2MA),
};
static int msm_fb_dsi_client_skud_reset(void)
{
int rc = 0;
rc=gpio_request(GPIO_SKUD_LCD_BRDG_RESET_N,"skud_lcd_brdg_reset_n");
if (rc < 0) {
pr_err("failed to request skud lcd brdg reset_n\n");
&nbs