Hello all,
After a long time in idle state, came out with a new and really nice feature that you can already see in linux-omap tree. Omap boards are using musb core to handle usb tasks in host, peripheral and otg modes.
What I've being doing since mid-February this year, is supporting USB OTG in tusb6010 usb controller. This controller is used in Nokia N800 devices and now, they can become Host in an otg session.
OTG stands for On-the-go, and that means we can switch roles between host and peripheral modes by using the correct usb cable. I'll try to setup a demo and make a video to show you all how the whole thing should work, but summarizing the whole feature, N800 can become a USB mass storage device and a USB Host Controller in an otg session.
In order for N800 to understand whenever it should be host or peripheral, we use and extra pin in usb connector called "id pin". When id pin is grounded, N800 switches to host role and it's floating, it stays in peripheral role (peripheral role is always the starting mode - b_idle).
For more details, everybody should look at OTG Supplement Revision 1.3, but that's mostly what happens.
Whenever I have more time, I'll setup a demo and post a video here
See y'all