125aa5548SAlan SternWhat:		/sys/bus/pci/drivers/ehci_hcd/.../companion
225aa5548SAlan Stern		/sys/bus/usb/devices/usbN/../companion
325aa5548SAlan SternDate:		January 2007
425aa5548SAlan SternKernelVersion:	2.6.21
525aa5548SAlan SternContact:	Alan Stern <stern@rowland.harvard.edu>
625aa5548SAlan SternDescription:
725aa5548SAlan Stern		PCI-based EHCI USB controllers (i.e., high-speed USB-2.0
825aa5548SAlan Stern		controllers) are often implemented along with a set of
925aa5548SAlan Stern		"companion" full/low-speed USB-1.1 controllers.  When a
1025aa5548SAlan Stern		high-speed device is plugged in, the connection is routed
1125aa5548SAlan Stern		to the EHCI controller; when a full- or low-speed device
1225aa5548SAlan Stern		is plugged in, the connection is routed to the companion
1325aa5548SAlan Stern		controller.
1425aa5548SAlan Stern
1525aa5548SAlan Stern		Sometimes you want to force a high-speed device to connect
1625aa5548SAlan Stern		at full speed, which can be accomplished by forcing the
1725aa5548SAlan Stern		connection to be routed to the companion controller.
1825aa5548SAlan Stern		That's what this file does.  Writing a port number to the
1925aa5548SAlan Stern		file causes connections on that port to be routed to the
2025aa5548SAlan Stern		companion controller, and writing the negative of a port
2125aa5548SAlan Stern		number returns the port to normal operation.
2225aa5548SAlan Stern
2325aa5548SAlan Stern		For example: To force the high-speed device attached to
2454a19b4dSMauro Carvalho Chehab		port 4 on bus 2 to run at full speed::
2525aa5548SAlan Stern
2625aa5548SAlan Stern			echo 4 >/sys/bus/usb/devices/usb2/../companion
2725aa5548SAlan Stern
2854a19b4dSMauro Carvalho Chehab		To return the port to high-speed operation::
2925aa5548SAlan Stern
3025aa5548SAlan Stern			echo -4 >/sys/bus/usb/devices/usb2/../companion
3125aa5548SAlan Stern
3225aa5548SAlan Stern		Reading the file gives the list of ports currently forced
3325aa5548SAlan Stern		to the companion controller.
3425aa5548SAlan Stern
3525aa5548SAlan Stern		Note: Some EHCI controllers do not have companions; they
3625aa5548SAlan Stern		may contain an internal "transaction translator" or they
3725aa5548SAlan Stern		may be attached directly to a "rate-matching hub".  This
3825aa5548SAlan Stern		mechanism will not work with such controllers.  Also, it
3925aa5548SAlan Stern		cannot be used to force a port on a high-speed hub to
4025aa5548SAlan Stern		connect at full speed.
4125aa5548SAlan Stern
4225aa5548SAlan Stern		Note: When this file was first added, it appeared in a
4325aa5548SAlan Stern		different sysfs directory.  The location given above is
4425aa5548SAlan Stern		correct for 2.6.35 (and probably several earlier kernel
4525aa5548SAlan Stern		versions as well).
4625aa5548SAlan Stern
47