Background:
IO配置和官方包一致,或者已经修改好。
开始
struct fb_videomode {
const char *name; /* optional */
u32 refresh; /* optional */
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;
u32 flag;
};
此结构体定义位于文件include/linux/fb.h中,我们需要修改的文件位于board/freescale/mx6ull_my_evk文件夹中,其中文件夹“mx6ull_my_evk”为我自定义的配置文件。
该结构体具体含义如下:
官方参数的配置为
例如,我使用的屏幕参数如下
则我的设置为
代码为
struct display_info_t const displays[] = {{
.bus = MX6UL_LCDIF1_BASE_ADDR,
.addr = 0,
.pixfmt = 24,
.detect = NULL,
.enable = do_enable_parallel_lcd,
.mode = {
.name = "my_lcd_test",
.xres = 800,
.yres = 480,
.pixclock = 32341,
.left_margin = 88,
.right_margin = 40,
.upper_margin = 32,
.lower_margin = 13,
.hsync_len = 48,
.vsync_len = 3,
.sync = 0,
.vmode = FB_VMODE_NONINTERLACED
} } };
编译下载,屏幕并不能显示,终端显示提示unsupported panel TFT43AB,注意上面结构体定义中,.name为“my_lcd_test”
打印环境变量,发现panel=TFT43AB,
修改pannel变量为“my_lcd_test”
重启,屏幕能够正常显示