# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/renesas,usb3-peri.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas USB 3.0 Peripheral controller

maintainers:
  - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>

properties:
  compatible:
    items:
      - enum:
          - renesas,r8a774a1-usb3-peri # RZ/G2M
          - renesas,r8a774b1-usb3-peri # RZ/G2N
          - renesas,r8a774c0-usb3-peri # RZ/G2E
          - renesas,r8a774e1-usb3-peri # RZ/G2H
          - renesas,r8a7795-usb3-peri  # R-Car H3
          - renesas,r8a7796-usb3-peri  # R-Car M3-W
          - renesas,r8a77961-usb3-peri # R-Car M3-W+
          - renesas,r8a77965-usb3-peri # R-Car M3-N
          - renesas,r8a77990-usb3-peri # R-Car E3
      - const: renesas,rcar-gen3-usb3-peri

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

  phys:
    maxItems: 1

  phy-names:
    const: usb

  power-domains:
    maxItems: 1

  resets:
    maxItems: 1

  usb-role-switch:
    $ref: /schemas/types.yaml#/definitions/flag
    description: Support role switch.

  companion:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: phandle of a companion.

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    description: |
      any connector to the data bus of this controller should be modelled
      using the OF graph bindings specified, if the "usb-role-switch"
      property is used.

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description: High Speed (HS) data bus.

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: Super Speed (SS) data bus.

    required:
      - port@0
      - port@1

required:
  - compatible
  - interrupts
  - clocks

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/r8a774c0-cpg-mssr.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/power/r8a774c0-sysc.h>

    usb3_peri0: usb@ee020000 {
        compatible = "renesas,r8a774c0-usb3-peri", "renesas,rcar-gen3-usb3-peri";
        reg = <0xee020000 0x400>;
        interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&cpg CPG_MOD 328>;
        companion = <&xhci0>;
        usb-role-switch;

        ports {
                #address-cells = <1>;
                #size-cells = <0>;
                port@0 {
                        reg = <0>;
                        usb3_hs_ep: endpoint {
                                remote-endpoint = <&hs_ep>;
                        };
                };
                port@1 {
                        reg = <1>;
                        usb3_role_switch: endpoint {
                                remote-endpoint = <&hd3ss3220_out_ep>;
                        };
                };
        };
    };
