xref: /freebsd/sys/contrib/device-tree/Bindings/usb/qcom,dwc3.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Qualcomm SuperSpeed DWC3 USB SoC controller
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10d5b0e70fSEmmanuel Vadot  - Wesley Cheng <quic_wcheng@quicinc.com>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotproperties:
13c66ec88fSEmmanuel Vadot  compatible:
14c66ec88fSEmmanuel Vadot    items:
15c66ec88fSEmmanuel Vadot      - enum:
16e67e8565SEmmanuel Vadot          - qcom,ipq4019-dwc3
17*aa1a8ff2SEmmanuel Vadot          - qcom,ipq5332-dwc3
188cc087a1SEmmanuel Vadot          - qcom,ipq6018-dwc3
19e67e8565SEmmanuel Vadot          - qcom,ipq8064-dwc3
20d5b0e70fSEmmanuel Vadot          - qcom,ipq8074-dwc3
21f126890aSEmmanuel Vadot          - qcom,ipq9574-dwc3
22c9ccf3a3SEmmanuel Vadot          - qcom,msm8953-dwc3
23d5b0e70fSEmmanuel Vadot          - qcom,msm8994-dwc3
24c66ec88fSEmmanuel Vadot          - qcom,msm8996-dwc3
25c66ec88fSEmmanuel Vadot          - qcom,msm8998-dwc3
26fac71e4eSEmmanuel Vadot          - qcom,qcm2290-dwc3
27d5b0e70fSEmmanuel Vadot          - qcom,qcs404-dwc3
28f126890aSEmmanuel Vadot          - qcom,sa8775p-dwc3
29c66ec88fSEmmanuel Vadot          - qcom,sc7180-dwc3
302eb4d8dcSEmmanuel Vadot          - qcom,sc7280-dwc3
31b97ee269SEmmanuel Vadot          - qcom,sc8280xp-dwc3
32354d7675SEmmanuel Vadot          - qcom,sdm660-dwc3
337ef62cebSEmmanuel Vadot          - qcom,sdm670-dwc3
34c66ec88fSEmmanuel Vadot          - qcom,sdm845-dwc3
355def4c47SEmmanuel Vadot          - qcom,sdx55-dwc3
36d5b0e70fSEmmanuel Vadot          - qcom,sdx65-dwc3
375956d97fSEmmanuel Vadot          - qcom,sm4250-dwc3
385956d97fSEmmanuel Vadot          - qcom,sm6115-dwc3
39d5b0e70fSEmmanuel Vadot          - qcom,sm6125-dwc3
40e67e8565SEmmanuel Vadot          - qcom,sm6350-dwc3
41b97ee269SEmmanuel Vadot          - qcom,sm6375-dwc3
425def4c47SEmmanuel Vadot          - qcom,sm8150-dwc3
435def4c47SEmmanuel Vadot          - qcom,sm8250-dwc3
445def4c47SEmmanuel Vadot          - qcom,sm8350-dwc3
45e67e8565SEmmanuel Vadot          - qcom,sm8450-dwc3
468bab661aSEmmanuel Vadot          - qcom,sm8550-dwc3
47c66ec88fSEmmanuel Vadot      - const: qcom,dwc3
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot  reg:
50c66ec88fSEmmanuel Vadot    description: Offset and length of register set for QSCRATCH wrapper
51c66ec88fSEmmanuel Vadot    maxItems: 1
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot  "#address-cells":
54c66ec88fSEmmanuel Vadot    enum: [ 1, 2 ]
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadot  "#size-cells":
57c66ec88fSEmmanuel Vadot    enum: [ 1, 2 ]
58c66ec88fSEmmanuel Vadot
59c66ec88fSEmmanuel Vadot  ranges: true
60c66ec88fSEmmanuel Vadot
61c66ec88fSEmmanuel Vadot  power-domains:
62c66ec88fSEmmanuel Vadot    description: specifies a phandle to PM domain provider node
63c66ec88fSEmmanuel Vadot    maxItems: 1
64c66ec88fSEmmanuel Vadot
65cb7aa33aSEmmanuel Vadot  required-opps:
66cb7aa33aSEmmanuel Vadot    maxItems: 1
67cb7aa33aSEmmanuel Vadot
68c66ec88fSEmmanuel Vadot  clocks:
69d5b0e70fSEmmanuel Vadot    description: |
70d5b0e70fSEmmanuel Vadot      Several clocks are used, depending on the variant. Typical ones are::
71d5b0e70fSEmmanuel Vadot       - cfg_noc:: System Config NOC clock.
72d5b0e70fSEmmanuel Vadot       - core:: Master/Core clock, has to be >= 125 MHz for SS operation and >=
73d5b0e70fSEmmanuel Vadot                60MHz for HS operation.
74d5b0e70fSEmmanuel Vadot       - iface:: System bus AXI clock.
75d5b0e70fSEmmanuel Vadot       - sleep:: Sleep clock, used for wakeup when USB3 core goes into low
76d5b0e70fSEmmanuel Vadot                 power mode (U3).
77d5b0e70fSEmmanuel Vadot       - mock_utmi:: Mock utmi clock needed for ITP/SOF generation in host
78d5b0e70fSEmmanuel Vadot                     mode. Its frequency should be 19.2MHz.
79d5b0e70fSEmmanuel Vadot    minItems: 1
80b97ee269SEmmanuel Vadot    maxItems: 9
81c66ec88fSEmmanuel Vadot
82c66ec88fSEmmanuel Vadot  clock-names:
83d5b0e70fSEmmanuel Vadot    minItems: 1
84b97ee269SEmmanuel Vadot    maxItems: 9
85c66ec88fSEmmanuel Vadot
86c66ec88fSEmmanuel Vadot  resets:
87c66ec88fSEmmanuel Vadot    maxItems: 1
88c66ec88fSEmmanuel Vadot
89c66ec88fSEmmanuel Vadot  interconnects:
90c66ec88fSEmmanuel Vadot    maxItems: 2
91c66ec88fSEmmanuel Vadot
92c66ec88fSEmmanuel Vadot  interconnect-names:
93c66ec88fSEmmanuel Vadot    items:
94c66ec88fSEmmanuel Vadot      - const: usb-ddr
95c66ec88fSEmmanuel Vadot      - const: apps-usb
96c66ec88fSEmmanuel Vadot
97c66ec88fSEmmanuel Vadot  interrupts:
98b97ee269SEmmanuel Vadot    minItems: 1
99b97ee269SEmmanuel Vadot    maxItems: 4
100c66ec88fSEmmanuel Vadot
101c66ec88fSEmmanuel Vadot  interrupt-names:
102b97ee269SEmmanuel Vadot    minItems: 1
103b97ee269SEmmanuel Vadot    maxItems: 4
104c66ec88fSEmmanuel Vadot
105c66ec88fSEmmanuel Vadot  qcom,select-utmi-as-pipe-clk:
106c66ec88fSEmmanuel Vadot    description:
107c66ec88fSEmmanuel Vadot      If present, disable USB3 pipe_clk requirement.
108c66ec88fSEmmanuel Vadot      Used when dwc3 operates without SSPHY and only
109c66ec88fSEmmanuel Vadot      HS/FS/LS modes are supported.
110c66ec88fSEmmanuel Vadot    type: boolean
111c66ec88fSEmmanuel Vadot
112b97ee269SEmmanuel Vadot  wakeup-source: true
113b97ee269SEmmanuel Vadot
114c66ec88fSEmmanuel Vadot# Required child node:
115c66ec88fSEmmanuel Vadot
116c66ec88fSEmmanuel VadotpatternProperties:
1175def4c47SEmmanuel Vadot  "^usb@[0-9a-f]+$":
1185def4c47SEmmanuel Vadot    $ref: snps,dwc3.yaml#
119fac71e4eSEmmanuel Vadot    unevaluatedProperties: false
120c66ec88fSEmmanuel Vadot
121b97ee269SEmmanuel Vadot    properties:
122b97ee269SEmmanuel Vadot      wakeup-source: false
123b97ee269SEmmanuel Vadot
124c66ec88fSEmmanuel Vadotrequired:
125c66ec88fSEmmanuel Vadot  - compatible
126c66ec88fSEmmanuel Vadot  - reg
127c66ec88fSEmmanuel Vadot  - "#address-cells"
128c66ec88fSEmmanuel Vadot  - "#size-cells"
129c66ec88fSEmmanuel Vadot  - ranges
130c66ec88fSEmmanuel Vadot  - clocks
131c66ec88fSEmmanuel Vadot  - clock-names
132c66ec88fSEmmanuel Vadot  - interrupts
133c66ec88fSEmmanuel Vadot  - interrupt-names
134c66ec88fSEmmanuel Vadot
135d5b0e70fSEmmanuel VadotallOf:
136d5b0e70fSEmmanuel Vadot  - if:
137d5b0e70fSEmmanuel Vadot      properties:
138d5b0e70fSEmmanuel Vadot        compatible:
139d5b0e70fSEmmanuel Vadot          contains:
140d5b0e70fSEmmanuel Vadot            enum:
141d5b0e70fSEmmanuel Vadot              - qcom,ipq4019-dwc3
142d5b0e70fSEmmanuel Vadot    then:
143d5b0e70fSEmmanuel Vadot      properties:
144d5b0e70fSEmmanuel Vadot        clocks:
145d5b0e70fSEmmanuel Vadot          maxItems: 3
146d5b0e70fSEmmanuel Vadot        clock-names:
147d5b0e70fSEmmanuel Vadot          items:
148d5b0e70fSEmmanuel Vadot            - const: core
149d5b0e70fSEmmanuel Vadot            - const: sleep
150d5b0e70fSEmmanuel Vadot            - const: mock_utmi
151d5b0e70fSEmmanuel Vadot
152d5b0e70fSEmmanuel Vadot  - if:
153d5b0e70fSEmmanuel Vadot      properties:
154d5b0e70fSEmmanuel Vadot        compatible:
155d5b0e70fSEmmanuel Vadot          contains:
156d5b0e70fSEmmanuel Vadot            enum:
157d5b0e70fSEmmanuel Vadot              - qcom,ipq8064-dwc3
158d5b0e70fSEmmanuel Vadot    then:
159d5b0e70fSEmmanuel Vadot      properties:
160d5b0e70fSEmmanuel Vadot        clocks:
161d5b0e70fSEmmanuel Vadot          items:
162d5b0e70fSEmmanuel Vadot            - description: Master/Core clock, has to be >= 125 MHz
163d5b0e70fSEmmanuel Vadot                for SS operation and >= 60MHz for HS operation.
164d5b0e70fSEmmanuel Vadot        clock-names:
165d5b0e70fSEmmanuel Vadot          items:
166d5b0e70fSEmmanuel Vadot            - const: core
167d5b0e70fSEmmanuel Vadot
168d5b0e70fSEmmanuel Vadot  - if:
169d5b0e70fSEmmanuel Vadot      properties:
170d5b0e70fSEmmanuel Vadot        compatible:
171d5b0e70fSEmmanuel Vadot          contains:
172d5b0e70fSEmmanuel Vadot            enum:
173f126890aSEmmanuel Vadot              - qcom,ipq9574-dwc3
174d5b0e70fSEmmanuel Vadot              - qcom,msm8953-dwc3
175d5b0e70fSEmmanuel Vadot              - qcom,msm8996-dwc3
176d5b0e70fSEmmanuel Vadot              - qcom,msm8998-dwc3
177f126890aSEmmanuel Vadot              - qcom,sa8775p-dwc3
178d5b0e70fSEmmanuel Vadot              - qcom,sc7180-dwc3
179d5b0e70fSEmmanuel Vadot              - qcom,sc7280-dwc3
1807ef62cebSEmmanuel Vadot              - qcom,sdm670-dwc3
181d5b0e70fSEmmanuel Vadot              - qcom,sdm845-dwc3
182d5b0e70fSEmmanuel Vadot              - qcom,sdx55-dwc3
183d5b0e70fSEmmanuel Vadot              - qcom,sm6350-dwc3
184d5b0e70fSEmmanuel Vadot    then:
185d5b0e70fSEmmanuel Vadot      properties:
186d5b0e70fSEmmanuel Vadot        clocks:
187d5b0e70fSEmmanuel Vadot          maxItems: 5
188d5b0e70fSEmmanuel Vadot        clock-names:
189d5b0e70fSEmmanuel Vadot          items:
190d5b0e70fSEmmanuel Vadot            - const: cfg_noc
191d5b0e70fSEmmanuel Vadot            - const: core
192d5b0e70fSEmmanuel Vadot            - const: iface
193d5b0e70fSEmmanuel Vadot            - const: sleep
194d5b0e70fSEmmanuel Vadot            - const: mock_utmi
195d5b0e70fSEmmanuel Vadot
196d5b0e70fSEmmanuel Vadot  - if:
197d5b0e70fSEmmanuel Vadot      properties:
198d5b0e70fSEmmanuel Vadot        compatible:
199d5b0e70fSEmmanuel Vadot          contains:
200d5b0e70fSEmmanuel Vadot            enum:
201d5b0e70fSEmmanuel Vadot              - qcom,ipq6018-dwc3
202d5b0e70fSEmmanuel Vadot    then:
203d5b0e70fSEmmanuel Vadot      properties:
204d5b0e70fSEmmanuel Vadot        clocks:
205d5b0e70fSEmmanuel Vadot          minItems: 3
206d5b0e70fSEmmanuel Vadot          maxItems: 4
207d5b0e70fSEmmanuel Vadot        clock-names:
208d5b0e70fSEmmanuel Vadot          oneOf:
209d5b0e70fSEmmanuel Vadot            - items:
210d5b0e70fSEmmanuel Vadot                - const: core
211d5b0e70fSEmmanuel Vadot                - const: sleep
212d5b0e70fSEmmanuel Vadot                - const: mock_utmi
213d5b0e70fSEmmanuel Vadot            - items:
214d5b0e70fSEmmanuel Vadot                - const: cfg_noc
215d5b0e70fSEmmanuel Vadot                - const: core
216d5b0e70fSEmmanuel Vadot                - const: sleep
217d5b0e70fSEmmanuel Vadot                - const: mock_utmi
218d5b0e70fSEmmanuel Vadot
219d5b0e70fSEmmanuel Vadot  - if:
220d5b0e70fSEmmanuel Vadot      properties:
221d5b0e70fSEmmanuel Vadot        compatible:
222d5b0e70fSEmmanuel Vadot          contains:
223d5b0e70fSEmmanuel Vadot            enum:
224d5b0e70fSEmmanuel Vadot              - qcom,ipq8074-dwc3
225d5b0e70fSEmmanuel Vadot    then:
226d5b0e70fSEmmanuel Vadot      properties:
227d5b0e70fSEmmanuel Vadot        clocks:
228d5b0e70fSEmmanuel Vadot          maxItems: 4
229d5b0e70fSEmmanuel Vadot        clock-names:
230d5b0e70fSEmmanuel Vadot          items:
231d5b0e70fSEmmanuel Vadot            - const: cfg_noc
232d5b0e70fSEmmanuel Vadot            - const: core
233d5b0e70fSEmmanuel Vadot            - const: sleep
234d5b0e70fSEmmanuel Vadot            - const: mock_utmi
235d5b0e70fSEmmanuel Vadot
236d5b0e70fSEmmanuel Vadot  - if:
237d5b0e70fSEmmanuel Vadot      properties:
238d5b0e70fSEmmanuel Vadot        compatible:
239d5b0e70fSEmmanuel Vadot          contains:
240d5b0e70fSEmmanuel Vadot            enum:
241*aa1a8ff2SEmmanuel Vadot              - qcom,ipq5332-dwc3
242d5b0e70fSEmmanuel Vadot              - qcom,msm8994-dwc3
243d5b0e70fSEmmanuel Vadot              - qcom,qcs404-dwc3
244d5b0e70fSEmmanuel Vadot    then:
245d5b0e70fSEmmanuel Vadot      properties:
246d5b0e70fSEmmanuel Vadot        clocks:
247d5b0e70fSEmmanuel Vadot          maxItems: 4
248d5b0e70fSEmmanuel Vadot        clock-names:
249d5b0e70fSEmmanuel Vadot          items:
250d5b0e70fSEmmanuel Vadot            - const: core
251d5b0e70fSEmmanuel Vadot            - const: iface
252d5b0e70fSEmmanuel Vadot            - const: sleep
253d5b0e70fSEmmanuel Vadot            - const: mock_utmi
254d5b0e70fSEmmanuel Vadot
255d5b0e70fSEmmanuel Vadot  - if:
256d5b0e70fSEmmanuel Vadot      properties:
257d5b0e70fSEmmanuel Vadot        compatible:
258d5b0e70fSEmmanuel Vadot          contains:
259d5b0e70fSEmmanuel Vadot            enum:
260b97ee269SEmmanuel Vadot              - qcom,sc8280xp-dwc3
261b97ee269SEmmanuel Vadot    then:
262b97ee269SEmmanuel Vadot      properties:
263b97ee269SEmmanuel Vadot        clocks:
264b97ee269SEmmanuel Vadot          maxItems: 9
265b97ee269SEmmanuel Vadot        clock-names:
266b97ee269SEmmanuel Vadot          items:
267b97ee269SEmmanuel Vadot            - const: cfg_noc
268b97ee269SEmmanuel Vadot            - const: core
269b97ee269SEmmanuel Vadot            - const: iface
270b97ee269SEmmanuel Vadot            - const: sleep
271b97ee269SEmmanuel Vadot            - const: mock_utmi
272b97ee269SEmmanuel Vadot            - const: noc_aggr
273b97ee269SEmmanuel Vadot            - const: noc_aggr_north
274b97ee269SEmmanuel Vadot            - const: noc_aggr_south
275b97ee269SEmmanuel Vadot            - const: noc_sys
276b97ee269SEmmanuel Vadot
277b97ee269SEmmanuel Vadot  - if:
278b97ee269SEmmanuel Vadot      properties:
279b97ee269SEmmanuel Vadot        compatible:
280b97ee269SEmmanuel Vadot          contains:
281b97ee269SEmmanuel Vadot            enum:
282d5b0e70fSEmmanuel Vadot              - qcom,sdm660-dwc3
283d5b0e70fSEmmanuel Vadot    then:
284d5b0e70fSEmmanuel Vadot      properties:
285d5b0e70fSEmmanuel Vadot        clocks:
286*aa1a8ff2SEmmanuel Vadot          minItems: 5
287*aa1a8ff2SEmmanuel Vadot          maxItems: 6
288d5b0e70fSEmmanuel Vadot        clock-names:
289*aa1a8ff2SEmmanuel Vadot          oneOf:
290*aa1a8ff2SEmmanuel Vadot            - items:
291d5b0e70fSEmmanuel Vadot                - const: cfg_noc
292d5b0e70fSEmmanuel Vadot                - const: core
293d5b0e70fSEmmanuel Vadot                - const: iface
294d5b0e70fSEmmanuel Vadot                - const: sleep
295d5b0e70fSEmmanuel Vadot                - const: mock_utmi
296d5b0e70fSEmmanuel Vadot                - const: bus
297*aa1a8ff2SEmmanuel Vadot            - items:
298*aa1a8ff2SEmmanuel Vadot                - const: cfg_noc
299*aa1a8ff2SEmmanuel Vadot                - const: core
300*aa1a8ff2SEmmanuel Vadot                - const: sleep
301*aa1a8ff2SEmmanuel Vadot                - const: mock_utmi
302*aa1a8ff2SEmmanuel Vadot                - const: bus
303d5b0e70fSEmmanuel Vadot
304d5b0e70fSEmmanuel Vadot  - if:
305d5b0e70fSEmmanuel Vadot      properties:
306d5b0e70fSEmmanuel Vadot        compatible:
307d5b0e70fSEmmanuel Vadot          contains:
308d5b0e70fSEmmanuel Vadot            enum:
309fac71e4eSEmmanuel Vadot              - qcom,qcm2290-dwc3
3107ef62cebSEmmanuel Vadot              - qcom,sm6115-dwc3
311d5b0e70fSEmmanuel Vadot              - qcom,sm6125-dwc3
312d5b0e70fSEmmanuel Vadot              - qcom,sm8150-dwc3
313d5b0e70fSEmmanuel Vadot              - qcom,sm8250-dwc3
314d5b0e70fSEmmanuel Vadot              - qcom,sm8450-dwc3
3158bab661aSEmmanuel Vadot              - qcom,sm8550-dwc3
316d5b0e70fSEmmanuel Vadot    then:
317d5b0e70fSEmmanuel Vadot      properties:
318d5b0e70fSEmmanuel Vadot        clocks:
319d5b0e70fSEmmanuel Vadot          minItems: 6
320d5b0e70fSEmmanuel Vadot        clock-names:
321d5b0e70fSEmmanuel Vadot          items:
322d5b0e70fSEmmanuel Vadot            - const: cfg_noc
323d5b0e70fSEmmanuel Vadot            - const: core
324d5b0e70fSEmmanuel Vadot            - const: iface
325d5b0e70fSEmmanuel Vadot            - const: sleep
326d5b0e70fSEmmanuel Vadot            - const: mock_utmi
327d5b0e70fSEmmanuel Vadot            - const: xo
328d5b0e70fSEmmanuel Vadot
329d5b0e70fSEmmanuel Vadot  - if:
330d5b0e70fSEmmanuel Vadot      properties:
331d5b0e70fSEmmanuel Vadot        compatible:
332d5b0e70fSEmmanuel Vadot          contains:
333d5b0e70fSEmmanuel Vadot            enum:
334d5b0e70fSEmmanuel Vadot              - qcom,sm8350-dwc3
335d5b0e70fSEmmanuel Vadot    then:
336d5b0e70fSEmmanuel Vadot      properties:
337d5b0e70fSEmmanuel Vadot        clocks:
338d5b0e70fSEmmanuel Vadot          minItems: 5
339d5b0e70fSEmmanuel Vadot          maxItems: 6
340d5b0e70fSEmmanuel Vadot        clock-names:
341d5b0e70fSEmmanuel Vadot          minItems: 5
342d5b0e70fSEmmanuel Vadot          items:
343d5b0e70fSEmmanuel Vadot            - const: cfg_noc
344d5b0e70fSEmmanuel Vadot            - const: core
345d5b0e70fSEmmanuel Vadot            - const: iface
346d5b0e70fSEmmanuel Vadot            - const: sleep
347d5b0e70fSEmmanuel Vadot            - const: mock_utmi
348d5b0e70fSEmmanuel Vadot            - const: xo
349d5b0e70fSEmmanuel Vadot
350b97ee269SEmmanuel Vadot  - if:
351b97ee269SEmmanuel Vadot      properties:
352b97ee269SEmmanuel Vadot        compatible:
353b97ee269SEmmanuel Vadot          contains:
354b97ee269SEmmanuel Vadot            enum:
355b97ee269SEmmanuel Vadot              - qcom,ipq4019-dwc3
356b97ee269SEmmanuel Vadot              - qcom,ipq6018-dwc3
357b97ee269SEmmanuel Vadot              - qcom,ipq8064-dwc3
358b97ee269SEmmanuel Vadot              - qcom,ipq8074-dwc3
359b97ee269SEmmanuel Vadot              - qcom,msm8994-dwc3
360b97ee269SEmmanuel Vadot              - qcom,qcs404-dwc3
361b97ee269SEmmanuel Vadot              - qcom,sc7180-dwc3
3627ef62cebSEmmanuel Vadot              - qcom,sdm670-dwc3
363b97ee269SEmmanuel Vadot              - qcom,sdm845-dwc3
364b97ee269SEmmanuel Vadot              - qcom,sdx55-dwc3
365b97ee269SEmmanuel Vadot              - qcom,sdx65-dwc3
366b97ee269SEmmanuel Vadot              - qcom,sm4250-dwc3
367b97ee269SEmmanuel Vadot              - qcom,sm6125-dwc3
368b97ee269SEmmanuel Vadot              - qcom,sm6350-dwc3
369b97ee269SEmmanuel Vadot              - qcom,sm8150-dwc3
370b97ee269SEmmanuel Vadot              - qcom,sm8250-dwc3
371b97ee269SEmmanuel Vadot              - qcom,sm8350-dwc3
372b97ee269SEmmanuel Vadot              - qcom,sm8450-dwc3
3738bab661aSEmmanuel Vadot              - qcom,sm8550-dwc3
374b97ee269SEmmanuel Vadot    then:
375b97ee269SEmmanuel Vadot      properties:
376b97ee269SEmmanuel Vadot        interrupts:
377b97ee269SEmmanuel Vadot          items:
378b97ee269SEmmanuel Vadot            - description: The interrupt that is asserted
379b97ee269SEmmanuel Vadot                when a wakeup event is received on USB2 bus.
380b97ee269SEmmanuel Vadot            - description: The interrupt that is asserted
381b97ee269SEmmanuel Vadot                when a wakeup event is received on USB3 bus.
382b97ee269SEmmanuel Vadot            - description: Wakeup event on DM line.
383b97ee269SEmmanuel Vadot            - description: Wakeup event on DP line.
384b97ee269SEmmanuel Vadot        interrupt-names:
385b97ee269SEmmanuel Vadot          items:
386b97ee269SEmmanuel Vadot            - const: hs_phy_irq
387b97ee269SEmmanuel Vadot            - const: ss_phy_irq
388b97ee269SEmmanuel Vadot            - const: dm_hs_phy_irq
389b97ee269SEmmanuel Vadot            - const: dp_hs_phy_irq
390b97ee269SEmmanuel Vadot
391b97ee269SEmmanuel Vadot  - if:
392b97ee269SEmmanuel Vadot      properties:
393b97ee269SEmmanuel Vadot        compatible:
394b97ee269SEmmanuel Vadot          contains:
395b97ee269SEmmanuel Vadot            enum:
396b97ee269SEmmanuel Vadot              - qcom,msm8953-dwc3
397b97ee269SEmmanuel Vadot              - qcom,msm8996-dwc3
398b97ee269SEmmanuel Vadot              - qcom,msm8998-dwc3
3997ef62cebSEmmanuel Vadot              - qcom,sm6115-dwc3
400b97ee269SEmmanuel Vadot    then:
401b97ee269SEmmanuel Vadot      properties:
402b97ee269SEmmanuel Vadot        interrupts:
403b97ee269SEmmanuel Vadot          maxItems: 2
404b97ee269SEmmanuel Vadot        interrupt-names:
405b97ee269SEmmanuel Vadot          items:
406b97ee269SEmmanuel Vadot            - const: hs_phy_irq
407b97ee269SEmmanuel Vadot            - const: ss_phy_irq
408b97ee269SEmmanuel Vadot
409b97ee269SEmmanuel Vadot  - if:
410b97ee269SEmmanuel Vadot      properties:
411b97ee269SEmmanuel Vadot        compatible:
412b97ee269SEmmanuel Vadot          contains:
413b97ee269SEmmanuel Vadot            enum:
414*aa1a8ff2SEmmanuel Vadot              - qcom,ipq5332-dwc3
415b97ee269SEmmanuel Vadot              - qcom,sdm660-dwc3
416b97ee269SEmmanuel Vadot    then:
417b97ee269SEmmanuel Vadot      properties:
418b97ee269SEmmanuel Vadot        interrupts:
419b97ee269SEmmanuel Vadot          minItems: 1
420b97ee269SEmmanuel Vadot          maxItems: 2
421b97ee269SEmmanuel Vadot        interrupt-names:
422b97ee269SEmmanuel Vadot          minItems: 1
423b97ee269SEmmanuel Vadot          items:
424b97ee269SEmmanuel Vadot            - const: hs_phy_irq
425b97ee269SEmmanuel Vadot            - const: ss_phy_irq
426b97ee269SEmmanuel Vadot
427b97ee269SEmmanuel Vadot  - if:
428b97ee269SEmmanuel Vadot      properties:
429b97ee269SEmmanuel Vadot        compatible:
430b97ee269SEmmanuel Vadot          contains:
431b97ee269SEmmanuel Vadot            enum:
432b97ee269SEmmanuel Vadot              - qcom,sc7280-dwc3
433b97ee269SEmmanuel Vadot    then:
434b97ee269SEmmanuel Vadot      properties:
435b97ee269SEmmanuel Vadot        interrupts:
436b97ee269SEmmanuel Vadot          minItems: 3
437b97ee269SEmmanuel Vadot          maxItems: 4
438b97ee269SEmmanuel Vadot        interrupt-names:
439b97ee269SEmmanuel Vadot          minItems: 3
440b97ee269SEmmanuel Vadot          items:
441b97ee269SEmmanuel Vadot            - const: hs_phy_irq
442b97ee269SEmmanuel Vadot            - const: dp_hs_phy_irq
443b97ee269SEmmanuel Vadot            - const: dm_hs_phy_irq
444b97ee269SEmmanuel Vadot            - const: ss_phy_irq
445b97ee269SEmmanuel Vadot
446b97ee269SEmmanuel Vadot  - if:
447b97ee269SEmmanuel Vadot      properties:
448b97ee269SEmmanuel Vadot        compatible:
449b97ee269SEmmanuel Vadot          contains:
450b97ee269SEmmanuel Vadot            enum:
451b97ee269SEmmanuel Vadot              - qcom,sc8280xp-dwc3
452b97ee269SEmmanuel Vadot    then:
453b97ee269SEmmanuel Vadot      properties:
454b97ee269SEmmanuel Vadot        interrupts:
455b97ee269SEmmanuel Vadot          maxItems: 4
456b97ee269SEmmanuel Vadot        interrupt-names:
457b97ee269SEmmanuel Vadot          items:
458b97ee269SEmmanuel Vadot            - const: pwr_event
459b97ee269SEmmanuel Vadot            - const: dp_hs_phy_irq
460b97ee269SEmmanuel Vadot            - const: dm_hs_phy_irq
461b97ee269SEmmanuel Vadot            - const: ss_phy_irq
462d5b0e70fSEmmanuel Vadot
463f126890aSEmmanuel Vadot  - if:
464f126890aSEmmanuel Vadot      properties:
465f126890aSEmmanuel Vadot        compatible:
466f126890aSEmmanuel Vadot          contains:
467f126890aSEmmanuel Vadot            enum:
468f126890aSEmmanuel Vadot              - qcom,sa8775p-dwc3
469f126890aSEmmanuel Vadot    then:
470f126890aSEmmanuel Vadot      properties:
471f126890aSEmmanuel Vadot        interrupts:
472f126890aSEmmanuel Vadot          minItems: 3
473f126890aSEmmanuel Vadot          maxItems: 4
474f126890aSEmmanuel Vadot        interrupt-names:
475f126890aSEmmanuel Vadot          minItems: 3
476f126890aSEmmanuel Vadot          items:
477f126890aSEmmanuel Vadot            - const: pwr_event
478f126890aSEmmanuel Vadot            - const: dp_hs_phy_irq
479f126890aSEmmanuel Vadot            - const: dm_hs_phy_irq
480f126890aSEmmanuel Vadot            - const: ss_phy_irq
481f126890aSEmmanuel Vadot
4826be33864SEmmanuel VadotadditionalProperties: false
4836be33864SEmmanuel Vadot
484c66ec88fSEmmanuel Vadotexamples:
485c66ec88fSEmmanuel Vadot  - |
486c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
487c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
488c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
489c66ec88fSEmmanuel Vadot    soc {
490c66ec88fSEmmanuel Vadot        #address-cells = <2>;
491c66ec88fSEmmanuel Vadot        #size-cells = <2>;
492c66ec88fSEmmanuel Vadot
493c66ec88fSEmmanuel Vadot        usb@a6f8800 {
494c66ec88fSEmmanuel Vadot            compatible = "qcom,sdm845-dwc3", "qcom,dwc3";
495c66ec88fSEmmanuel Vadot            reg = <0 0x0a6f8800 0 0x400>;
496c66ec88fSEmmanuel Vadot
497c66ec88fSEmmanuel Vadot            #address-cells = <2>;
498c66ec88fSEmmanuel Vadot            #size-cells = <2>;
499c66ec88fSEmmanuel Vadot            ranges;
500c66ec88fSEmmanuel Vadot            clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
501c66ec88fSEmmanuel Vadot                     <&gcc GCC_USB30_PRIM_MASTER_CLK>,
502c66ec88fSEmmanuel Vadot                     <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
503d5b0e70fSEmmanuel Vadot                     <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
504d5b0e70fSEmmanuel Vadot                     <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
505d5b0e70fSEmmanuel Vadot            clock-names = "cfg_noc",
506d5b0e70fSEmmanuel Vadot                          "core",
507d5b0e70fSEmmanuel Vadot                          "iface",
508d5b0e70fSEmmanuel Vadot                          "sleep",
509d5b0e70fSEmmanuel Vadot                          "mock_utmi";
510c66ec88fSEmmanuel Vadot
511c66ec88fSEmmanuel Vadot            assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
512c66ec88fSEmmanuel Vadot                          <&gcc GCC_USB30_PRIM_MASTER_CLK>;
513c66ec88fSEmmanuel Vadot            assigned-clock-rates = <19200000>, <150000000>;
514c66ec88fSEmmanuel Vadot
515c66ec88fSEmmanuel Vadot            interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
516c66ec88fSEmmanuel Vadot                         <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
517c66ec88fSEmmanuel Vadot                         <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
518c66ec88fSEmmanuel Vadot                         <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
519c66ec88fSEmmanuel Vadot            interrupt-names = "hs_phy_irq", "ss_phy_irq",
520c66ec88fSEmmanuel Vadot                          "dm_hs_phy_irq", "dp_hs_phy_irq";
521c66ec88fSEmmanuel Vadot
522c66ec88fSEmmanuel Vadot            power-domains = <&gcc USB30_PRIM_GDSC>;
523c66ec88fSEmmanuel Vadot
524c66ec88fSEmmanuel Vadot            resets = <&gcc GCC_USB30_PRIM_BCR>;
525c66ec88fSEmmanuel Vadot
5265def4c47SEmmanuel Vadot            usb@a600000 {
527c66ec88fSEmmanuel Vadot                compatible = "snps,dwc3";
528c66ec88fSEmmanuel Vadot                reg = <0 0x0a600000 0 0xcd00>;
529c66ec88fSEmmanuel Vadot                interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
530c66ec88fSEmmanuel Vadot                iommus = <&apps_smmu 0x740 0>;
531c66ec88fSEmmanuel Vadot                snps,dis_u2_susphy_quirk;
532c66ec88fSEmmanuel Vadot                snps,dis_enblslpm_quirk;
533c66ec88fSEmmanuel Vadot                phys = <&usb_1_hsphy>, <&usb_1_ssphy>;
534c66ec88fSEmmanuel Vadot                phy-names = "usb2-phy", "usb3-phy";
535c66ec88fSEmmanuel Vadot            };
536c66ec88fSEmmanuel Vadot        };
537c66ec88fSEmmanuel Vadot    };
538