0001 What: /sys/bus/pci/drivers/ehci_hcd/.../companion
0002 /sys/bus/usb/devices/usbN/../companion
0003 Date: January 2007
0004 KernelVersion: 2.6.21
0005 Contact: Alan Stern <stern@rowland.harvard.edu>
0006 Description:
0007 PCI-based EHCI USB controllers (i.e., high-speed USB-2.0
0008 controllers) are often implemented along with a set of
0009 "companion" full/low-speed USB-1.1 controllers. When a
0010 high-speed device is plugged in, the connection is routed
0011 to the EHCI controller; when a full- or low-speed device
0012 is plugged in, the connection is routed to the companion
0013 controller.
0014
0015 Sometimes you want to force a high-speed device to connect
0016 at full speed, which can be accomplished by forcing the
0017 connection to be routed to the companion controller.
0018 That's what this file does. Writing a port number to the
0019 file causes connections on that port to be routed to the
0020 companion controller, and writing the negative of a port
0021 number returns the port to normal operation.
0022
0023 For example: To force the high-speed device attached to
0024 port 4 on bus 2 to run at full speed::
0025
0026 echo 4 >/sys/bus/usb/devices/usb2/../companion
0027
0028 To return the port to high-speed operation::
0029
0030 echo -4 >/sys/bus/usb/devices/usb2/../companion
0031
0032 Reading the file gives the list of ports currently forced
0033 to the companion controller.
0034
0035 Note: Some EHCI controllers do not have companions; they
0036 may contain an internal "transaction translator" or they
0037 may be attached directly to a "rate-matching hub". This
0038 mechanism will not work with such controllers. Also, it
0039 cannot be used to force a port on a high-speed hub to
0040 connect at full speed.
0041
0042 Note: When this file was first added, it appeared in a
0043 different sysfs directory. The location given above is
0044 correct for 2.6.35 (and probably several earlier kernel
0045 versions as well).
0046