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

Reply via email to