Hi all, As there is not too much document and reference code available around, I have some confusion regarding OTG driver architecture in Linux. Here is my understanding. Please correct me if I am wrong, and more clarification is appreciated.
There will be three separate drivers: host, client, otg transceiver (for ULPI system not a really transceiver driver). User chooses what functions to use by configure kernel or selectively insert modules. If user only load host/gadget driver, the board will act as solely host/device. If the otg driver is loaded, each host/gadget driver will register themselves to the otg driver. Otg driver will use suspend() function to set both controller drivers to stop state until otg driver determines which driver to take control. OTG state machine will be maintained and accessible in otg driver only, and otg driver will use standard xhci/gadget operations to control host/client through state changes. Assume there is a role change. For device mode, it initializes hardware and waits for reset. For host mode, how to trigger reset and enumeration? If the host/client/otg use only one interrupt, should it be processed with shared irq or centralized in otg driver and designate to special handler? -- Leo Li Freescale Semiconductor [EMAIL PROTECTED] ------------------------------------------------------- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel