ARM+LINUX移植攻略(十六)Linux驱动移植之LCD

努力成为linux kernel hacker的人李万鹏原创作品,为梦而战。转载请标明出处

http://blog.csdn.net/woshixingaaa/archive/2011/05/21/6436681.aspx

LCD屏驱动移植
1.修改arch/arm/mach-s3c2440/mach-smdk2440.c如下程序:修改这里的时序,并把.lpcsel = ((0xCE6) & ~7) | 1<<4,修改为.lpcsel = 0,

static struct s3c2410fb_display smdk2440_lcd_cfg __initdata = { .lcdcon5 = S3C2410_LCDCON5_FRM565 | S3C2410_LCDCON5_INVVLINE | S3C2410_LCDCON5_INVVFRAME | S3C2410_LCDCON5_PWREN | S3C2410_LCDCON5_HWSWP, .type = S3C2410_LCDCON1_TFT, .width = 240, .height = 320, .pixclock = 270000, /* HCLK 100 MHz, divisor 10 */ .xres = 320, .yres = 240, .bpp = 16, .left_margin = 8, .right_margin = 5, .hsync_len = 63, .upper_margin = 15, .lower_margin = 3, .vsync_len = 5, }; static struct s3c2410fb_mach_info smdk2440_fb_info __initdata = { .displays = &smdk2440_lcd_cfg, .num_displays = 1, .default_display = 0, #if 0 /* currently setup by downloader */ .gpccon = 0xaa940659, .gpccon_mask = 0xffffffff, .gpcup = 0x0000ffff, .gpcup_mask = 0xffffffff, .gpdcon = 0xaa84aaa0, .gpdcon_mask = 0xffffffff, .gpdup = 0x0000faff, .gpdup_mask = 0xffffffff, #endif // .lpcsel = ((0xCE6) & ~7) | 1<<4, .lpcsel = 0, };
这里主要介绍一下pixclock的计算方法:
首先看如下两个公式,一个是S3C2440手册里的,一个是drivers/video/s3c2410fb.c中的:
VCLK(Hz)=HCLK/(CLKVAL*2)
int clkdiv = s3c2410fb_calc_pixclk(fbi, var->pixclock) / 2;
(clkdiv+1)*2 = clk*pixclk/10^12;
clkdiv = clk*pixclk/10^12/2-1
这里的clk就是HCLK,然后计算得出pixclk与VCLK的关系
(HCLK/VCLK/2-1) = clk*pixclk/10^12/2-1
1/VCLK = pixclk/10^12
VCLK*pixclk = 10^12

添加开机logo,小企鹅:

Graphics support ---> <*> Support for frame buffer devices <*> S3C2410 LCD framebuffer support ,multi support! Console display driver support ---> <*> Framebuffer Console support Logo configuration ---> [*] Bootup logo [*] Standard 224-color Linux logo

显示如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值