|
@@ -0,0 +1,46 @@
|
|
|
+What: /sys/bus/pci/drivers/ehci_hcd/.../companion
|
|
|
+ /sys/bus/usb/devices/usbN/../companion
|
|
|
+Date: January 2007
|
|
|
+KernelVersion: 2.6.21
|
|
|
+Contact: Alan Stern <stern@rowland.harvard.edu>
|
|
|
+Description:
|
|
|
+ PCI-based EHCI USB controllers (i.e., high-speed USB-2.0
|
|
|
+ controllers) are often implemented along with a set of
|
|
|
+ "companion" full/low-speed USB-1.1 controllers. When a
|
|
|
+ high-speed device is plugged in, the connection is routed
|
|
|
+ to the EHCI controller; when a full- or low-speed device
|
|
|
+ is plugged in, the connection is routed to the companion
|
|
|
+ controller.
|
|
|
+
|
|
|
+ Sometimes you want to force a high-speed device to connect
|
|
|
+ at full speed, which can be accomplished by forcing the
|
|
|
+ connection to be routed to the companion controller.
|
|
|
+ That's what this file does. Writing a port number to the
|
|
|
+ file causes connections on that port to be routed to the
|
|
|
+ companion controller, and writing the negative of a port
|
|
|
+ number returns the port to normal operation.
|
|
|
+
|
|
|
+ For example: To force the high-speed device attached to
|
|
|
+ port 4 on bus 2 to run at full speed:
|
|
|
+
|
|
|
+ echo 4 >/sys/bus/usb/devices/usb2/../companion
|
|
|
+
|
|
|
+ To return the port to high-speed operation:
|
|
|
+
|
|
|
+ echo -4 >/sys/bus/usb/devices/usb2/../companion
|
|
|
+
|
|
|
+ Reading the file gives the list of ports currently forced
|
|
|
+ to the companion controller.
|
|
|
+
|
|
|
+ Note: Some EHCI controllers do not have companions; they
|
|
|
+ may contain an internal "transaction translator" or they
|
|
|
+ may be attached directly to a "rate-matching hub". This
|
|
|
+ mechanism will not work with such controllers. Also, it
|
|
|
+ cannot be used to force a port on a high-speed hub to
|
|
|
+ connect at full speed.
|
|
|
+
|
|
|
+ Note: When this file was first added, it appeared in a
|
|
|
+ different sysfs directory. The location given above is
|
|
|
+ correct for 2.6.35 (and probably several earlier kernel
|
|
|
+ versions as well).
|
|
|
+
|