-controller, sunxi_ohci: 0xffffffe000736ce8 sunxi-ohci 4200400.ohci1-controller: 4200400.ohci1-controller..., pdev->name: 4101400.ohci0-controller, sunxi_ohci: 0xffffffe000736558 [sunxi-ohci0]: Not init ohci0..., using dummy regulator sunxi-ohci 4101400.ohci0-controller: OHCI Host Controller sunxi-ohci 4101400...., pdev->name: 4101400.ohci0-controller, sunxi_ohci: 0xffffffe000736558 [sunxi-ohci0]: Not init ohci0..., using dummy regulator sunxi-ohci 4101400.ohci0-controller: OHCI Host Controller sunxi-ohci 4101400.
c,通过Makefile和Kconfig发现,s3c2410依赖于USB_OHCI_HCD_S3C2410 和 USB_OHCI_HCD,那USB_OHCI_HCD呢?...功能,只需要编译ohci-hcd.c和ohci-s3c2410.c两个文件就好了 f,通过观察,发现ohci-hcd.c和ohci-s3c2410.c的代码都很少,这原因是什么?...#include "pci-quirks.h" static void ohci_dump(struct ohci_hcd *ohci); static void ohci_stop(struct..."ohci-dbg.c" #include "ohci-mem.c" #include "ohci-q.c" g,通过观察ohci-hcd.c文件,发现其实它其实已经包括了很多其他的ohci文件...(o,r) _ohci_readl(o,r) #define ohci_writel(o,v,r) _ohci_writel(o,v,r) h,看到这里,你应该发现大部分底层操作其实也都是ohci
有了resource信息,就可以定义platform_device了: static struct platform_device ohci_device = { .name = "pxa27x-ohci....c: static struct platform_driver ohci_hcd_pxa27x_driver = { .probe = ohci_hcd_pxa27x_drv_probe, ....remove = ohci_hcd_pxa27x_drv_remove, #ifdef CONFIG_PM .suspend = ohci_hcd_pxa27x_drv_suspend, .resume...= ohci_hcd_pxa27x_drv_resume, #endif .driver = { .name = "pxa27x-ohci", }, }; 在驱动初始化函数中调用函数platform_driver_register...()注册platform_driver,需要注意的是 ohci_device结构中name元素和ohci_hcd_pxa27x_driver结构中driver.name必须是相同的,这样 在platform_driver_register
[ 1.962960] sunxi-ohci 4200400.ohci1-controller: 4200400.ohci1-controller supply drvvbus not found..., using dummy regulator [ 1.975506] sunxi-ohci 4200400.ohci1-controller: 4200400.ohci1-controller...supply hci not found, using dummy regulator [ 1.987706] sunxi-ohci 4200400.ohci1-controller: OHCI...3.964123] [sunxi-ohci0]: probe, pdev->name: 4101400.ohci0-controller, sunxi_ohci: 0xffffffe000962ee8..., using dummy regulator [ 1.975506] sunxi-ohci 4200400.ohci1-controller: 4200400.ohci1-controller
_driver = { .probe = ohci_hcd_s3c2410_drv_probe, .remove = ohci_hcd_s3c2410_drv_remove,...= ohci_hcd_s3c2410_drv_resume, */ .driver = { .owner = THIS_MODULE, .name...= "s3c2410-ohci", }, }; 在驱动初始化(ohci-hcd.c的1124行)函数中调用函数platform_driver_register()注冊该platform_driver...,须要注意的是s3c_device_usb结构中name元素和ohci_hcd_s3c2410_driver 结构中driver.name必须是同样的,这样在platform_driver_register...当注冊成功时会调用platform_driver结构元素probe函数指针,这里就是ohci_hcd_s3c2410_drv_probe開始探測载入。
: USB 1.1 'Open' Host Controller (OHCI) Driver [ 1.430191] sunxi-ohci: OHCI SUNXI driver [ 1.435175..., pdev->name: 4200400.ohci1-controller, sunxi_ohci: 0xffffffe000a14370 [ 1.457784] sunxi-ohci 4200400...] sunxi-ohci 4200400.ohci1-controller: 4200400.ohci1-controller supply hci not found, using dummy regulator...[ 1.482492] sunxi-ohci 4200400.ohci1-controller: OHCI Host Controller [ 1.489743] sunxi-ohci..., pdev->name: 4101400.ohci0-controller, sunxi_ohci: 0xffffffe000a13fa8 [ 2.632060] [sunxi-ohci0]:
-controller]: sunxi_usb_enable_ohci [ 46.149713] [sunxi-ohci0]: probe, pdev->name: 4101000.ohci0-controller..., sunxi_ohci: 0xc0a7d76c [ 46.159716] sunxi-ehci 4101000.ehci0-controller: ehci_irq: highspeed device...connect [ 46.168748] sunxi-ohci 4101000.ohci0-controller: SW USB2.0 'Open' Host Controller (OHCI)...Driver [ 46.178753] sunxi-ohci 4101000.ohci0-controller: new USB bus registered, assigned bus number...2 [ 46.188518] sunxi-ohci 4101000.ohci0-controller: irq 312, io mem 0x00000000 [ 46.270548] hub
负责加载内核模块的程序 modprobe 和 insmod 从 /etc/modprobe.d 下的配置文件中读取加载顺序,例如,如果 USB 驱动程序 (ehci_hcd、ohci_hcd 和 uhci_hcd...) 被构建为模块,则必须按照先加载 echi_hcd,再加载 ohci_hcd 和 uhci_hcd 的正确顺序,才能避免引导时出现警告信息。...d /etc/modprobe.d cat > /etc/modprobe.d/usb.conf << "EOF" # Begin /etc/modprobe.d/usb.conf install ohci_hcd.../sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true install uhci_hcd /sbin/modprobe ehci_hcd
device bus */ #define VXB_BUSID_USB_HOST_EHCI 11 /* EHCI Bus Type */ #define VXB_BUSID_USB_HOST_OHCI...12 /* OHCI Bus Type */ #define VXB_BUSID_USB_HOST_UHCI 13 /* UHCI Bus Type */ #define
: USB 1.1 'Open' Host Controller (OHCI) Driver [ 1.813010] sunxi-ohci: OHCI SUNXI driver [ 1.817936...source [ 1.830200] [sunxi-ohci0]: probe, pdev->name: 4101400.ohci0-controller, sunxi_ohci: 0xc0b60228...[ 1.839874] [sunxi-ohci0]: Not init ohci0 [ 1.844605] get ohci1-controller wakeup-source is fail...pdev->name: 4200400.ohci1-controller, sunxi_ohci: 0xc0b60748 [ 1.866728] sunxi-ohci 4200400.ohci1...4200400.ohci1-controller: OHCI Host Controller [ 1.886249] sunxi-ohci 4200400.ohci1-controller: new
如果将 USB 设备(ehci_hcd、ohci_hcd 和 uhci_hcd) 编译为模块,则需要此文件,这样它们就会以正确的顺序加载。...ehci_hcd 需要在 ohci_hcd 和 uhci_hcd 之前加载,否则在系统启动过程中将会输出警告。...d /etc/modprobe.d cat > /etc/modprobe.d/usb.conf << "EOF" # Begin /etc/modprobe.d/usb.conf install ohci_hcd.../sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true install uhci_hcd /sbin/modprobe ehci_hcd
>; resets = , ; status...= "okay"; }; ohci0: usb@01c1a400 { compatible = "...allwinner,sun8i-v3s-ohci", "generic-ohci"; reg = ;...>, ; resets = , ; status = "okay"; }; }; 以太网 直接引用DTSI文件中的emac
[ 3.606862] [sunxi-ohci0]: probe, pdev->name: 4101000.ohci0-controller, sunx0 [ 3.617317] [sunxi-ohci0....ohci1-controller supply drvvbus not found, using dummy rr [ 3.659796] sunxi-ohci 4201000.ohci1-controller..., ass1 [ 3.679348] sunxi-ohci 4201000.ohci1-controller: irq 252, io mem 0x00000040 [ 3.751307...[ 1.596666] [sunxi-ohci0]: probe, pdev->name: 4101000.ohci0-controller, sunx0 [ 1.607120] [sunxi-ohci0....ohci1-controller supply drvvbus not found, using dummy rr [ 1.649607] sunxi-ohci 4201000.ohci1-controller
[AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:12.1 USB controller: Advanced Micro Devices, Inc....[AMD/ATI] SB7x0 USB OHCI1 Controller 00:12.2 USB controller: Advanced Micro Devices, Inc....[AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:13.1 USB controller: Advanced Micro Devices, Inc....[AMD/ATI] SB7x0 USB OHCI1 Controller 00:13.2 USB controller: Advanced Micro Devices, Inc....[AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller 00:18.0 Host bridge: Advanced Micro Devices, Inc.
Gen1) – SuperSpeed,理论速率为5.0Gb/s,物理层采用8b/10b编码方式,即理论数据速率4Gb/s,实际速率还要扣除协议开销 USB 3.1 Gen2 - 理论速率为10Gb/s OHCI...硬件复杂,驱动相对简单,主要用于非x86的USB UHCI,Universal HostController Interface,Intel主导,Intel和VIA使用,USB 1.0、1.1接口标准,与OHCI...仅提供USB2.0的HighSpeed功能,依靠UHCI或OHCI来提供对FullSpeed或LowSpeed设备的支持 xHCI,eXtensibleHost Controller Interface
[AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller00:12.1 USB controller: Advanced Micro Devices, Inc....[AMD/ATI] SB7x0 USB OHCI1 Controller00:12.2 USB controller: Advanced Micro Devices, Inc....[AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller00:13.1 USB controller: Advanced Micro Devices, Inc....[AMD/ATI] SB7x0 USB OHCI1 Controller00:13.2 USB controller: Advanced Micro Devices, Inc....[AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller00:18.0 Host bridge: Advanced Micro Devices, Inc.
USB 设备控制器 HCI Host Controller Interface,主机控制器接口 EHCI Enhanced Host Controller Interface,增强型主机控制器接口 OHCI...:ohci0-controller@0x05101400 { compatible = "allwinner,sunxi-ohci0"; reg = <0x0 0x05101000 0x0...:ohci1-controller@0x05200400 { compatible = "allwinner,sunxi-ohci1"; reg = <0x0 0x05200000 0x0...-controller/ohci_enable 加载主机驱动 通过下述命令找到主机驱动节点及对应路径 find -name ehci_enable find -name ohci_enable 然后根据上述结果...-controller/ohci_enable 若为0,则没有加载Host驱动。
领取专属 10元无门槛券
手把手带您无忧上云