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