# 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:
    contains:
      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.
    items:
      - minimum: 1
        maximum: 255

  "#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>;
            };
        };
    };
