| Alan Stern | 25aa554 | 2011-09-14 12:33:16 -0400 | [diff] [blame] | 1 | What:		/sys/bus/pci/drivers/ehci_hcd/.../companion | 
|  | 2 | /sys/bus/usb/devices/usbN/../companion | 
|  | 3 | Date:		January 2007 | 
|  | 4 | KernelVersion:	2.6.21 | 
|  | 5 | Contact:	Alan Stern <stern@rowland.harvard.edu> | 
|  | 6 | Description: | 
|  | 7 | PCI-based EHCI USB controllers (i.e., high-speed USB-2.0 | 
|  | 8 | controllers) are often implemented along with a set of | 
|  | 9 | "companion" full/low-speed USB-1.1 controllers.  When a | 
|  | 10 | high-speed device is plugged in, the connection is routed | 
|  | 11 | to the EHCI controller; when a full- or low-speed device | 
|  | 12 | is plugged in, the connection is routed to the companion | 
|  | 13 | controller. | 
|  | 14 |  | 
|  | 15 | Sometimes you want to force a high-speed device to connect | 
|  | 16 | at full speed, which can be accomplished by forcing the | 
|  | 17 | connection to be routed to the companion controller. | 
|  | 18 | That's what this file does.  Writing a port number to the | 
|  | 19 | file causes connections on that port to be routed to the | 
|  | 20 | companion controller, and writing the negative of a port | 
|  | 21 | number returns the port to normal operation. | 
|  | 22 |  | 
|  | 23 | For example: To force the high-speed device attached to | 
|  | 24 | port 4 on bus 2 to run at full speed: | 
|  | 25 |  | 
|  | 26 | echo 4 >/sys/bus/usb/devices/usb2/../companion | 
|  | 27 |  | 
|  | 28 | To return the port to high-speed operation: | 
|  | 29 |  | 
|  | 30 | echo -4 >/sys/bus/usb/devices/usb2/../companion | 
|  | 31 |  | 
|  | 32 | Reading the file gives the list of ports currently forced | 
|  | 33 | to the companion controller. | 
|  | 34 |  | 
|  | 35 | Note: Some EHCI controllers do not have companions; they | 
|  | 36 | may contain an internal "transaction translator" or they | 
|  | 37 | may be attached directly to a "rate-matching hub".  This | 
|  | 38 | mechanism will not work with such controllers.  Also, it | 
|  | 39 | cannot be used to force a port on a high-speed hub to | 
|  | 40 | connect at full speed. | 
|  | 41 |  | 
|  | 42 | Note: When this file was first added, it appeared in a | 
|  | 43 | different sysfs directory.  The location given above is | 
|  | 44 | correct for 2.6.35 (and probably several earlier kernel | 
|  | 45 | versions as well). | 
|  | 46 |  |