mini6410 2.6.38移植 USB

发布时间:2024-08-12  

一、首先是U盘得支持。
1、vi arch/arm/mach-s3c64xx/mach-mini6410.c
124行增加
/* Initializes OTG Phy. to output 48M clock */
void s3c_otg_phy_config(int enable) {
u32 val;
if (enable) {
__raw_writel(0x0, S3C_PHYPWR); /* Power up */
val = __raw_readl(S3C_PHYCLK);
val &= ~S3C_PHYCLK_CLKSEL_MASK;
__raw_writel(val, S3C_PHYCLK);
__raw_writel(0x1, S3C_RSTCON);
udelay(5);
__raw_writel(0x0, S3C_RSTCON); /* Finish the reset */
udelay(5);
} else {
__raw_writel(0x19, S3C_PHYPWR); /* Power down */
}
}
2、vi drivers/usb/host/ohci-s3c2410.c
修改方法
@@ -25,10 +25,14 @@
#define valid_port(idx) ((idx) == 1 || (idx) == 2)
+#ifdef CONFIG_MACH_MINI6410
+extern void s3c_otg_phy_config(int enable);
+#endif
+
/* clock device associated with the hcd */
static struct clk *clk;
-static struct clk *usb_clk;
+static struct clk *otg_clk, *usb_clk;
/* forward definitions */
@@ -47,6 +51,11 @@
dev_dbg(&dev->dev, "s3c2410_start_hc:n");
+ clk_enable(otg_clk);
+#ifdef CONFIG_MACH_MINI6410
+ s3c_otg_phy_config(1);
+#endif
+
clk_enable(usb_clk);
mdelay(2); /* let the bus clock stabilise */
@@ -79,6 +88,7 @@
clk_disable(clk);
clk_disable(usb_clk);
+ clk_disable(otg_clk);
}
/* ohci_s3c2410_hub_status_data
@@ -375,6 +385,13 @@
goto err_clk;
}
+ otg_clk = clk_get(&dev->dev, "otg");
+ if (IS_ERR(otg_clk)) {
+ dev_err(&dev->dev, "cannot get otg clockn");
+ retval = -ENOENT;
+ goto err_otg;
+ }
+
s3c2410_start_hc(dev, hcd);
hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len);
@@ -395,6 +412,10 @@
err_ioremap:
s3c2410_stop_hc(dev);
iounmap(hcd->regs);
+
+ clk_put(otg_clk);
+
+ err_otg:
clk_put(usb_clk);
err_clk:
3、make menuconfig
Device Drivers --->
SCSI device support --->
<*> SCSI device support
<*> SCSI disk support
<*> SCSI generic support
USB support
<*> Support for Host-side USB
[*] USB device filesystem (DEPRECATED)
<*> USB Monitor
<*> OHCI HCD support
<*> USB Mass Storage support
File systems --->
DOS/FAT/NT Filesystems --->
<*> MSDOS fs support
<*> VFAT (Windows-95) fs support
(936) Default codepage for FAT
(cp936) Default iocharset for FAT
启动之后插入u盘显示
[root@FriendlyARM /]# usb 1-1.2: new full speed USB device using s3c2410-ohci and address 3
usb 1-1.2: New USB device found, idVendor=1043, idProduct=8012
usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1.2: Product: USB Flash Drive
usb 1-1.2: Manufacturer: Generic
uba: uba4
挂载 mount /dev/uba4 /mnt后即能看到u盘里的数据了
二、说说usb摄像头的和usb-wifi的支持吧,这两个东西得看你的设备是什么芯片,
先说usb摄像头吧,关于摄像头的驱动驱动配置比较简单,只是关于驱动接口有两种版本,分别
是V4L和V4L2,从2.6以后以后有了V4L2,我的linux2.6.38已经看不到关于v4l支持了,
在linux2.6.30.4的版本中我们还能看到

中有Video For linux API 1的支持,但38的版本却看不到了,所以 像gspcav1-20071224.tar.gz这样的v4l接口的驱动就加不进去了,
而很多V4l接口的usb测试程序也就用不了了,网上很少有V4l2的测试程序,所以友善也就没有开源的他的USB摄像头程序了(个人理解,不知是否正确)
既然这样我们就学友善的,按V4l2的来配置吧
我的摄像头芯片是sunplus凌阳的SPCA2000C的,支持UVC,支持UVC的就可以不用管是什么芯片了,选上一个就行
Device Drivers --->
<*> Multimedia support --->
<*> Video For Linux
[*] Video capture adapters --->
[*] V4L USB devices --->
<*> USB Video Class (UVC) 选上这个就行了
make zImage后启动,插上usb摄像头,显示
[root@FriendlyARM /]# usb 1-1.1: new full speed USB device using s3c2410-ohci and address 4
usb 1-1.1: New USB device found, idVendor=04fc, idProduct=2003
usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1.1: Product: Sunplus Camera
usb 1-1.1: Manufacturer: Sunplus Camera
usb 1-1.1: SerialNumber: CN0316-MM00-OV03-VH-R61.01.00
uvcvideo: Found UVC 1.00 device Sunplus Camera (04fc:2003)
input: Sunplus Camera as /devices/platform/s3c2410-ohci/usb1/1-1/1-1.1/1-1.1:1.0/input/input1
在/dev/多了个video0,
测试的话用mjpg-streamer就能够测试了具体看友善光盘A中的 开发文档和教程 中的 专题04 通过Web远程浏览并控制Mini6410上的摄像头

此外,我还有个中星微的芯片是ZC0301的摄像头,它的配置是
Device Drivers --->
<*> Multimedia support --->
<*> Video For Linux
[*] Video capture adapters --->
<*> GSPCA based webcams --->
<*> ZC3XX USB Camera Driver
make zImage插上后显示
[root@FriendlyARM /]# usb 1-1.1: USB disconnect, address 4
usb 1-1.1: new full speed USB device using s3c2410-ohci and address 5
usb 1-1.1: New USB device found, idVendor=0ac8, idProduct=301b
usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1.1: Product: PC Camera
usb 1-1.1: Manufacturer: Vimicro Corp.
gspca: probing 0ac8:301b
zc3xx: probe 2wr ov vga 0x0000
zc3xx: probe sensor -> 0011
zc3xx: Find Sensor HV7131R
input: zc3xx as /devices/platform/s3c2410-ohci/usb1/1-1/1-1.1/input/input2
gspca: video0 created
它采集到得数据直接是jpeg的,所以不能用mjpg-stream来测试,友善修改后mjpg-stream要求采集的数据是yuv货mjpg的,
我找了个基于v4l2的测试程序,看http://hi.baidu.com/aokikyon/blog/item/6e4e622c3e6f9be18b13993f.html,它将采集到数据直接存到了jpeg文件里面
见附件也行


三、说说usb-wifi的驱动
我的usb-wifi芯片是Ralink的RT2571WF,这个我是拆开看的,所以它的配置是
--- Wireless
<*> cfg80211 - wireless configuration API
<*> Generic IEEE 802.11 Networking Stack (mac80211)
[*] Wireless LAN --->
<*> Ralink driver support --->
<*> Ralink rt2501/rt73 (USB) support
然后make zImage后显示
[root@FriendlyARM /]# usb 1-1.2: new full speed USB device using s3c2410-ohci and address 3
usb 1-1.2: New USB device found, idVendor=148f, idProduct=2573
usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
接着输入命令
0.ifconfig wlan0 up
1.列出区域内的无线网络
iwlist wlan0 scan
2.连接到网络
iwconfig wlan0 essid "MyHome" key s:12345
这个密码是无线路由的密码,如果没有就不用输入了。由于无线路由的密码形式有很多种,有wep和wpa什么的。
我们用的事wep,所以在输入key后加个s。
3.设置ip
ifconfig wlan0 10.10.86.91
3.启动网卡
ifconfig wlan0 up

这样就能够ping通了
总之,USB设备内核已经做的很多驱动,我们要做的是根据芯片选上对应的配置。
友善里面为USB做的驱动有两个,一个是usb转串口,一个是3g上网卡,这两个驱动是要自己加的,源码在
drivers/usb/serial/3g_devices.c
drivers/usb/serial/pl2303.c


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    类似,举一反三即可。 2.1 DAPLink下载器识别 将开发板通过USB线与计算机连接,并打开开发板供电开关,计算机将自动识别下载器。如下图所示,分别识别出:USB串行设备(COM3),USB大容量存储设备......
    用于实现我们的读写数据的最终目标。在开发过程中这其实是重点工作,但在这篇文章中他不是重点。我们主要是要实现USB主机库面向大容量存储设备的移植问题。 2、USB库的移植   在这个产品中使用的是STM32F407作为......
    生产规模。(产品提供情况可能发生更改,恕不另行通知。) [注释]:SATA(串行 ATA)是支持高速串行通信的存储接口规范,专门为硬盘驱动器等需要高速数据传输的大容量存储设备而开发。 (备注......
    传输、中断传输。内置固件处理海量存储设备的专用通讯协议,支持Bulk-Only传输协议和SCSI,UFI,RBC或等效命令集的USB存储设备。图4为USB控制接口模块硬件连接示意图,CH375通过UART串口......
    步传输(Isochronous),使用块传输方式时的速度可达1 Mb/s,同步传输的速度可达1 Mb/s。他适合大多数USB设备类的设计:图像设备类、大容量存储设备类、通信设备类、打印设备类、人机接口设备......
    网卡连接到主机时,USB缺省工作方式是USB存储设备,在Linux下显示为CDROM和USB Storage两个设备,拨号需要找到USB Serial设备。首先需要安装好USB Serial驱动,其次......
    管理,便捷操作 高效办公不仅要求硬件性能强大,更需软件层面的便捷管理。F6-424 max搭载了铁威马全新研发的TOS6操作系统,界面友好,操作简便。用户可以通过Web浏览器或移动APP轻松管理存储设备......
    口可以实现USB1.1协议。随着大容量、小体积U盘的问世,更多的用户都选择使用该存储介质。 当今的USB技术使得各种能够自行识别的外部设备与设备终端连接,并自行装载驱动程序以运行新的装置。而一......
    工业协会(SNIA)的批准。目前,技术小组正定义和指定分区存储设备的通用用例,以及主机/设备架构和编程模型。 此外,本次合作有望成为扩展基于分区(如ZNS、SMR)的设备接口,和具有增强数据放置和处理技术的下一代大容量存储设备......
    (网络附加存储)设备以其大容量、易共享的特性,成为了许多家庭用户的选择。然而,NAS设备的盘位紧张问题,也让不少用户感到头疼。今天,我们就来探讨如何通过铁威马D4-320硬盘柜,拯救NAS紧张......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>