| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/usb/usb-device.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: Generic USB Device
- maintainers:
- - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
- description: |
- Usually, we only use device tree for hard wired USB device.
- The reference binding doc is from:
- http://www.devicetree.org/open-firmware/bindings/usb/usb-1_0.ps
- Four types of device-tree nodes are defined: "host-controller nodes"
- representing USB host controllers, "device nodes" representing USB devices,
- "interface nodes" representing USB interfaces and "combined nodes"
- representing simple USB devices.
- A combined node shall be used instead of a device node and an interface node
- for devices of class 0 or 9 (hub) with a single configuration and a single
- interface.
- A "hub node" is a combined node or an interface node that represents a USB
- hub.
- properties:
- compatible:
- pattern: "^usb[0-9a-f]{1,4},[0-9a-f]{1,4}$"
- description: Device nodes or combined nodes.
- "usbVID,PID", where VID is the vendor id and PID the product id.
- The textual representation of VID and PID shall be in lower case
- hexadecimal with leading zeroes suppressed. The other compatible
- strings from the above standard binding could also be used,
- but a device adhering to this binding may leave out all except
- for "usbVID,PID".
- reg:
- description: the number of the USB hub port or the USB host-controller
- port to which this device is attached. The range is 1-255.
- maxItems: 1
- "#address-cells":
- description: should be 1 for hub nodes with device nodes,
- should be 2 for device nodes with interface nodes.
- enum: [1, 2]
- "#size-cells":
- const: 0
- patternProperties:
- "^interface@[0-9a-f]{1,2}(,[0-9a-f]{1,2})$":
- type: object
- description: USB interface nodes.
- The configuration component is not included in the textual
- representation of an interface-node unit address for configuration 1.
- properties:
- compatible:
- pattern: "^usbif[0-9a-f]{1,4},[0-9a-f]{1,4}.config[0-9a-f]{1,2}.[0-9a-f]{1,2}$"
- description: Interface nodes.
- "usbifVID,PID.configCN.IN", where VID is the vendor id, PID is
- the product id, CN is the configuration value and IN is the interface
- number. The textual representation of VID, PID, CN and IN shall be
- in lower case hexadecimal with leading zeroes suppressed.
- The other compatible strings from the above standard binding could
- also be used, but a device adhering to this binding may leave out
- all except for "usbifVID,PID.configCN.IN".
- reg:
- description: should be 2 cells long, the first cell represents
- the interface number and the second cell represents the
- configuration value.
- maxItems: 1
- required:
- - reg
- additionalProperties: true
- examples:
- # hub connected to port 1
- # device connected to port 2
- # device connected to port 3
- # interface 0 of configuration 1
- # interface 0 of configuration 2
- - |
- usb@11270000 {
- reg = <0x11270000 0x1000>;
- interrupts = <0x0 0x4e 0x0>;
- #address-cells = <1>;
- #size-cells = <0>;
- hub@1 {
- compatible = "usb5e3,608";
- reg = <1>;
- };
- device@2 {
- compatible = "usb123,4567";
- reg = <2>;
- };
- device@3 {
- compatible = "usb123,abcd";
- reg = <3>;
- #address-cells = <2>;
- #size-cells = <0>;
- interface@0 {
- compatible = "usbif123,abcd.config1.0";
- reg = <0 1>;
- };
- interface@0,2 {
- compatible = "usbif123,abcd.config2.0";
- reg = <0 2>;
- };
- };
- };
|