blob: b2b811a0ade85cbf18b054d0cb922198dcab63aa [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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 oneOf:
15 - items:
16 - enum:
17 - renesas,r8a774a1-usb3-peri # RZ/G2M
18 - renesas,r8a774b1-usb3-peri # RZ/G2N
19 - renesas,r8a774c0-usb3-peri # RZ/G2E
20 - renesas,r8a774e1-usb3-peri # RZ/G2H
21 - renesas,r8a7795-usb3-peri # R-Car H3
22 - renesas,r8a7796-usb3-peri # R-Car M3-W
23 - renesas,r8a77961-usb3-peri # R-Car M3-W+
24 - renesas,r8a77965-usb3-peri # R-Car M3-N
25 - renesas,r8a77990-usb3-peri # R-Car E3
26 - const: renesas,rcar-gen3-usb3-peri
27
28 - items:
29 - enum:
30 - renesas,r9a09g011-usb3-peri # RZ/V2M
31 - renesas,r9a09g055-usb3-peri # RZ/V2MA
32 - const: renesas,rzv2m-usb3-peri
33
34 reg:
35 maxItems: 1
36
37 interrupts:
38 maxItems: 1
39
40 clocks:
41 minItems: 1
42 items:
43 - description: Main clock
44 - description: Register access clock
45
46 clock-names:
47 minItems: 1
48 items:
49 - const: axi
50 - const: reg
51
52 phys:
53 maxItems: 1
54
55 phy-names:
56 const: usb
57
58 power-domains:
59 maxItems: 1
60
61 resets:
62 maxItems: 1
63
64 usb-role-switch:
65 $ref: /schemas/types.yaml#/definitions/flag
66 description: Support role switch.
67
68 companion:
69 $ref: /schemas/types.yaml#/definitions/phandle
70 description: phandle of a companion.
71
72 ports:
73 $ref: /schemas/graph.yaml#/properties/ports
74 description: |
75 any connector to the data bus of this controller should be modelled
76 using the OF graph bindings specified, if the "usb-role-switch"
77 property is used.
78
79 properties:
80 port@0:
81 $ref: /schemas/graph.yaml#/properties/port
82 description: High Speed (HS) data bus.
83
84 port@1:
85 $ref: /schemas/graph.yaml#/properties/port
86 description: Super Speed (SS) data bus.
87
88 required:
89 - port@0
90 - port@1
91
92required:
93 - compatible
94 - interrupts
95 - clocks
96
97allOf:
98 - if:
99 properties:
100 compatible:
101 contains:
102 enum:
103 - renesas,rzv2m-usb3-peri
104 then:
105 properties:
106 clocks:
107 minItems: 2
108 clock-names:
109 minItems: 2
110 required:
111 - clock-names
112 - resets
113 else:
114 properties:
115 clocks:
116 maxItems: 1
117
118additionalProperties: false
119
120examples:
121 - |
122 #include <dt-bindings/clock/r8a774c0-cpg-mssr.h>
123 #include <dt-bindings/interrupt-controller/arm-gic.h>
124 #include <dt-bindings/power/r8a774c0-sysc.h>
125
126 usb3_peri0: usb@ee020000 {
127 compatible = "renesas,r8a774c0-usb3-peri", "renesas,rcar-gen3-usb3-peri";
128 reg = <0xee020000 0x400>;
129 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
130 clocks = <&cpg CPG_MOD 328>;
131 companion = <&xhci0>;
132 usb-role-switch;
133
134 ports {
135 #address-cells = <1>;
136 #size-cells = <0>;
137 port@0 {
138 reg = <0>;
139 usb3_hs_ep: endpoint {
140 remote-endpoint = <&hs_ep>;
141 };
142 };
143 port@1 {
144 reg = <1>;
145 usb3_role_switch: endpoint {
146 remote-endpoint = <&hd3ss3220_out_ep>;
147 };
148 };
149 };
150 };