On Tue, 2016-04-19 at 17:44 +0800, Peter Chen wrote: > Hi all, > > When I review the patch [1] for adding companion controller support for > OTG framework, I am puzzled several concepts, like shared hcd and > companion controller, companion hcd, companion port, would someone > please explain them? And why EHCI/OHCI do not use shared hcd, but > xHCI uses it? Thanks. > > [1] http://www.spinics.net/lists/linux-usb/msg139344.html Your question is a bit unspecific. A book on fundamentals might be helpful. In short, some HCDs are limited in the speeds they can operate at. Obviously they cannot operate at the higher speeds of younger busses, but EHCI can operate only at high speed. If the port is required to operate at lower speed, it is switched over to a companion controller. XHCI can operate at all speeds, to allow for virtualization, but in software we pretend that there is a second bus for slower than SuperSpeed. HTH Oliver -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html