ARM9开发板FL2440移植Linux-3.0内核————MMC和LCD驱动

一、mmc支持很简单,linux内核中提供了,所以直接选上这些选项,重新编译就行了。

 Device Drivers  --->

<*> MMC/SD/SDIO card support  --->

 <*>   MMC block device driver

 <*>   Samsung S3C SD/MMC Card Interface support

二、添加LCD支持

修改arch/arm/mach-s3c2440/mach-smdk2440.c中的结构体smdk2440_devices[] __initdata,添加为如下:

static struct platform_device *smdk2440_devices[] __initdata = {
    &s3c_device_ohci,
    &s3c_device_lcd,
    &s3c_device_wdt,
    &s3c_device_i2c0,
    &s3c_device_iis,
    &s3c_device_dm9000,
   
&s3c_device_adc,    
    &s3c_device_ts,
   
};

修改smdk2440_lcd_cfg__initdata 结构体为下面的内容(主要是修改一些参数)

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   = 111111, /* HCLK 60 MHz, divisor 10 */
    .xres       = 480,
    .yres       = 272,
    .bpp        = 16,
    .left_margin    = 38,
    .right_margin   = 20,
    .hsync_len  = 30,
    .upper_margin   = 15,
    .lower_margin   = 12,
    .vsync_len  = 3,

};

smdk2440_fb_info__initdata 结构体也要改,修改为如下

static struct s3c2410fb_mach_info smdk2440_fb_info __initdata = {
    .displays   = &smdk2440_lcd_cfg,
    .num_displays   = 1,
    .default_display = 0,

    .lpcsel     = ((0xCE6) & ~7) | 1<<1,(注意:文件中还有一行,要讲那行删了,不然企鹅会在右边)
};

修改完之后,编译,并烧到开发板上,就会发现小企鹅出世了。。。

大功告成!!!!!!!!!!!


你可能感兴趣的:(ARM9开发板FL2440移植Linux-3.0内核————MMC和LCD驱动)