USB驱动移植教程
- 格式:doc
- 大小:949.50 KB
- 文档页数:20
第一种方法:自动搜索安装
1、先将您的驱动光盘放入光驱,然后将您所购买的USB电缆插入电脑(台式或
笔记本电脑),电脑右下角就会出现正在安装驱动程
序2、
3、这样,自动搜索安装就安装好了。
第二种方式:手动安装
1、先将您的驱动光盘放入光驱,打开光盘里USB2.0_DRIVER
文件夹,点击
安装,即会出来“图片1”所示。
图片1
2. 点击
即可,等到出现以下显示时,恭喜你,你的驱动已安装
成功!
4、 这时返回到你电脑的“设备管理器”里就可以在“端口”里面看到电缆生成
的新串口了。
6、然后你需要在PLC 编程软件里把端口修改成与电缆生成的新串口一至就可
以使用。
安柏USB转接盒驱动安装说明
1、将USB转接盒通过USB通讯线缆与电脑USB口连接,并检查USB转接盒“LINK”灯是
否常亮,如不是,请检查连接线及电脑USB口是否正常。
2、USB转接盒连接好后,电脑会提示发现新硬件,如下图所示。
3、然后电脑会弹出下图所示的硬件更新向导,选择“从列表或指定位置安装”选项,点击
“下一步。
4、进入下图所示的界面后,选择“在这些位置上搜索最佳驱动程序”选项下面的“在搜索
中包括这个位置”选项。
点击上图的“浏览”,选择安柏安装光盘下面的“FTDI Driver”文件夹,点击“确定”,如下图所示。
然后再点击上图的“下一步”。
5、电脑会自动安装驱动文件,安装完成以后,会再弹出一次发现新硬件安装向导,重复上
面步骤安装。
安装完成以后再电脑设备管理器中的“端口(COM和LPT)”一项中会发现多出来一个COM通讯端口,如下图所示,此时USB转接盒驱动已经安装完成。
安卓手机如何手动安装USB驱动连接到电脑
知道安卓手机手动安装USB驱动连接到电脑是怎么样的吗,该怎么操作呢,那么安卓手机如何手动安装USB驱动连接到电脑的呢?下面是店铺收集整理的安卓手机如何手动安装USB驱动连接到电脑,希望对大家有帮助~~
安卓手机手动安装USB驱动连接到电脑的方法
工具/原料
驱动下载:推荐下载各机型自己的驱动,没有的话可以尝试用万能驱动
方法/步骤
进入“设置”->“应用程序”->“开发”勾选“USB调试程序”。
这样设备才可以通过USB连线时被PC识别到。
将已经开启“USB调试”的手机通过USB线连接PC,下面就要开始手动安装驱动的过程。
右击“我的电脑”选择“属性”就进入“系统设置”页面。
在“硬件”标签页打开“设备管理器”
在“设备管理器”面板我们可以看到其中“Android USB Devices”设备有个黄色的感叹号,表示这个设备还不能正常使用,需要安装驱动。
系统会自动跳出硬件安装向导,如果没有跳出可以通过右击带有黄色感叹号的设备,选择“更新驱动程序”,我们事先需要下载好驱动程序,这里就不选择联网搜索驱动。
选择“从列表或者指定位置安装”
接着通过“浏览”找到下载好的驱动所在的文件夹(这里以Windows XP系统x86芯片为例)。
点击下一步向导就会开始安装驱动,经过十几秒Android驱动即可完成安装。
驱动安装完毕后,就可以看到“设备管理器“中Android USB设备的黄色感叹号已经去掉。
linux-2.6.22下USB驱动移植一、代码修改修改在arch/arm/mach-s3c2410目录下的mach-smdk2410.c,添加如下内容/**********************add by nick*************************************/static struct s3c2410_hcd_info usb_ljd2410_info = {.port[0] = {.flags = S3C_HCDFLG_USED}};int usb_ljd2410_init(void){unsigned long upllvalue = (0x7812)|(0x024)|(0x03);printk(“USB Control, (c) 2006 sbc2410\n”);s3c_device_usb.dev.platform_data = &usb_ljd2410_info;while(upllvalue!=__raw_readl(S3C2410_UPLLCON)){__raw_writel(upllvalue,S3C2410_UPLLCON);mdelay(1);}return 0;}/***************************end add**********************/同时将usb_ljd2410_init()函数添加到smdk2410_map_io函数里面进行初始化,如下所示:static void __init smdk2410_map_io(void){s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc));# Linux100中文网/s3c24xx_init_clocks(0);s3c24xx_init_uarts(smdk2410_uartcfgs, ARRAY_SIZE(smdk2410_uartcfgs));usb_ljd2410_init();}//注意,不能忘了添加头文件#include asm/arch/regs-clock.h>#include asm/arch/usb-control.h>#include linux/device.h>#include linux/delay.h>修改后的整个文件如下:#include linux/kernel.h>#include linux/types.h>#include linux/interrupt.h>#include linux/list.h>#include linux/timer.h>#include linux/init.h>#include linux/serial_core.h>#include linux/platform_device.h>#include “asm-arm/arch-s3c2410/regs-cs8900.h”#include asm/mach/arch.h>#include asm/mach/map.h>#include asm/mach/irq.h>#include asm/hardware.h>#include asm/io.h>#include asm/irq.h>#include asm/mach-types.h>#include asm/arch/regs-serial.h>#include asm/arch/fb.h>#include asm/plat-s3c24xx/devs.h>#include asm/plat-s3c24xx/cpu.h>#include asm/plat-s3c24xx/common-smdk.h>#include asm/arch/regs-clock.h>#include asm/arch/usb-control.h>#include linux/device.h>#include linux/delay.h>static struct map_desc smdk2410_iodesc[] __initdata = {/* nothing here yet */{vSMDK2410_ETH_IO,pSMDK2410_ETH_IO,SZ_1M,MT_DEVICE}};#define UCON S3C2410_UCON_DEFAULT#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODEstatic struct s3c2410_uartcfg smdk2410_uartcfgs[] __initdata = {[0] = {.hwport = 0,.flags = 0,.ucon = UCON,.ulcon = ULCON,.ufcon = UFCON,},[1] = {.hwport = 1,.flags = 0,.ucon = UCON,.ulcon = ULCON,.ufcon = UFCON,},[2] = {.hwport = 2,.flags = 0,.ucon = UCON,.ulcon = ULCON,.ufcon = UFCON,}};//nick LCD Driver 2009.3.22/* LCD driver info *//* Configuration for 800*480 */static struct s3c2410fb_mach_info ljd2410_tft_cfg __initdata = {.type = S3C2410_LCDCON1_TFT,.regs = {.lcdcon1 = S3C2410_LCDCON1_TFT16BPP |S3C2410_LCDCON1_TFT |S3C2410_LCDCON1_CLKV AL(0x01),.lcdcon2 = S3C2410_LCDCON2_VBPD(39) |S3C2410_LCDCON2_LINEV AL(479) | /*480*/S3C2410_LCDCON2_VFPD(19) |S3C2410_LCDCON2_VSPW(3),.lcdcon3 = S3C2410_LCDCON3_HBPD(49) |S3C2410_LCDCON3_HOZV AL(799) | /* 800 */S3C2410_LCDCON3_HFPD(19),.lcdcon4 = S3C2410_LCDCON4_MV AL(13) |S3C2410_LCDCON4_HSPW(99),.lcdcon5 = S3C2410_LCDCON5_FRM565 |S3C2410_LCDCON5_INVVLINE |S3C2410_LCDCON5_INVVFRAME |S3C2410_LCDCON5_PWREN |S3C2410_LCDCON5_HWSWP,},.lpcsel = 0x00,.gpccon= 0xaaaaaaaa,.gpccon_mask= 0xffffffff,.gpcup= 0xffffffff,.gpcup_mask= 0xffffffff,.gpdcon= 0xaaaaaaaa,.gpdcon_mask= 0xffffffff,.gpdup= 0xffffffff,.gpdup_mask= 0xffffffff,.width =800,.height = 480,.xres = {.min = 800,.max = 800,.defval = 800,},.yres = {.min = 480,.max = 480,.defval = 480,},.bpp = {.min = 16,.max = 16,.defval = 16,},};//nick LCD/**********************add by nick*************************************/static struct s3c2410_hcd_info usb_ljd2410_info = {.port[0] = {.flags = S3C_HCDFLG_USED}};int usb_ljd2410_init(void){unsigned long upllvalue = (0x7812)|(0x024)|(0x03);printk(“USB Control, (c) 2006 sbc2410\n”);s3c_device_usb.dev.platform_data = &usb_ljd2410_info;while(upllvalue!=__raw_readl(S3C2410_UPLLCON)){__raw_writel(upllvalue,S3C2410_UPLLCON);mdelay(1);}return 0;}/***************************end add**********************/static struct platform_device *smdk2410_devices[] __initdata = {&s3c_device_usb,&s3c_device_lcd,&s3c_device_wdt,&s3c_device_i2c,&s3c_device_iis,};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));usb_ljd2410_init();}static void __init smdk2410_init(void){s3c24xx_fb_set_platdata(&ljd2410_tft_cfg);platform_add_devices(smdk2410_devices, ARRAY_SIZE(smdk2410_devices));smdk_machine_init();}MACHINE_START(SMDK2410, “SMDK2410”) /* @TODO: request a new identifier and switch* to SMDK2410 *//* Maintainer: Jonas Dietsche */.phys_io = S3C2410_PA_UART,.io_pg_offst = (((u32)S3C24XX_V A_UART) >> 18) & 0xfffc,.boot_params = S3C2410_SDRAM_PA + 0x100,.map_io = smdk2410_map_io,.init_irq = s3c24xx_init_irq,.init_machine = smdk2410_init,.timer = &s3c24xx_timer,MACHINE_END下面这个连接有大虾们对USB驱动移植的讨论Device Drivers --->Generic Driver Options --->Hotplug firmware loading supportBlock devices --->Low Performance USB Block driverSCSI device support --->SCSI generic supportProbe all LUNs on each SCSI deviceUSB support --->Support for Host-side USBUSB device filesystemOHCI HCD supportUSB Mass Storage supportUSB Monitor3、加入了MSDOS fs和VFAT fs的支持。
1通过SMB服务将SDK-H264/server目录拷贝到项目目录下
2解压内核到当前目录
命令#cd /home/guoqian/project/h264/server/kernel
#tar zxvf linux.2.6.29.tar.gz
解压完成后的文件为linux2.6.29
3清理中间文件、配置文件命令#cd linux-2.6.29
#make distclean
4选择参考配置文件
命令#cp config-h264 .config
5配置内核
#make menucofing ARCH=arm CROSS_COMPILE=arm-linux-
要使内核支持USB摄像头驱动,内核必须选上以下配置选项Device drivers→multimedia devices→
Video capture adapters→V4L USB devices→
最后保存退出。
配置文件config-h264已配置了上述选项
6编译内核
命令#make ulmage ARCH=arm CROSS_COMPILE=arm-linux-
编译完成后生成的内核映像ulmage位于arch/arm/boot/目录下。
7将ulmage拷贝到tftp服务目录/tftpboot
命令#cp arch/arm/boot/ulmage /tftpboot/ulmage-h264
至此USB摄像头驱动移植的工作就完成了。
USB驱动移植教程USB驱动移植教程一.USB驱动框架在Linux系统中,提供了主机侧和设备侧视角的USB驱动框架,这里,仅仅讲解主机侧角度看到的USB驱动框架。
从主机侧的角度而言,需要编写的USB驱动程序包括主机控制器驱动和设备驱动两类。
USB主机控制器驱动程序控制插入其中的USB设备,而USB设备驱动程序控制该设备如何作为设备与主机通信。
在USB主机控制器驱动和USB设备驱动之间还有一层叫USB核心层。
USB核心负责USB驱动管理和协议处理工作,它通过定义一些数据结构、宏和功能函数,向上为USB设备驱动提供编程接口,向下为USB主机控制器驱动提供编程接口;通过全局变量维护整个系统的USB设备信息,完成设备热插拔控制、总线数据传输控制等。
说了那么多,无图无真相啊~~Linux USB主机侧驱动总体框架二.USB驱动移植步骤1.S5PV210主机控制驱动的移植USB主机控制器有3种规范,UHCI(Universal Host Controller Interface),这种规范主要是Intel、Via芯片公司提供支持PC主板的;OHCI(Open Host Controller Interface),这种规范是微软提出来的,主要应用在非PC系统上的嵌入式领域上的USB芯片;EHCI(Enhanced Host Controller Interface),这种后来为提高USB速度而提出的规范,它支持最高速度为480Mbps。
在《S5PV210_UM_REV1.1》手册上搜索OHCI关键词,会发现下面一段话这表明S5PV210这款CPU支持一个USB主机接口,同时支持EHCI和OHCI这两种规范,支持USB1.1和USB2.0规范,支持最高的外设传输速率为480Mbps。
注意了,它并不支持USB3.0规范的USB设备,所以做测试的时候,千万不要拿USB3.0规范的USB设备去测试。
2.1移植ohci-s5p驱动打开内核目录:driversusbhost,发现Linux系统提供了大量的主机控制器驱动,找遍所有平台,都没有找到ohci-s5p.c源码。
USB驱动程序编写和安装导入10分钟完成一个USB驱动程序很多写Windows Device Driver的开发人员基本上都是使用Windows DDK进行开发的。
但是,现在也有不少人都开始借助一些辅助工具。
笔者去年开始接触到riverStudio,发现它真的是一个不错的开发工具,不仅写代码的时候思路清晰,而且和DDK的结合很好。
当然,也有很多人觉得用DriverStudio不够正宗,或者说不能很好的理解Windows Device Driver的架构。
我感觉这就有点像MFC 和SDK的关系,关于这个问题在很多地方都有争论,比如在万千新闻组上,就讨论了将近2个月。
每个人都有自己的最爱,都有自己的习惯,只要你能把事情做好,我想用什么方法应该都是一样的。
如果你已经习惯了用DDK开发,那完全还可以继续用下去;如果你觉得DriverStudio不错,那尝试用一个可以给你按照OOP概念来编程的工具有什么不好呢?在驱动开发网上,经常看到有人询问一些关于DriverStudio的使用的问题。
我正好很有幸用它作了几个驱动程序,包括VXD, KMD和WDM,稍微有点心得,因此想写下来给大家作一个小小的参考。
如果其中有错误,欢迎大家给我指出,谢谢。
下面我就介绍一下用DriverStudio开发一个USB驱动程序的过程。
这个USB设备有3个双向端点,每个端点的配置如下:EP 类型地址buffer(Bytes)0 IN/OUT Control 0x80/0x00 16/161 IN/OUT Bulk 0x81/0x01 16/162 IN/OUT Bulk 0x82/0x02 64/64我们的驱动程序需要实现的功能就是控制设备上的LED灯的亮和灭,以及通过Endpoint 2对设备进行读写。
由于DriveStudio由几个部分组成,我们写这个驱动程序只要用到DriverWorks,因此下面我们就简称它为DW。
在这里,我们假定读者已经正确的安装了DW,并且已经编译好了各个库文件。
1.机器开启后,连接usb线,桌面会弹出找到新的硬件向导。
点击取消,手动安装。
2.打开设备管理器,如下图所示,我们可以找到新的Qualcomm HSUSB设备。
3.双击Qualcomm HSUSB设备,(或者右键点击Qualcomm HSUSB设备,选择属性),4.选择详细信息,得到设备ID:VID_050C&PID_9025&MI_01.5.选择驱动程序选项卡,点击“更新驱动程序”,选择“从列表或指定位置安装(高级)”6.单击下一步,选择“不要搜索。
我要自己选择要安装的驱动程序”7.单击下一步,选择“从磁盘安装”8.点击浏览,选择USB_ANDROID2.2 所在的文件夹。
这里要用到我们前面获取的设备ID. VID_050C&PID_9025&MI_00: DIAG驱动,位于USB_ANDROID2.2\ usb_func2.2\qcser.inf VID_050C&PID_9025&MI_01: MODEM驱动,位于USB_ANDROID2.2\ usb_func2.2\qcmdm.inf VID_050C&PID_9025&MI_02: GPS驱动,位于USB_ANDROID2.2\ usb_func2.2\ qcser.infVID_050C&PID_9025&MI_04: ADB驱动,位于USB_ANDROID2.2\ adb\ android_usb.inf根据相应的设备id,选择相应的inf文件。
9.点击确定,选择下一步:10.此时弹出硬件安装对话框,点击仍然继续。
11.11.点击完成,该设备安装完成。
12.重复以上步骤,逐步安装各个设备驱动。
USB驱动移植教程一.USB驱动框架在Linux系统中,提供了主机侧和设备侧视角的USB驱动框架,这里,仅仅讲解主机侧角度看到的USB驱动框架。
从主机侧的角度而言,需要编写的USB驱动程序包括主机控制器驱动和设备驱动两类。
USB主机控制器驱动程序控制插入其中的USB设备,而USB设备驱动程序控制该设备如何作为设备与主机通信。
在USB主机控制器驱动和USB设备驱动之间还有一层叫USB核心层。
USB核心负责USB驱动管理和协议处理工作,它通过定义一些数据结构、宏和功能函数,向上为USB设备驱动提供编程接口,向下为USB主机控制器驱动提供编程接口;通过全局变量维护整个系统的USB设备信息,完成设备热插拔控制、总线数据传输控制等。
说了那么多,无图无真相啊~~Linux USB主机侧驱动总体框架二.USB驱动移植步骤1.S5PV210主机控制驱动的移植USB主机控制器有3种规范,UHCI(Universal Host Controller Interface),这种规范主要是Intel、Via芯片公司提供支持PC主板的;OHCI(Open Host Controller Interface),这种规范是微软提出来的,主要应用在非PC系统上的嵌入式领域上的USB芯片;EHCI(Enhanced Host Controller Interface),这种后来为提高USB速度而提出的规范,它支持最高速度为480Mbps。
在《S5PV210_UM_REV1.1》手册上搜索OHCI关键词,会发现下面一段话这表明S5PV210这款CPU支持一个USB主机接口,同时支持EHCI和OHCI这两种规范,支持USB1.1和USB2.0规范,支持最高的外设传输速率为480Mbps。
注意了,它并不支持USB3.0规范的USB设备,所以做测试的时候,千万不要拿USB3.0规范的USB设备去测试。
2.1移植ohci-s5p驱动打开内核目录:driversusbhost,发现Linux系统提供了大量的主机控制器驱动,找遍所有平台,都没有找到ohci-s5p.c源码。
很遗憾,3.8的内核没有提供S5PV210的USB HOST控制器驱动程序。
最好验证有没有提供的办法就是,烧写网蜂提供的第二版的uImage进去,然后找个U盘、或者鼠标插入Webee210开发板的USB HOST接口,看看串口有没有打印什么信息,结果是不会有任何反应的。
既然没有提供,这就需要我们自己来编写了,这下不好办了吧?不用紧张,仔细再找找,还是能发现一些类似的源码,可供我们移植的。
我们发现,内核虽然没有提供ohci-s5p.c源码,但是有提供ehci-s5p.c源码,还有ohci相关的其他平台的源码,比如ohci-s3c2410.c、ohci-exynos.c供我们移植参考。
2.1.1 ohci-s5p.c程序内核既然没有ohci-s5p.c,那我们使用其他平台的ohci源码,这里我们拷贝driversusbhost目录下的ohci-exynos.c为ohci-s5p.c。
然后将所有exynos字符串替换成s5p,由于有些地方是exynos4,所以还需要将s5p4替换为s5p。
最后还需要修改一下头文件,将#include <linux/platform_data/usb-exynos.h>改为:#include <linux/platform_data/usb-ohci-s5p.h>2.2 usb-ohci-s5p.h程序打开内核目录includelinuxplatform_data,然后拷贝usb-exynos.h为usb-ohci-s5p.h。
将所有的exynos4字符串替换为s5p,将EXYNOS替换为S5P。
最后添加平台数据:static struct s5p_ohci_platdata s5p_ohci_platdata;为了以后支持EHCI还添加echi的平台数据,最后usb-ohci-s5p.h修改为:#ifndef __MACH_S5P_OHCI_H#define __MACH_S5P_OHCI_H/**************Add by Webee*******************/#ifdef CONFIG_S5P_DEV_USB_EHCIstatic struct s5p_ehci_platdata s5p_ehci_platdata;#endifstatic struct s5p_ohci_platdata s5p_ohci_platdata;/**************Add by Webee*******************/struct s5p_ohci_platdata {int (*phy_init)(struct platform_device *pdev, int type);int (*phy_exit)(struct platform_device *pdev, int type);};extern void s5p_ohci_set_platdata(struct s5p_ohci_platdata *pd); #endif /* __MACH_S5P_OHCI_H */2.3 添加s5p_ohci_driver到ohci_hcd.c打开driversusbhostohci-hcd.c,在CONFIG_USB_OHCI_EXYNOS前面添加如下代码:#ifdef CONFIG_USB_OHCI_S5P#include "ohci-s5p.c"#define PLATFORM_DRIVERs5p_ohci_driver#endif因为S5PV210 USB HOST控制器驱动由driversusbhostohci-hcd.c(支持各种SoC下的主机控制器驱动的通用部分)和driversusbhostohci-s5p.c共同完成。
2.4 添加平台设备前面我们移植ohci-s5p.c主要是围绕platform_driver来编程的,这又回到了平台驱动设备模型了。
还记得我们移植gpio-key驱动了吗?里面就添加了平台设备来支持平台驱动。
今天,我们同样需要添加平台设备来支持s5p_ohci_driver这个平台驱动。
怎么添加呢?参考别人怎么写!打开archarmplat-samsungdevs.c,找到s5p_device_ehci这个平台设备,模仿它来修改。
打开archarmmach-s5pv210mach-smdkv210.c,在smdkv210_devices[ ]前,添加如下代码:#include <linux/ioport.h>#include <linux/platform_device.h>#include <linux/dma-mapping.h>#include <linux/platform_data/usb-ehci-s5p.h>#include <linux/platform_data/usb-ohci-s5p.h>#include <linux/platform_data/usb-ohci-s5p.h>static struct resource s5p_ohci_resource[] = {[0] = DEFINE_RES_MEM(0xEC300000, SZ_256),[1] = DEFINE_RES_IRQ(S5P_IRQ_VIC1(23)),};static u64 samsung_device_dma_mask = DMA_BIT_MASK(32);struct platform_device s5p_device_ohci = {.name = "s5p-ohci",.id = -1,.num_resources = ARRAY_SIZE(s5p_ohci_resource),.resource = s5p_ohci_resource,.dev = {.dma_mask = & samsung_device_dma_mask,.coherent_dma_mask = DM A_BIT_MASK(32),}};void __init s5p_ohci_set_platdata(struct s5p_ohci_platdata *pd) {struct s5p_ohci_platdata *npd;npd = s3c_set_platdata(pd, sizeof(struct s5p_ohci_platdata) ,&s5p_device_ohci);if (!npd->phy_init)npd->phy_init = s5p_usb_phy_init;if (!npd->phy_exit)npd->phy_exit = s5p_usb_phy_exit;}怎么确定s5p_ohci_resource里面的内存地址呢?这自然要回到《S5PV210_UM_REV1.1》手册了,在USBHOST这章的寄存器介绍里面有这么一段描述:而IRQ的确定,则是找到下面这段话。
/ * 参考archarmmach-s5pc100includemachirqs.h */#define IRQ_UHOSTS5P_IRQ_VIC1(23)然后将定义设置好的s5p_device_ohci添加到smdkv210_devices[],如:static struct platform_device *smdkv210_devices[] __initdata = {&s5p_device_ohci,/* Add by Webee */……&webee210_button_device,/* Add by Webee */ };最后,在smdkv210_machine_init函数中添加平台数据的设置函数。
#ifdef CONFIG_S5P_DEV_USB_OHCIs5p_ohci_set_platdata(&s5p_ohci_platdata);#endif2.5 修改Kconfig2.5.1 移植driversusbhost目录下的Kconfig打开driversusbhost目录下的Kconfig,在USB_OHCI_EXYNOS前面添加USB_OHCI_S5P的配置支持。
修改后如下:# Add by Webeeconfig USB_OHCI_S5Pboolean "OHCI support for Samsung S5P SoC Series"depends on USB_OHCI_HCD && PLAT_S5Pselect S5P_DEV_USB_OHCIhelpEnable support for the Samsung S5P SOC's on-chip OHCI controller.#Add by Webee2.5.2 移植archarmplat-samsung目录下的Kconfig打开archarmplat-samsung目录下的Kconfig,在S5P_DEV_USB_EHCI后面添加S5P_DEV_USB_OHCI的配置支持,修改后如下:#Add by Webeeconfig S5P_DEV_USB_OHCIboolhelpCompile in platform device definition for USB OHCI#Add by Webee2.5.3 移植driversusb目录下的Kconfig在内核目录下输入make menuconfig配置内核时,搜索S5P_DEV_USB_OHCI发现如下现象,它表明S5P_DEV_USB_OHCI的配置需要先将PLAT_S5P配置上。