xref: /linux/Documentation/devicetree/bindings/usb/samsung,exynos-dwc3.yaml (revision 184e56e77c06a7eef68a021e9d4b11a11a8ab096)
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,exynos5250-dwusb3
18          - samsung,exynos5433-dwusb3
19          - samsung,exynos7-dwusb3
20          - samsung,exynos7870-dwusb3
21          - samsung,exynos850-dwusb3
22      - items:
23          - const: samsung,exynos990-dwusb3
24          - const: samsung,exynos850-dwusb3
25
26  '#address-cells':
27    const: 1
28
29  clocks:
30    minItems: 1
31    maxItems: 4
32
33  clock-names:
34    minItems: 1
35    maxItems: 4
36
37  ranges: true
38
39  '#size-cells':
40    const: 1
41
42  vdd10-supply:
43    description: 1.0V power supply
44
45  vdd33-supply:
46    description: 3.0V/3.3V power supply
47
48patternProperties:
49  "^usb@[0-9a-f]+$":
50    $ref: snps,dwc3.yaml#
51    description: Required child node
52
53required:
54  - compatible
55  - '#address-cells'
56  - clocks
57  - clock-names
58  - ranges
59  - '#size-cells'
60  - vdd33-supply
61
62allOf:
63  - if:
64      properties:
65        compatible:
66          contains:
67            const: google,gs101-dwusb3
68    then:
69      properties:
70        clocks:
71          minItems: 4
72          maxItems: 4
73        clock-names:
74          items:
75            - const: bus_early
76            - const: susp_clk
77            - const: link_aclk
78            - const: link_pclk
79      required:
80        - vdd10-supply
81
82  - if:
83      properties:
84        compatible:
85          contains:
86            const: samsung,exynos5250-dwusb3
87    then:
88      properties:
89        clocks:
90          minItems: 1
91          maxItems: 1
92        clock-names:
93          items:
94            - const: usbdrd30
95      required:
96        - vdd10-supply
97
98  - if:
99      properties:
100        compatible:
101          contains:
102            const: samsung,exynos5433-dwusb3
103    then:
104      properties:
105        clocks:
106          minItems: 4
107          maxItems: 4
108        clock-names:
109          items:
110            - const: aclk
111            - const: susp_clk
112            - const: phyclk
113            - const: pipe_pclk
114      required:
115        - vdd10-supply
116
117  - if:
118      properties:
119        compatible:
120          contains:
121            const: samsung,exynos7-dwusb3
122    then:
123      properties:
124        clocks:
125          minItems: 3
126          maxItems: 3
127        clock-names:
128          items:
129            - const: usbdrd30
130            - const: usbdrd30_susp_clk
131            - const: usbdrd30_axius_clk
132      required:
133        - vdd10-supply
134
135  - if:
136      properties:
137        compatible:
138          contains:
139            const: samsung,exynos7870-dwusb3
140    then:
141      properties:
142        clocks:
143          minItems: 3
144          maxItems: 3
145        clock-names:
146          items:
147            - const: bus_early
148            - const: ref
149            - const: ctrl
150
151  - if:
152      properties:
153        compatible:
154          contains:
155            const: samsung,exynos850-dwusb3
156    then:
157      properties:
158        clocks:
159          minItems: 2
160          maxItems: 2
161        clock-names:
162          items:
163            - const: bus_early
164            - const: ref
165      required:
166        - vdd10-supply
167
168additionalProperties: false
169
170examples:
171  - |
172    #include <dt-bindings/clock/exynos5420.h>
173    #include <dt-bindings/interrupt-controller/arm-gic.h>
174
175    usb@12000000 {
176        compatible = "samsung,exynos5250-dwusb3";
177        #address-cells = <1>;
178        #size-cells = <1>;
179        ranges = <0x0 0x12000000 0x10000>;
180        clocks = <&clock CLK_USBD300>;
181        clock-names = "usbdrd30";
182        vdd33-supply = <&ldo9_reg>;
183        vdd10-supply = <&ldo11_reg>;
184
185        usb@0 {
186            compatible = "snps,dwc3";
187            reg = <0x0 0x10000>;
188            interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
189            phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>;
190            phy-names = "usb2-phy", "usb3-phy";
191            snps,dis_u3_susphy_quirk;
192        };
193    };
194