I have been wondering about this for a while now. Since USB is bidirectional, is there a way to emulate a usb host in software using the client port on the c860?
I don't think that this is possible. The state machines in PXA255 usb controller are hardwired, and it is not possible to change them to support host functions (like enumeration, etc...)
But if you *really really really* want a real USB Host / OTG function in your Zaurus C7XX, I think it would be possible to add an Philips ISP1161A USB host controller
http://www.semiconductors.philips.com/pip/ISP1161ABD.htmlFor this to work, one would have to
* get a ISP1161A
* open the Zaurus (shrudder)
* Find a volume of free space (7 x 7 x 1.4 mm to put the chip)
* Identify the following signals on the main board
GND, VCC33 (power for the chip)
D0...D15 (16 bit Data Bus)
A0, A1 (two adress Lines)
RD, WR (Write / Read Control Lines)
INT (somewhere )
RESET (Reset)
CS (A unused Chip select

)
* wire them to the apropriate pins of ISP1161A (total of 23 wires)
* patch the kernel to include the OHCI interfaces
* put the usb lines somehow outside of the zaurus.
I do not say that this is easy, but I think once this works, it sould be possible to craft a mod, that is reasonably unintrusive and hides itself inside space between the Z and the large battery cover.
Problems:
* we need a memory map and details about the banking of all Zaurus C7XX models.
* we need to hijack 4 memory adresses for this
* we need a Chip Select ?
* Waranty is void...
* The connector has to be taken to the outside world somwhere...
* Power (5 volts)
Benefits:
* 12 MBit/s USB host, 12MBit/s USB Client
* all the usb hardware that is supported by linux.
Does anybody know of a super small, flat usb wifi dongle that is supported by linux?
because the ISP 1611A has *two* host ports....
Any thoughts, comments ?
tom