Linux2.6内核LCD驱动移植

参考: http://www.cnitblog.com/zouzheng/articles/14578.html

linux2.6.14 已经包含了 lcd 的驱动程序,驱动程序位于 /linux-2.6.14/drivers/video/ 目录下,文件名是 s3c2410fb.c, 头文件是

s3c2410fb.h. 在这里可以不研究这个文件。只要对 lcd 进行以下初始化就可以了。

    打开 /linux-2.6.14/arch/arm/mach-s3c2410/mach-smdk2410.c, 在这个文件里增加包含文件:

    #include    fb.h

       然后增加 LCD 初始化的代码,

    static struct s3c2410fb_mach_info hfrk_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 驱动已经移植完成了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值