125aa5548SAlan SternWhat: /sys/bus/pci/drivers/ehci_hcd/.../companion 225aa5548SAlan Stern /sys/bus/usb/devices/usbN/../companion 325aa5548SAlan SternDate: January 2007 425aa5548SAlan SternKernelVersion: 2.6.21 525aa5548SAlan SternContact: Alan Stern <stern@rowland.harvard.edu> 625aa5548SAlan SternDescription: 725aa5548SAlan Stern PCI-based EHCI USB controllers (i.e., high-speed USB-2.0 825aa5548SAlan Stern controllers) are often implemented along with a set of 925aa5548SAlan Stern "companion" full/low-speed USB-1.1 controllers. When a 1025aa5548SAlan Stern high-speed device is plugged in, the connection is routed 1125aa5548SAlan Stern to the EHCI controller; when a full- or low-speed device 1225aa5548SAlan Stern is plugged in, the connection is routed to the companion 1325aa5548SAlan Stern controller. 1425aa5548SAlan Stern 1525aa5548SAlan Stern Sometimes you want to force a high-speed device to connect 1625aa5548SAlan Stern at full speed, which can be accomplished by forcing the 1725aa5548SAlan Stern connection to be routed to the companion controller. 1825aa5548SAlan Stern That's what this file does. Writing a port number to the 1925aa5548SAlan Stern file causes connections on that port to be routed to the 2025aa5548SAlan Stern companion controller, and writing the negative of a port 2125aa5548SAlan Stern number returns the port to normal operation. 2225aa5548SAlan Stern 2325aa5548SAlan Stern For example: To force the high-speed device attached to 24*54a19b4dSMauro Carvalho Chehab port 4 on bus 2 to run at full speed:: 2525aa5548SAlan Stern 2625aa5548SAlan Stern echo 4 >/sys/bus/usb/devices/usb2/../companion 2725aa5548SAlan Stern 28*54a19b4dSMauro Carvalho Chehab To return the port to high-speed operation:: 2925aa5548SAlan Stern 3025aa5548SAlan Stern echo -4 >/sys/bus/usb/devices/usb2/../companion 3125aa5548SAlan Stern 3225aa5548SAlan Stern Reading the file gives the list of ports currently forced 3325aa5548SAlan Stern to the companion controller. 3425aa5548SAlan Stern 3525aa5548SAlan Stern Note: Some EHCI controllers do not have companions; they 3625aa5548SAlan Stern may contain an internal "transaction translator" or they 3725aa5548SAlan Stern may be attached directly to a "rate-matching hub". This 3825aa5548SAlan Stern mechanism will not work with such controllers. Also, it 3925aa5548SAlan Stern cannot be used to force a port on a high-speed hub to 4025aa5548SAlan Stern connect at full speed. 4125aa5548SAlan Stern 4225aa5548SAlan Stern Note: When this file was first added, it appeared in a 4325aa5548SAlan Stern different sysfs directory. The location given above is 4425aa5548SAlan Stern correct for 2.6.35 (and probably several earlier kernel 4525aa5548SAlan Stern versions as well). 4625aa5548SAlan Stern 47