Merge tag 'v3.3.7' into 3.3/master
[zen-stable.git] / Documentation / ABI / testing / sysfs-bus-pci-drivers-ehci_hcd
blob60c60fa624b2a063ea762d47f28b87847d041550
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.
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.
23                 For example: To force the high-speed device attached to
24                 port 4 on bus 2 to run at full speed:
26                         echo 4 >/sys/bus/usb/devices/usb2/../companion
28                 To return the port to high-speed operation:
30                         echo -4 >/sys/bus/usb/devices/usb2/../companion
32                 Reading the file gives the list of ports currently forced
33                 to the companion controller.
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.
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).