在S3C2410的6寸LCD驱动在linux2.6上的移植

S 3C 24106LCD驱动在linux2.6上的移植

----Figo  2007.11

我的LCD12bit640*480TFT,硬件平台是阳初2410板子,在linux- 2.6.14 的移植结果如下:

 

1.     mach-smdk2410.c中添加平台信息.主要是设置一个结构体.

添加头文件
#include <asm/arch/fb.h>


static struct s 3c 2410fb_mach_info smdk2410_lcd_platdata = {
.width= 640,
.height= 480,
.xres = {
.defval= 640,
.min= 640,
.max= 640,
},
.yres = {
.defval= 480,
.min= 480,
.max= 480,
},
.bpp = {
.defval= 16,
.min= 16,
.max= 16,
},
.regs = {
     .lcdcon1= S 3C 2410_LCDCON1_TFT16BPP | S 3C 2410_LCDCON1_TFT | S 3C 2410_LCDCON1_CLKVAL(4),

        .lcdcon2= S 3C 2410_LCDCON2_LINEVAL(479) | S 3C 2410_LCDCON2_VBPD(18) | S 3C 2410_LCDCON2_VFPD(10) |         S 3C 2410_LCDCON2_VSPW(14),

        .lcdcon3= S 3C 2410_LCDCON3_HOZVAL(639) | S 3C 2410_LCDCON3_HBPD(6) | S 3C 2410_LCDCON3_HFPD(15),

        .lcdcon4= S 3C 2410_LCDCON4_HSPW(28) | S 3C 2410_LCDCON4_MVAL(13),

        .lcdcon5= S 3C 2410_LCDCON5_FRM565 | S 3C 2410_LCDCON5_HWSWP | S 3C 2410_LCDCON5_INVVCLK|S 3C 2410_LCDCON5_INVVLINE|S 3C 2410_LCDCON5_INVVFRAME|S 3C 2410_LCDCON5_PWREN,

},
.gpcup= 0xFFFFFFFF,
.gpcup_mask= 0xFFFFFFFF,
.gpccon= 0xaaaaaaaa,
.gpccon_mask= 0xFFFFFFFF,
.gpdup= 0xFFFFFFFF,
.gpdup_mask= 0xFFFFFFFF,
.gpdcon= 0xaaaaaaaa,
.gpdcon_mask= 0xFFFFFFFF,
.lpcsel= 0x00,
};
这部分设置是关键,要针对自己的lcd修改.

然后,smdk2410_map_io(void)中添加
set_s 3c 2410fb_info(&smdk2410_lcd_platdata);

2 上面的结构体中reg部分的赋值是非常重要的,其中    

.lcdcon2= S 3C 2410_LCDCON2_LINEVAL(479) | S 3C 2410_LCDCON2_VBPD(18) | S 3C 2410_LCDCON2_VFPD(10) |          S 3C 2410_LCDCON2_VSPW(14),

的作用更为明显,开始不是用这些值时总是出现问题,屏幕的上面一部分出现在屏幕的下面,这个问题的产生就是因为这行值没有取正确,按照上面的取值即可成功。但是出现了另一个问题,就是屏幕抖动得非常厉害,这是因为帧频率过低,可以调低.lcdcon1= S 3C 2410_LCDCON1_TFT16BPP | S 3C 2410_LCDCON1_TFT | S 3C 2410_LCDCON1_CLKVAL(4),中CLKVAL的值为1,抖动消失了。

这些寄存器的值在三星的说明书上看似并不影响LCD的显示,但是实际上却影响很大,如果屏幕的显示出了问题二其他方面找不到答案时应该好好从这些值上考虑,深入考虑这些寄存值的意义

 

3 去除10分钟左右自动关闭显示的程序(实验时可以这么做,我猜应该是节能作用,并未深究。)。

copy from2410 lcd(ltv350)驱动在 2 ..14 下的移植经历》:

seigpao大侠的做法,注释掉drivers/char/vt.cblank_screen_t(unsigned long dummy)的函数内容,否则,lcd会在10分钟左右关掉显示。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值