fl2440——USB驱动添加

(只是添加USB的驱动,没有对其详细的说明)

相关知识可以看此相关的博客:http://blog.csdn.net/u012507643/article/details/52932578 

一、修改代码

vi arch/arm/mach-s3c2440/mach-smdk2440.c
#include <mach/regs-clock.h>     //add by anzhihong
#include <linux/delay.h>

添加USB init函数,这里的函数定义一定要在smdk_map_io调用的前面否则会报错:如下


int usb_s3c2440_init(void) 
{
    /*  Input Frequency is 12.0000MHz, and MDEV=0x38 PDIV=2 SDIV=2, so output   frequency 48.00MHz */
    unsigned long upllvalue = (0x38<<12)|(0x02<<4)|(0x02);
    while (upllvalue != __raw_readl(S3C2410_UPLLCON))
    {   
        __raw_writel(upllvalue, S3C2410_UPLLCON);
        mdelay(1);
    }   

    return 0;
}
在smdk2440_map_io中添加:
static void __init smdk2440_map_io(void)
{
    s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
    s3c24xx_init_clocks(12000000);
    s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));
    usb_s3c2440_init(); /*  Add by anzhihong */

内核添加支持:

make menuconfig选项如下:

Device Drivers  ---> 
   [*] USB support  --->
       {*}   Support for Host-side USB 
       [*]     USB device filesystem (DEPRECATED) 
       [*]     USB device class-devices (DEPRECATED)
       <*>     OHCI HCD support 
       <*>   USB Mass Storage support
    [*] HID Devices  ---> 
        -*-  Generic HID support
        <*>  USB Human Interface Device (full HID) support
    SCSI device support  --->
         <*> SCSI device support
         [*] legacy /proc/scsi/ support
         <*> SCSI disk support 
    usb storage驱动利用scsi中间层将usb storage设备虚拟成scsi逻辑设备。这样可以方便的使用scsi驱动的设备IO接口,以及plugin/plugout等机制
    File systems  --->
       DOS/FAT/NT Filesystems  --->
        <*> MSDOS fs support
        <*> VFAT (Windows-95) fs support
        (437) Default codepage for FAT
        (iso8859-1) Default iocharset for FAT
        <*> NTFS file system support
        [*]   NTFS write support
      Partition Types  --->
        [*]   PC BIOS (MSDOS partition tables) support
        [*]   Windows Logical Disk Manager (Dynamic Disk) support
      -*- Native language support  --->
        <*>   Codepage 437 (United States, Canada)
        <*>   Simplified Chinese charset (CP936, GB2312)
        <*>   ASCII (United States)
        <*>   NLS ISO 8859-1 (Latin 1; Western European Languages)
        <*>   NLS UTF-8

重新编译然后加载到内核上面:

将usb插入到上面就有如下显示(我将四个usb都插入试了一遍):



扫描二维码关注公众号,回复: 168749 查看本文章



猜你喜欢

转载自blog.csdn.net/buhuiguowang/article/details/79744430