Hisilicon Usb 1.0 Driver -
cat /sys/kernel/debug/usb/ohci/status # Show ED/TD lists echo 1 > /sys/module/ohci_hcd/parameters/debug # Enable verbose OHCI logging
&usb compatible = "hisilicon,dwc2"; maximum-speed = "full-speed"; phys = <&usb_phy>; ; The Hisilicon USB 1.0 driver is rugged but unforgiving. Most “random disconnects” or “device not recognized” issues stem from power sequencing, clock stability, or OHCI quirk mismatches. Start by verifying hardware timing with an oscilloscope, then instrument the OHCI interrupt handler—you'll likely find the fix in less than 50 lines of kernel code. hisilicon usb 1.0 driver
ohci_hcd: USB 1.0 Host Controller ohci_hcd: new USB bus registered, assigned bus number 1 ohci_hcd: irq 67, io mem 0x10120000 hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected If you see port status 0x0100 but no device—check pull-up resistors or Vbus. ohci_hcd: USB 1
While USB 2.0 and 3.x dominate modern computing, USB 1.1 (and occasionally 1.0) remains a reality in deeply embedded, low-power, or cost-sensitive Hisilicon-based designs (e.g., Hi35xx series, older Hi3xxx IoT chips). This post covers the architecture, typical issues, and debugging of the in Linux kernel environments (2.6.x to 4.x). 1. Driver Architecture Overview Hisilicon’s USB 1.0 implementation is typically OHCI-compliant (Open Host Controller Interface) for full/low-speed modes, sometimes paired with an EHCI controller for high-speed—but in pure 1.0-only setups, only OHCI is used. or internal documentation.
Share your Hisilicon USB debugging experience below. This post assumes Linux kernel 3.10+ with OHCI support. For u-boot or RTOS drivers, the register-level programming model follows the OHCI specification but uses Hisilicon’s proprietary glue layer.
Here’s a solid technical post about the Hisilicon USB 1.0 driver, written in a style suitable for a developer’s blog, forum (like Stack Overflow or Reddit r/embedded), or internal documentation. Introduction