概述
基于mini2440的Linux-3.18.108下LCD驱动移植
其实原生的Linux-3.18.108本身就支持mini2440的LCD,只需修改一下配置信息就好了。
-
本人使用的是统宝的3.5寸LCD(T35),所以只需要根据Linux-2.6.32下T35的配置修改一下就好了。
-
进入Linux-3.18.108源码根目录,输入如下命令,编辑配置文件:
vi arch/arm/mach-s3c24xx/mach-mini2440.c
在开头出加入如下宏定义:
#define LCD_WIDTH 240
#define LCD_HEIGHT 320
#define LCD_PIXCLOCK 170000
#define LCD_RIGHT_MARGIN 25
#define LCD_LEFT_MARGIN 0
#define LCD_HSYNC_LEN 4
#define LCD_UPPER_MARGIN 1
#define LCD_LOWER_MARGIN 4
#define LCD_VSYNC_LEN 1
#define LCD_CON5 (S3C2410_LCDCON5_FRM565 | S3C2410_LCDCON5_INVVDEN
| S3C2410_LCDCON5_INVVFRAME |S3C2410_LCDCON5_INVVLINE
|S3C2410_LCDCON5_INVVCLK
找到static struct s3c2410fb_display mini2440_lcd_cfg[n]
,修改成如下,我们这里只需支持一种屏就好了:
static struct s3c2410fb_display mini2440_lcd_cfg[1] __initdata = {
/* mini2440 + 3.5" TFT + touchscreen */
{
.width = LCD_WIDTH,
.xres = LCD_WIDTH,
.height = LCD_HEIGHT,
.yres = LCD_HEIGHT,
.left_margin
= LCD_LEFT_MARGIN + 1,
.right_margin
= LCD_RIGHT_MARGIN + 1,
.upper_margin
= LCD_UPPER_MARGIN + 1,
.lower_margin
= LCD_LOWER_MARGIN + 1,
.hsync_len
= LCD_HSYNC_LEN + 1,
.vsync_len
= LCD_VSYNC_LEN + 1,
.pixclock
= LCD_PIXCLOCK,
.bpp
= 16,
.type
= S3C2410_LCDCON1_TFT,
.lcdcon5 = LCD_CON5
},
};
如果我们需要加入其他类型屏的支持,我们只需加大上面的数组大小,并加入相应配置信息就可以啦!LCD驱动就移植完成了。。。是不是太简单了?嗯,好像还有花屏的BUG,后面再解决。。。
最后
以上就是无限柚子为你收集整理的基于mini2440的Linux-3.18.108下LCD驱动移植的全部内容,希望文章能够帮你解决基于mini2440的Linux-3.18.108下LCD驱动移植所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复