Chinaunix首页 | 论坛 | 博客
  • 博客访问: 146974
  • 博文数量: 49
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 576
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-17 11:27
文章分类

全部博文(49)

文章存档

2011年(1)

2010年(15)

2009年(33)

我的朋友

分类: 嵌入式

2009-10-07 11:16:57

Linux 2.6.22.6移植到S3C2410(gec2410)之:USB驱动移植

 

参照资料

http://blog.chinaunix.net/u3/93290/showart_1904445.html  (不是很完整)

 

 

下面主要例一下修改过的地方

移植步骤:

1. 修改在arch/arm/mach-s3c2410目录下的mach-smdk2410.c,添加如下内容

//添加usb头文件

#include

#include

#include

#include

 

 

//……………………………………………………………………………………usb

static struct s3c2410_hcd_info usb_sbc2410_info = {

               .port[0]        = {

               .flags  = S3C_HCDFLG_USED

       }

};

 

int usb_sbc2410_init(void)

{

unsigned long upllvalue = (0x78<<12)|(0x02<<4)|(0x03);

printk("USB Control, (c) 2006 sbc2410\n");

s3c_device_usb.dev.platform_data = &usb_sbc2410_info;

while(upllvalue!=__raw_readl(S3C2410_UPLLCON))

{

__raw_writel(upllvalue,S3C2410_UPLLCON);

mdelay(1);

}

return 0;

}

 

注(__raw_readl __raw_writel ,“l”是字每来的)

 

 

static struct platform_device *smdk2410_devices[] __initdata = {

        &s3c_device_usb,

//      &s3c_device_lcd,

        &s3c_device_wdt,

        &s3c_device_i2c,

        &s3c_device_iis,

    &s3c_device_usbgadget,

};

 

 

static void __init smdk2410_map_io(void)

{

        s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc));

        s3c24xx_init_clocks(0);

        s3c24xx_init_uarts(smdk2410_uartcfgs, ARRAY_SIZE(smdk2410_uartcfgs));

        s3c24xx_set_board(&smdk2410_board);

        usb_sbc2410_init();

 

}

 

 

2. 编译内核,选中所装驱动,配置USB鼠标键盘

#make menuconfig

Device Drivers >

       USB support --->

            <*> Support for Host-side USB

            <*> OHCI HCD support

--- USB Input Devices

<*> USB Human Interface Devices (full HID) support

[*] HID input layer support

 

3. 配置U盘支持

因为要优盘用到了SCSI 命令,所以我们先增加SCSI 支持。

Device Drivers 菜单里面,选择SCSI device support

#make menuconfig

Device Drivers >

       SCSI device support --->

            [*] legacy /proc/scsi support

<*> SCSI disk support

然后选择返回Device Drivers 菜单,再选择 USB support,按回车进入USB support菜单找到并选中

Device Drivers >

            USB support --->

<*> USB Mass Storage support

                [*]     USB Mass Storage verbose debug

 

Mount  /dev/sda1 usb/

阅读(1333) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~