47 lines · plain
1What: /sys/bus/pci/drivers/ehci_hcd/.../companion2 /sys/bus/usb/devices/usbN/../companion3Date: January 20074KernelVersion: 2.6.215Contact: Alan Stern <stern@rowland.harvard.edu>6Description:7 PCI-based EHCI USB controllers (i.e., high-speed USB-2.08 controllers) are often implemented along with a set of9 "companion" full/low-speed USB-1.1 controllers. When a10 high-speed device is plugged in, the connection is routed11 to the EHCI controller; when a full- or low-speed device12 is plugged in, the connection is routed to the companion13 controller.14 15 Sometimes you want to force a high-speed device to connect16 at full speed, which can be accomplished by forcing the17 connection to be routed to the companion controller.18 That's what this file does. Writing a port number to the19 file causes connections on that port to be routed to the20 companion controller, and writing the negative of a port21 number returns the port to normal operation.22 23 For example: To force the high-speed device attached to24 port 4 on bus 2 to run at full speed::25 26 echo 4 >/sys/bus/usb/devices/usb2/../companion27 28 To return the port to high-speed operation::29 30 echo -4 >/sys/bus/usb/devices/usb2/../companion31 32 Reading the file gives the list of ports currently forced33 to the companion controller.34 35 Note: Some EHCI controllers do not have companions; they36 may contain an internal "transaction translator" or they37 may be attached directly to a "rate-matching hub". This38 mechanism will not work with such controllers. Also, it39 cannot be used to force a port on a high-speed hub to40 connect at full speed.41 42 Note: When this file was first added, it appeared in a43 different sysfs directory. The location given above is44 correct for 2.6.35 (and probably several earlier kernel45 versions as well).46 47