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