USB HCD driver

Simon Arlott simon at fire.lp0.eu
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?

http://dl.dropbox.com/u/3669512/DWC_otg_2.94a.tgz 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: http://s85.org/aygDp9tm:view

You'd need a recent kernel that boots... git://github.com/lp0/linux
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://github.com/bootc/linux 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