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
};
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx