打印
[ZLG-ARM]

Linux2.6内核在创维特jx2410平台上的移植二

[复制链接]
1893|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
reeper|  楼主 | 2009-4-9 15:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、移植LCD驱动程序

                              

  通过上面的工作,在串口中已经看到了linux2.6.14的启动信息,但是在LCD上没有任何显示,这是因为我们还没有对LCD进行初始化,linux2.6.14已经包含了lcd的驱动程序,驱动程于 /linux2.6.14/drivers/video/目录下,文件名是s3c2410fb.c,头文件是s3c2410fb.h.。我们在这里可以不研究这个文件。只要我们对lcd进行以下初始化就可以了。我们打开/linux-2.6.14/arch/arm/mach-s3c2410/mach-smdk2410.c,首先在这个文件里增加包含文件(见贴图)。然后增加LCD初始化的代码,

static struct s3c2410fb_mach_info gggggg_lcdcfg

__initdata = {

               .fixed_syncs=       0,

               .regs={

                      .lcdcon1= 


S3C2410_LCDCON1_TFT16BPP | 

                                                S3C2410_LCDCON1_TFT | 

                                                S3C2410_LCDCON1_CLKVAL(6),

                        

                     .lcdcon2=   


S3C2410_LCDCON2_VBPD(2) | 

                                                S3C2410_LCDCON2_LINEVAL(319) | 

                                                S3C2410_LCDCON2_VFPD(0) | 

                                                S3C2410_LCDCON2_VSPW(4),

                        

                      .lcdcon3=   


S3C2410_LCDCON3_HBPD(47) | 

                                                S3C2410_LCDCON3_HOZVAL(239) | 

                                                S3C2410_LCDCON3_HFPD(15),

                        

                       .lcdcon4=   


S3C2410_LCDCON4_MVAL(1) | 

                                                S3C2410_LCDCON4_HSPW(31),

                        

                        .lcdcon5=   


S3C2410_LCDCON5_FRM565 | 

                                                S3C2410_LCDCON5_INVVLINE | 

                                                S3C2410_LCDCON5_HWSWP,

                        },

                .lpcsel=    0x0,

                .gpccon=    0xaaaaaaaa,

                .gpccon_mask=   0xffffffff,

                .gpcup=     0xffffffff,

                .gpcup_mask=    0xffffffff,

                .gpdcon=    0xaaaaaaaa,

                .gpdcon_mask=   0x0,

                .gpdup=     0xffffffff,

                .gpdup_mask=    0xffffffff,

                .width=     240,

                .height=    320,

                .xres=      {240,240,240},

                .yres=      {320,320,320},

                .bpp=       {16,16,16},

                            };

   static void __init sdmk2410_init(void)
{

                                set_s3c2410fb_info(&hfrk_lcdcfg);


}

在系统初始化中增加对lcd的初始化。
MACHINE_START(SMDK2410, 'SMDK2410') 


/* @TODO:request a new identifier and switch

* to SMDK2410 */

/* Maintainer: Jonas Dietsche */

……

  .map_io     = smdk2410_map_io,

  .init_irq   = smdk2410_init_irq,

  .init_machine   = sdmk2410_init, /*这一句是新增加的*/

  .timer      = &s3c24xx_timer,

  MACHINE_END

                              

现在我们重新保存这个文件,现在需要重新进入配置菜单,检查一下LCD的相关选项是否选上,[Device

                        Drivers->Graphics

                        support->]这个配置菜单下面是相关LCD的配置。回到根目录下,输入make编译内核,重现烧写内核到开发板,再次启动 linxu2.6.14以后就可以在lcd上看到一个小的企鹅。我们的lcd驱动已经移植完成了。

相关帖子

沙发
zcying| | 2009-4-9 15:14 | 只看该作者

嗯!不错!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

139

主题

185

帖子

0

粉丝