xref: /freebsd/sys/contrib/device-tree/Bindings/usb/samsung,exynos-dwc3.yaml (revision 9978553d0199e7ec0bdd1c44fc7f6c7b0c11e43b)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/samsung,exynos-dwc3.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Samsung Exynos SoC USB 3.0 DWC3 Controller
8
9maintainers:
10  - Krzysztof Kozlowski <krzk@kernel.org>
11
12properties:
13  compatible:
14    oneOf:
15      - enum:
16          - google,gs101-dwusb3
17          - samsung,exynos2200-dwusb3
18          - samsung,exynos5250-dwusb3
19          - samsung,exynos5433-dwusb3
20          - samsung,exynos7-dwusb3
21          - samsung,exynos7870-dwusb3
22          - samsung,exynos850-dwusb3
23          - samsung,exynosautov920-dwusb3
24      - items:
25          - const: samsung,exynos990-dwusb3
26          - const: samsung,exynos850-dwusb3
27
28  '#address-cells':
29    const: 1
30
31  clocks:
32    minItems: 1
33    maxItems: 4
34
35  clock-names:
36    minItems: 1
37    maxItems: 4
38
39  ranges: true
40
41  '#size-cells':
42    const: 1
43
44  vdd10-supply:
45    description: 1.0V power supply
46
47  vdd33-supply:
48    description: 3.0V/3.3V power supply
49
50patternProperties:
51  "^usb@[0-9a-f]+$":
52    $ref: snps,dwc3.yaml#
53    description: Required child node
54
55required:
56  - compatible
57  - '#address-cells'
58  - clocks
59  - clock-names
60  - ranges
61  - '#size-cells'
62  - vdd33-supply
63
64allOf:
65  - if:
66      properties:
67        compatible:
68          contains:
69            const: google,gs101-dwusb3
70    then:
71      properties:
72        clocks:
73          minItems: 4
74          maxItems: 4
75        clock-names:
76          items:
77            - const: bus_early
78            - const: susp_clk
79            - const: link_aclk
80            - const: link_pclk
81      required:
82        - vdd10-supply
83
84  - if:
85      properties:
86        compatible:
87          contains:
88            const: samsung,exynos2200-dwusb3
89    then:
90      properties:
91        clocks:
92          maxItems: 1
93        clock-names:
94          items:
95            - const: link_aclk
96
97  - if:
98      properties:
99        compatible:
100          contains:
101            const: samsung,exynos5250-dwusb3
102    then:
103      properties:
104        clocks:
105          minItems: 1
106          maxItems: 1
107        clock-names:
108          items:
109            - const: usbdrd30
110      required:
111        - vdd10-supply
112
113  - if:
114      properties:
115        compatible:
116          contains:
117            const: samsung,exynos5433-dwusb3
118    then:
119      properties:
120        clocks:
121          minItems: 4
122          maxItems: 4
123        clock-names:
124          items:
125            - const: aclk
126            - const: susp_clk
127            - const: phyclk
128            - const: pipe_pclk
129      required:
130        - vdd10-supply
131
132  - if:
133      properties:
134        compatible:
135          contains:
136            const: samsung,exynos7-dwusb3
137    then:
138      properties:
139        clocks:
140          minItems: 3
141          maxItems: 3
142        clock-names:
143          items:
144            - const: usbdrd30
145            - const: usbdrd30_susp_clk
146            - const: usbdrd30_axius_clk
147      required:
148        - vdd10-supply
149
150  - if:
151      properties:
152        compatible:
153          contains:
154            const: samsung,exynos7870-dwusb3
155    then:
156      properties:
157        clocks:
158          minItems: 3
159          maxItems: 3
160        clock-names:
161          items:
162            - const: bus_early
163            - const: ref
164            - const: ctrl
165
166  - if:
167      properties:
168        compatible:
169          contains:
170            const: samsung,exynos850-dwusb3
171    then:
172      properties:
173        clocks:
174          minItems: 2
175          maxItems: 2
176        clock-names:
177          items:
178            - const: bus_early
179            - const: ref
180      required:
181        - vdd10-supply
182
183  - if:
184      properties:
185        compatible:
186          contains:
187            const: samsung,exynosautov920-dwusb3
188    then:
189      properties:
190        clocks:
191          minItems: 2
192          maxItems: 2
193        clock-names:
194          items:
195            - const: ref
196            - const: susp_clk
197
198additionalProperties: false
199
200examples:
201  - |
202    #include <dt-bindings/clock/exynos5420.h>
203    #include <dt-bindings/interrupt-controller/arm-gic.h>
204
205    usb@12000000 {
206        compatible = "samsung,exynos5250-dwusb3";
207        #address-cells = <1>;
208        #size-cells = <1>;
209        ranges = <0x0 0x12000000 0x10000>;
210        clocks = <&clock CLK_USBD300>;
211        clock-names = "usbdrd30";
212        vdd33-supply = <&ldo9_reg>;
213        vdd10-supply = <&ldo11_reg>;
214
215        usb@0 {
216            compatible = "snps,dwc3";
217            reg = <0x0 0x10000>;
218            interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
219            phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>;
220            phy-names = "usb2-phy", "usb3-phy";
221            snps,dis_u3_susphy_quirk;
222        };
223    };
224