Documentation / devicetree / bindings / usb / renesas,usb3-peri.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
# 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:
    oneOf:
      - 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

      - items:
          - enum:
              - renesas,r9a09g011-usb3-peri # RZ/V2M
              - renesas,r9a09g055-usb3-peri # RZ/V2MA
          - const: renesas,rzv2m-usb3-peri

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1
    items:
      - description: Main clock
      - description: Register access clock

  clock-names:
    minItems: 1
    items:
      - const: axi
      - const: reg

  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

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - renesas,rzv2m-usb3-peri
    then:
      properties:
        clocks:
          minItems: 2
        clock-names:
          minItems: 2
      required:
        - clock-names
        - resets
    else:
      properties:
        clocks:
          maxItems: 1

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