USB HCD driver

Simon Arlott simon at
Sun Jun 3 17:56:36 EDT 2012

On 03/06/12 22:08, Greg KH wrote:
> On Sun, Jun 03, 2012 at 07:06:37PM +0100, Simon Arlott wrote:
>> I'm giving up on writing a USB HCD driver.
>> There's no specification on how to use the hardware, only a mountain of
>> documentation on the driver itself which is needlessly full of wrappers
>> making it very difficult to understand what it's actually doing.
>> This could really use some attention from someone with enough USB
>> experience to understand what the original driver is really doing in
>> order to rewrite it.
> I know a bit about USB :)
> I thought that I applied some patches recently that showed up in 3.5-rc1
> that should work for this hardware, have you checked there to see if
> that really is true or not?

I'm not sure what driver you're referring to... even the existing driver
for device mode (s3c-hsotg) doesn't appear to be named correctly.

> And if not, where would a good place for me to start be? is the most recent
version of the driver provided by Synopsys. I've not tried to run it.

The Synopsys driver on github in raspberrypi/rpi-patches was giving me
lockdep warnings and deadlocking (with full preempt turned on) and the
memory debugging was continually warning:

You'd need a recent kernel that boots... git://
tag rpi-3.5-20120529-2242 will work if you manually update the .dtb.
Unfortunately there's no SD support in that branch either so you need to
use an initrd for everything.

There's also git:// branch rpi-3.2.18 which is an
updated of the 3.1.9 version of rpi-patches. If you try to merge 3.5
into that then you need to watch out for issues with io.h and memory.h.

My rpi-usb branch needs quite a bit of cleaning up but it's able to
enable the port on the root hub. That could be a reasonable place to
start if you're only interested in HCD support. To test full OTG support
would require a Model A or a bypass of the hub included on the Model B.

> Oh, and why no documentation on the hardware, I thought we had it around
> here somewhere?

I only have what is in the Synopsys 2.94 driver archive and that mostly
documents what the driver is doing, not the hardware itself.

Simon Arlott

More information about the linux-rpi-kernel mailing list