参照 tq 移植手册,做了LCD 移植
1.简化 LCD 时钟计算方法 修改drivers/video/s3c2410fb.c s3c2410_activate_var
- static void s3c2410fb_activate_var(struct fb_info *info)
- # struct s3c2410fb_mach_info *mach_info = fbi->dev->platform_data;
-
# struct s3c2410fb_display *default_display = mach_info->displays +
-
# mach_info->default_display;
- # // fbi->regs.lcdcon1 |= S3C2410_LCDCON1_CLKVAL(clkdiv);
-
# 修改为 fbi->regs.lcdcon1 |= S3C2410_LCDCON1_CLKVAL(default_display->setclkval);
2.完成了这部分修改后,我们在时c2410fb_display 结构体中添加了一个 setclkval 变量,那么我们需要在该结构体的院校中添加上该变量,修改“arch/arm/mach-s3c2410/include/fb.h”
- # ## /* 新加入的项,目的是减少计算pixclock的复杂度*/
-
# unsigned setclkval; /* clkval */
3.修改LCD参数设置 这里就和 2.6.30.4 有一点不一致了 这里没有了 CONFIG_FB_S3C24X0_W320240
- # * LCD driver info */
-
#
-
-
# 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 = 320,
-
# .height = 240,
-
#
-
-
# .pixclock = 80000, /* HCLK 100 MHz, divisor 3 */
-
#
-
-
# /* 新加入的项,目的是减少计算pixclock的复杂度*/
-
# .setclkval = 0x3,
-
#
-
-
# .xres = 320,
-
# .yres = 240,
-
# .bpp = 16,
-
# .left_margin = 28, /* for HFPD*/
-
# .right_margin = 24, /* for HBPD*/
-
# .hsync_len = 42, /* for HSPW*/
-
# .upper_margin = 6, /* for VFPD*/
-
# .lower_margin = 2, /* for VBPD*/
-
# .vsync_len = 12, /* for VSPW*/
-
#
-
-
# };
4.这样就 全部设置好了,接下来我们只要 替换 logo_linux_clut224.ppm 这个图片就可以了,替换成自己喜欢的图片
drivers/video/logo/lobo_linux_clut224.ppm
内核配置,因为我们只是替换图片,
5.OK ,LCD移植 结束了,屏幕上成功显示 自己的图片了 。。O(∩_∩)O~
阅读(849) | 评论(0) | 转发(0) |