Merge tag 'linux_kselftest-nolibc-6.8-rc1' of git://git.kernel.org/pub/scm/linux...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / usb / renesas,usb3-peri.yaml
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
7 title: Renesas USB 3.0 Peripheral controller
8
9 maintainers:
10   - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
11
12 properties:
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
92 required:
93   - compatible
94   - interrupts
95   - clocks
96
97 allOf:
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
118 additionalProperties: false
119
120 examples:
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     };