Back to home page

OSCL-LXR

 
 

    


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