2009-08-23 14:54 s3c2410 lcd 移植到 linux-2.6.30 <640x480 SHARP LQ080V3DG01>

s3c2410 lcd 移植到 linux-2.6.30 <640x480 SHARP LQ080V3DG01>

内核源码中相关文件
$LINUX_SOURCE_ROOT/arch/arm/mach-s3c2410/mach-smdk2410.c   //添加并配置lcd设备
$LINUX_SOURCE_ROOT/arch/arm/mach-s3c2410/mach-qt2410.c    //参考其中lcd设备及LQ080V3DG01相关添加方法以及参数
$LINUX_SOURCE_ROOT/arch/arm/mach-s3c2410/mach/include/fb.h   //相关结构体声明
$LINUX_SOURCE_ROOT/arch/arm/mach-s3c2410/mach/include/regs-lcd.h   //lcd控制器相关参数声明
$LINUX_SOURCE_ROOT/drivers/video/s3c2410fb.c    // lcd驱动代码
$LINUX_SOURCE_ROOT/drivers/video/s3c2410fb.h    //相关结构体

内核配置选项
Device Drivers --->
Character devices --->
[*] Virtual terminal
Graphics support --->
<*> Support for frame buffer devices --->
<*>   S3C2410 LCD framebuffer support
Console display driver support --->
    <*> Framebuffer Console support
[*] Bootup logo --->
[*]   Standard 224-color Linux logo

修改内容
在mach-smdk2410.c添加如下代码段:
/* LCD driver info */
static struct s3c2410fb_display smdk2410_lcd_cfg __initdata = {

/* Configuration for 640x480 SHARP LQ080V3DG01 */
.lcdcon5 = S3C2410_LCDCON5_FRM565 |
S3C2410_LCDCON5_INVVLINE |
S3C2410_LCDCON5_INVVFRAME |
S3C2410_LCDCON5_PWREN |
S3C2410_LCDCON5_HWSWP,

.type        = S3C2410_LCDCON1_TFT,
.width        = 640,
.height        = 480,

.pixclock    = 166667, /* HCLK/4 */
.xres        = 640,
.yres        = 480,
.bpp        = 16,
.left_margin    = 48,
.right_margin    = 18,
.hsync_len    = 4,
.upper_margin    = 33,
.lower_margin    = 10,
.vsync_len    = 4,
};
static struct s3c2410fb_mach_info smdk2410_fb_info __initdata = {
.displays    = &smdk2410_lcd_cfg,
.num_displays    = 1,
.default_display = 0,
.lpcsel        = ((0xCE6) & ~7) | 1<<4,
};
此函数中添加红色代码:
static void __init smdk2410_init(void)
{
s3c24xx_fb_set_platdata(&smdk2410_fb_info);

s3c_i2c0_set_platdata(NULL);
platform_add_devices(smdk2410_devices, ARRAY_SIZE(smdk2410_devices));
smdk_machine_init();
}

启动内核时正确的输出信息
……
Console: switching to colour frame buffer device 80x30
fb0: s3c2410fb frame buffer device
……

修改启动内核logo
使用GIMP带开图像,图像->模式中选择索引,最大颜色数量设为224,保存为ppm格式,ascii数据格式,然后替换掉$LINUX_SOURCE_ROOT/drivers/logo/logo_linux_clut224.ppm。
posted @ 2012-12-03 17:21  莫回头  阅读(191)  评论(0)    收藏  举报