IMX6Q处理器Linux平台LCD显示屏RGB驱动调试移植

2021-06-10 10:57:14 浏览数 (2)

LCD 显示相关的内核驱动文件为 drivers/video/mxc/mxc_lcdif.c,

添加对新的 LCD 液晶屏支持的方法是在内核 drivers/video/mxc/mxc_lcdif.c 文件中的结构体数组 struct fb_videomode lcdif_modedb[]中添加需要支持的 LCD 液晶屏参数。

u-boot 中设置 bootargs 中的 video 参数的设备名与此结构体的 name 成员同名,来选择使用

所添加的 LCD 显示参数。

LCD 显示参数结构体数组

static struct fb_videomode lcdif_modedb[] = {

{

/* 800x480 @ 57 Hz , pixel clk @ 27MHz */

"CLAA-WVGA", 57, 800, 480, 37037, 40, 60, 10, 10, 20, 10,

FB_SYNC_CLK_LAT_FALL,

FB_VMODE_NONINTERLACED,

0,},

{

/* 800x480 @ 60 Hz , pixel clk @ 32MHz */

"SEIKO-WVGA", 60, 800, 480, 29850, 89, 164, 23, 10, 10, 10,

FB_SYNC_CLK_LAT_FALL,

FB_VMODE_NONINTERLACED,

0,},

};

fb_videomode 结构体成员说明如下

fb_videomode 结构体

struct fb_videomode {

const char *

name; //显示设备名,内核通过 u-boot 参数中 video 字段与此 name 作为匹配标识

u32 refresh; //刷新率

u32 xres; //行像素个数

u32 yres; //列像素个数

u32 pixclock; //每个像素时钟周期的长度,单位是皮秒

u32 left_margin; //左边缘像素个数

u32 right_margin; //右边缘像素个数

u32 upper_margin; //上边缘像素个数

u32 lower_margin; //下边缘像素个数

u32 hsync_len; //行同步脉宽

u32 vsync_len; //场同步脉宽

u32 sync; //同步信号极性

u32 vmode; //默认设置为 FB_VMODE_NONINTERLACED

u32 flag; //默认设置为 FB_MODE_IS_DETAILED

};

0 人点赞