mini2440 usb设备支持

来源:互联网 发布:生鲜类app源码 编辑:程序博客网 时间:2024/05/15 23:53

内核版本:linux-2.6.32.2        实验平台:mini2440

1. 添加平台设备支持
s3c2440的usb host平台设备已经定义好了的,定义在plat-s3c/dev-usb.c中:

static struct resource s3c_usb_resource[] = {[0] = {.start = S3C_PA_USBHOST,.end   = S3C_PA_USBHOST + 0x100 - 1,.flags = IORESOURCE_MEM,},[1] = {.start = IRQ_USBH,.end   = IRQ_USBH,.flags = IORESOURCE_IRQ,}};static u64 s3c_device_usb_dmamask = 0xffffffffUL;struct platform_device s3c_device_usb = {.name             = "s3c2410-ohci",.id               = -1,.num_resources    = ARRAY_SIZE(s3c_usb_resource),.resource         = s3c_usb_resource,.dev              = {.dma_mask = &s3c_device_usb_dmamask,.coherent_dma_mask = 0xffffffffUL}};EXPORT_SYMBOL(s3c_device_usb);

只需要在mach-mini2440.c中包含<plat/devs.h>这个头文件,然后将这个平台设备添加到mini2440_devices这个平台设备数组里面,以便完成平台设备的注册。

static struct platform_device *mini2440_devices[] __initdata = {/* ... */&s3c_device_usb,/* ... */};


2. 配置内核
首先是usb host和usb device驱动支持:
    Device Drivers  --->[*] USB support  ---><*>   Support for Host-side USB[*]     USB announce new devices[*]     USB device filesystem (DEPRECATED)<*>     OHCI HCD support

编译下载内核,系统启动过程中可以看到以下一些信息:

ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Drivers3c2410-ohci s3c2410-ohci: S3C24XX OHCIs3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000usb usb1: New USB device found, idVendor=1d6b, idProduct=0001usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1usb usb1: Product: S3C24XX OHCIusb usb1: Manufacturer: Linux 2.6.32.2 ohci_hcdusb usb1: SerialNumber: s3c24xxusb usb1: configuration #1 chosen from 1 choicehub 1-0:1.0: USB hub foundhub 1-0:1.0: 2 ports detected

将u盘插入到usb host接口处,虽然能够检测到有usb设备插入,但是由于没有为该usb找到合适的usb驱动,所以u盘暂时还不能正常工作,所以还需要usb device驱动的支持。配置内核:

    Device Drivers  --->    SCSI device support  ---><*> SCSI device support<*> SCSI disk support    [*] USB support  ---><*>   USB Mass Storage support

上面配置好了u盘设备的支持。
虽然此时u盘设备都能够正常枚举,但是此时u盘还不能够挂载,因为没有文件系统的支持,例如vfat、ntfs等等。
所以接下来是配置文件系统的支持:

    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

最后,还需要配置语言的支持:

    File systems  --->-*- Native language support  --->(iso8859-1) Default NLS Option<*>   Codepage 437 (United States, Canada)<*>   NLS ISO 8859-1  (Latin 1; Western European Languages)


3. 测试
重新编译内核并下载内核到板子上,等系统启动之后,插上u盘,使用下面的命令进行挂载:

mount -t vfat /dev/sda1 /mnt/udisk

这样虽然能够正常挂载u盘,但是中文会显示乱码(包括文件名和文件里面的内容)。


4. usb hid类设备支持
配置如下:
    Device Drivers  --->    Input device support  ---><*>   Event interface    [*] HID Devices  ---><*>   USB Human Interface Device (full HID) support

配置项Event interface表示将在/dev/input目录下创建event设备节点。

0 0