1# SPDX-License-Identifier: GPL-2.0-only
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/renesas,usb3-peri.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Renesas USB 3.0 Peripheral controller
8
9maintainers:
10  - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
11
12properties:
13  compatible:
14    items:
15      - enum:
16          - renesas,r8a774a1-usb3-peri # RZ/G2M
17          - renesas,r8a774b1-usb3-peri # RZ/G2N
18          - renesas,r8a774c0-usb3-peri # RZ/G2E
19          - renesas,r8a774e1-usb3-peri # RZ/G2H
20          - renesas,r8a7795-usb3-peri  # R-Car H3
21          - renesas,r8a7796-usb3-peri  # R-Car M3-W
22          - renesas,r8a77961-usb3-peri # R-Car M3-W+
23          - renesas,r8a77965-usb3-peri # R-Car M3-N
24          - renesas,r8a77990-usb3-peri # R-Car E3
25      - const: renesas,rcar-gen3-usb3-peri
26
27  reg:
28    maxItems: 1
29
30  interrupts:
31    maxItems: 1
32
33  clocks:
34    maxItems: 1
35
36  phys:
37    maxItems: 1
38
39  phy-names:
40    const: usb
41
42  power-domains:
43    maxItems: 1
44
45  resets:
46    maxItems: 1
47
48  usb-role-switch:
49    $ref: /schemas/types.yaml#/definitions/flag
50    description: Support role switch.
51
52  companion:
53    $ref: /schemas/types.yaml#/definitions/phandle
54    description: phandle of a companion.
55
56  ports:
57    $ref: /schemas/graph.yaml#/properties/ports
58    description: |
59      any connector to the data bus of this controller should be modelled
60      using the OF graph bindings specified, if the "usb-role-switch"
61      property is used.
62
63    properties:
64      port@0:
65        $ref: /schemas/graph.yaml#/properties/port
66        description: High Speed (HS) data bus.
67
68      port@1:
69        $ref: /schemas/graph.yaml#/properties/port
70        description: Super Speed (SS) data bus.
71
72    required:
73      - port@0
74      - port@1
75
76required:
77  - compatible
78  - interrupts
79  - clocks
80
81additionalProperties: false
82
83examples:
84  - |
85    #include <dt-bindings/clock/r8a774c0-cpg-mssr.h>
86    #include <dt-bindings/interrupt-controller/arm-gic.h>
87    #include <dt-bindings/power/r8a774c0-sysc.h>
88
89    usb3_peri0: usb@ee020000 {
90        compatible = "renesas,r8a774c0-usb3-peri", "renesas,rcar-gen3-usb3-peri";
91        reg = <0xee020000 0x400>;
92        interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
93        clocks = <&cpg CPG_MOD 328>;
94        companion = <&xhci0>;
95        usb-role-switch;
96
97        ports {
98                #address-cells = <1>;
99                #size-cells = <0>;
100                port@0 {
101                        reg = <0>;
102                        usb3_hs_ep: endpoint {
103                                remote-endpoint = <&hs_ep>;
104                        };
105                };
106                port@1 {
107                        reg = <1>;
108                        usb3_role_switch: endpoint {
109                                remote-endpoint = <&hd3ss3220_out_ep>;
110                        };
111                };
112        };
113    };
114