# 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: The device tree bindings for the 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:
  - compatible
  - 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>;
            };
        };
    };
