Commit | Line | Data |
---|---|---|
25aa5548 AS |
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. | |
14 | ||
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. | |
22 | ||
23 | For example: To force the high-speed device attached to | |
24 | port 4 on bus 2 to run at full speed: | |
25 | ||
26 | echo 4 >/sys/bus/usb/devices/usb2/../companion | |
27 | ||
28 | To return the port to high-speed operation: | |
29 | ||
30 | echo -4 >/sys/bus/usb/devices/usb2/../companion | |
31 | ||
32 | Reading the file gives the list of ports currently forced | |
33 | to the companion controller. | |
34 | ||
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. | |
41 | ||
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). | |
46 |