(只是添加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 查看本文章