linux/drivers/usb/core
Johan Hovold 1a7e3948cb USB: add device-tree support for interfaces
Add OF device-tree support for USB interfaces.

USB "interface nodes" are children of USB "device nodes" and are
identified by an interface number and a configuration value:

	&usb1 { /* host controller */
		dev1: device@1 { /* device at port 1 */
			compatible = "usb1234,5678";
			reg = <1>;

			#address-cells = <2>;
			#size-cells = <0>;

			interface@0,2 { /* interface 0 of configuration 2 */
				compatible = "usbif1234,5678.config2.0";
				reg = <0 2>;
			};
		};
	};

The configuration component is not included in the textual
representation of an interface-node unit address for configuration 1:

	&dev1 {
		interface@0 {	/* interface 0 of configuration 1 */
			compatible = "usbif1234,5678.config1.0";
			reg = <0 1>;
		};
	};

When a USB device of class 0 or 9 (hub) has only a single configuration
with a single interface, a special case "combined node" is used instead
of a device node with an interface node:

	&usb1 {
		device@2 {
			compatible = "usb1234,abcd";
			reg = <2>;
		};
	};

Combined nodes are shared by the two device structures representing the
USB device and its interface in the kernel's device model.

Note that, as for device nodes, the compatible strings for interface
nodes are currently not used.

For more details see "Open Firmware Recommended Practice: Universal
Serial Bus Version 1" and the binding documentation.

Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-28 15:12:38 +01:00
..
buffer.c USB: core: move existing SPDX tags to top of the file 2017-11-03 10:12:26 +01:00
config.c USB: core: move existing SPDX tags to top of the file 2017-11-03 10:12:26 +01:00
devices.c USB: core: Remove redundant license text 2017-11-04 11:55:39 +01:00
devio.c USB/PHY patches for 4.15-rc1 2017-11-13 21:14:07 -08:00
driver.c usb: core: introduce a new usb_get_std_status() helper 2017-11-07 15:47:19 +01:00
endpoint.c USB: core: move existing SPDX tags to top of the file 2017-11-03 10:12:26 +01:00
file.c USB: core: move existing SPDX tags to top of the file 2017-11-03 10:12:26 +01:00
generic.c USB: core: move existing SPDX tags to top of the file 2017-11-03 10:12:26 +01:00
hcd-pci.c USB: core: Remove redundant license text 2017-11-04 11:55:39 +01:00
hcd.c treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
hub.c usb: core: introduce a new usb_get_std_status() helper 2017-11-07 15:47:19 +01:00
hub.h USB: core: Remove redundant license text 2017-11-04 11:55:39 +01:00
Kconfig docs-rst: fix usb cross-references 2017-04-11 14:41:29 -06:00
ledtrig-usbport.c USB: core: Remove redundant license text 2017-11-04 11:55:39 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
message.c USB: add device-tree support for interfaces 2017-11-28 15:12:38 +01:00
notify.c USB: core: move existing SPDX tags to top of the file 2017-11-03 10:12:26 +01:00
of.c USB: add device-tree support for interfaces 2017-11-28 15:12:38 +01:00
otg_whitelist.h USB: core: Remove redundant license text 2017-11-04 11:55:39 +01:00
port.c USB: core: Remove redundant license text 2017-11-04 11:55:39 +01:00
quirks.c USB: Add delay-init quirk for Corsair K70 LUX keyboards 2017-11-04 11:58:01 +01:00
sysfs.c USB/PHY patches for 4.15-rc1 2017-11-13 21:14:07 -08:00
urb.c sound updates for 4.15-rc1 2017-11-14 18:01:46 -08:00
usb-acpi.c USB: core: Remove redundant license text 2017-11-04 11:55:39 +01:00
usb.c USB: core: move existing SPDX tags to top of the file 2017-11-03 10:12:26 +01:00
usb.h USB: core: move existing SPDX tags to top of the file 2017-11-03 10:12:26 +01:00