Hello all,
I am currently starting to port the Linux drivers necessary to get USB (both Host and OTG) working on the USB armory. Given my current schedule I hope to have something working by the end of the month (or at least that is my goal).
First off, some notes from my investigation. The USB armory (and in general imx53) uses the Chipidea USB HCD driver in Linux. Confusingly, this is not the 'fsl' driver that I was originally looking at as that is for PPC arch only (even though uBoot calls it the 'fsl' driver, I guess because the register layout is the same).
Concretely, this means I need to bring the 'drivers/usb/chipidea' directory into the DDE Linux repo. The actual driver entry point is in 'ci_hdrc_imx.c' (the same driver as imx27). The imx53 has a built-in PHY and no IOMUX pins for both the host or OTG controller, which is nice.
For host only functionality, there should be no special hardware initialisation necessary beyound a bus reset, because mainline uBoot seems to include the necessary bits to initialise the clocks and the controller by default (not tested though).
For OTG functionality on the controller side it should just be changing the mode and the register base to the OTG controller. I'm not sure yet whether it's possible just to use the OTG controller for both the host and device mode though according to the TRM it should be possible.
Is anybody else working on supporting the USB armory USB currently (just to make sure)?
My bigger question is of course - what shall be done about the USB gadgets necessary to have things like CDC ethernet or serial working. Of course we can port them from Linux initially but I guess because some of them will be simple (? like serial, hopefully) it would make perhaps make sense to make a native Genode port. But I have not yet thought about this in depth because I want to get the controller working first.
The Wandboard uses the same USB driver but it needs some code to control the PHY and I don't know about the pin muxing.
Vladimir