xref: /freebsd/sys/contrib/device-tree/Bindings/usb/qcom,dwc3.yaml (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
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*84943d6fSEmmanuel Vadot          - qcom,ipq5018-dwc3
18aa1a8ff2SEmmanuel Vadot          - qcom,ipq5332-dwc3
198cc087a1SEmmanuel Vadot          - qcom,ipq6018-dwc3
20e67e8565SEmmanuel Vadot          - qcom,ipq8064-dwc3
21d5b0e70fSEmmanuel Vadot          - qcom,ipq8074-dwc3
22f126890aSEmmanuel Vadot          - qcom,ipq9574-dwc3
23c9ccf3a3SEmmanuel Vadot          - qcom,msm8953-dwc3
24d5b0e70fSEmmanuel Vadot          - qcom,msm8994-dwc3
25c66ec88fSEmmanuel Vadot          - qcom,msm8996-dwc3
26c66ec88fSEmmanuel Vadot          - qcom,msm8998-dwc3
27fac71e4eSEmmanuel Vadot          - qcom,qcm2290-dwc3
28d5b0e70fSEmmanuel Vadot          - qcom,qcs404-dwc3
29f126890aSEmmanuel Vadot          - qcom,sa8775p-dwc3
30c66ec88fSEmmanuel Vadot          - qcom,sc7180-dwc3
312eb4d8dcSEmmanuel Vadot          - qcom,sc7280-dwc3
32b97ee269SEmmanuel Vadot          - qcom,sc8280xp-dwc3
33354d7675SEmmanuel Vadot          - qcom,sdm660-dwc3
347ef62cebSEmmanuel Vadot          - qcom,sdm670-dwc3
35c66ec88fSEmmanuel Vadot          - qcom,sdm845-dwc3
365def4c47SEmmanuel Vadot          - qcom,sdx55-dwc3
37d5b0e70fSEmmanuel Vadot          - qcom,sdx65-dwc3
38*84943d6fSEmmanuel Vadot          - qcom,sdx75-dwc3
395956d97fSEmmanuel Vadot          - qcom,sm4250-dwc3
405956d97fSEmmanuel Vadot          - qcom,sm6115-dwc3
41d5b0e70fSEmmanuel Vadot          - qcom,sm6125-dwc3
42e67e8565SEmmanuel Vadot          - qcom,sm6350-dwc3
43b97ee269SEmmanuel Vadot          - qcom,sm6375-dwc3
445def4c47SEmmanuel Vadot          - qcom,sm8150-dwc3
455def4c47SEmmanuel Vadot          - qcom,sm8250-dwc3
465def4c47SEmmanuel Vadot          - qcom,sm8350-dwc3
47e67e8565SEmmanuel Vadot          - qcom,sm8450-dwc3
488bab661aSEmmanuel Vadot          - qcom,sm8550-dwc3
49c66ec88fSEmmanuel Vadot      - const: qcom,dwc3
50c66ec88fSEmmanuel Vadot
51c66ec88fSEmmanuel Vadot  reg:
52c66ec88fSEmmanuel Vadot    description: Offset and length of register set for QSCRATCH wrapper
53c66ec88fSEmmanuel Vadot    maxItems: 1
54c66ec88fSEmmanuel Vadot
55c66ec88fSEmmanuel Vadot  "#address-cells":
56c66ec88fSEmmanuel Vadot    enum: [ 1, 2 ]
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel Vadot  "#size-cells":
59c66ec88fSEmmanuel Vadot    enum: [ 1, 2 ]
60c66ec88fSEmmanuel Vadot
61c66ec88fSEmmanuel Vadot  ranges: true
62c66ec88fSEmmanuel Vadot
63c66ec88fSEmmanuel Vadot  power-domains:
64c66ec88fSEmmanuel Vadot    description: specifies a phandle to PM domain provider node
65c66ec88fSEmmanuel Vadot    maxItems: 1
66c66ec88fSEmmanuel Vadot
67cb7aa33aSEmmanuel Vadot  required-opps:
68cb7aa33aSEmmanuel Vadot    maxItems: 1
69cb7aa33aSEmmanuel Vadot
70c66ec88fSEmmanuel Vadot  clocks:
71d5b0e70fSEmmanuel Vadot    description: |
72d5b0e70fSEmmanuel Vadot      Several clocks are used, depending on the variant. Typical ones are::
73d5b0e70fSEmmanuel Vadot       - cfg_noc:: System Config NOC clock.
74d5b0e70fSEmmanuel Vadot       - core:: Master/Core clock, has to be >= 125 MHz for SS operation and >=
75d5b0e70fSEmmanuel Vadot                60MHz for HS operation.
76d5b0e70fSEmmanuel Vadot       - iface:: System bus AXI clock.
77d5b0e70fSEmmanuel Vadot       - sleep:: Sleep clock, used for wakeup when USB3 core goes into low
78d5b0e70fSEmmanuel Vadot                 power mode (U3).
79d5b0e70fSEmmanuel Vadot       - mock_utmi:: Mock utmi clock needed for ITP/SOF generation in host
80d5b0e70fSEmmanuel Vadot                     mode. Its frequency should be 19.2MHz.
81d5b0e70fSEmmanuel Vadot    minItems: 1
82b97ee269SEmmanuel Vadot    maxItems: 9
83c66ec88fSEmmanuel Vadot
84c66ec88fSEmmanuel Vadot  clock-names:
85d5b0e70fSEmmanuel Vadot    minItems: 1
86b97ee269SEmmanuel Vadot    maxItems: 9
87c66ec88fSEmmanuel Vadot
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#
121fac71e4eSEmmanuel Vadot    unevaluatedProperties: false
122c66ec88fSEmmanuel Vadot
123b97ee269SEmmanuel Vadot    properties:
124b97ee269SEmmanuel Vadot      wakeup-source: false
125b97ee269SEmmanuel Vadot
126c66ec88fSEmmanuel Vadotrequired:
127c66ec88fSEmmanuel Vadot  - compatible
128c66ec88fSEmmanuel Vadot  - reg
129c66ec88fSEmmanuel Vadot  - "#address-cells"
130c66ec88fSEmmanuel Vadot  - "#size-cells"
131c66ec88fSEmmanuel Vadot  - ranges
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:
175f126890aSEmmanuel Vadot              - qcom,ipq9574-dwc3
176d5b0e70fSEmmanuel Vadot              - qcom,msm8953-dwc3
177d5b0e70fSEmmanuel Vadot              - qcom,msm8996-dwc3
178d5b0e70fSEmmanuel Vadot              - qcom,msm8998-dwc3
179f126890aSEmmanuel Vadot              - qcom,sa8775p-dwc3
180d5b0e70fSEmmanuel Vadot              - qcom,sc7180-dwc3
181d5b0e70fSEmmanuel Vadot              - qcom,sc7280-dwc3
1827ef62cebSEmmanuel Vadot              - qcom,sdm670-dwc3
183d5b0e70fSEmmanuel Vadot              - qcom,sdm845-dwc3
184d5b0e70fSEmmanuel Vadot              - qcom,sdx55-dwc3
185*84943d6fSEmmanuel Vadot              - qcom,sdx65-dwc3
186*84943d6fSEmmanuel Vadot              - qcom,sdx75-dwc3
187d5b0e70fSEmmanuel Vadot              - qcom,sm6350-dwc3
188d5b0e70fSEmmanuel Vadot    then:
189d5b0e70fSEmmanuel Vadot      properties:
190d5b0e70fSEmmanuel Vadot        clocks:
191d5b0e70fSEmmanuel Vadot          maxItems: 5
192d5b0e70fSEmmanuel Vadot        clock-names:
193d5b0e70fSEmmanuel Vadot          items:
194d5b0e70fSEmmanuel Vadot            - const: cfg_noc
195d5b0e70fSEmmanuel Vadot            - const: core
196d5b0e70fSEmmanuel Vadot            - const: iface
197d5b0e70fSEmmanuel Vadot            - const: sleep
198d5b0e70fSEmmanuel Vadot            - const: mock_utmi
199d5b0e70fSEmmanuel Vadot
200d5b0e70fSEmmanuel Vadot  - if:
201d5b0e70fSEmmanuel Vadot      properties:
202d5b0e70fSEmmanuel Vadot        compatible:
203d5b0e70fSEmmanuel Vadot          contains:
204d5b0e70fSEmmanuel Vadot            enum:
205d5b0e70fSEmmanuel Vadot              - qcom,ipq6018-dwc3
206d5b0e70fSEmmanuel Vadot    then:
207d5b0e70fSEmmanuel Vadot      properties:
208d5b0e70fSEmmanuel Vadot        clocks:
209d5b0e70fSEmmanuel Vadot          minItems: 3
210d5b0e70fSEmmanuel Vadot          maxItems: 4
211d5b0e70fSEmmanuel Vadot        clock-names:
212d5b0e70fSEmmanuel Vadot          oneOf:
213d5b0e70fSEmmanuel Vadot            - items:
214d5b0e70fSEmmanuel Vadot                - const: core
215d5b0e70fSEmmanuel Vadot                - const: sleep
216d5b0e70fSEmmanuel Vadot                - const: mock_utmi
217d5b0e70fSEmmanuel Vadot            - items:
218d5b0e70fSEmmanuel Vadot                - const: cfg_noc
219d5b0e70fSEmmanuel Vadot                - const: core
220d5b0e70fSEmmanuel Vadot                - const: sleep
221d5b0e70fSEmmanuel Vadot                - const: mock_utmi
222d5b0e70fSEmmanuel Vadot
223d5b0e70fSEmmanuel Vadot  - if:
224d5b0e70fSEmmanuel Vadot      properties:
225d5b0e70fSEmmanuel Vadot        compatible:
226d5b0e70fSEmmanuel Vadot          contains:
227d5b0e70fSEmmanuel Vadot            enum:
228d5b0e70fSEmmanuel Vadot              - qcom,ipq8074-dwc3
229d5b0e70fSEmmanuel Vadot    then:
230d5b0e70fSEmmanuel Vadot      properties:
231d5b0e70fSEmmanuel Vadot        clocks:
232d5b0e70fSEmmanuel Vadot          maxItems: 4
233d5b0e70fSEmmanuel Vadot        clock-names:
234d5b0e70fSEmmanuel Vadot          items:
235d5b0e70fSEmmanuel Vadot            - const: cfg_noc
236d5b0e70fSEmmanuel Vadot            - const: core
237d5b0e70fSEmmanuel Vadot            - const: sleep
238d5b0e70fSEmmanuel Vadot            - const: mock_utmi
239d5b0e70fSEmmanuel Vadot
240d5b0e70fSEmmanuel Vadot  - if:
241d5b0e70fSEmmanuel Vadot      properties:
242d5b0e70fSEmmanuel Vadot        compatible:
243d5b0e70fSEmmanuel Vadot          contains:
244d5b0e70fSEmmanuel Vadot            enum:
245*84943d6fSEmmanuel Vadot              - qcom,ipq5018-dwc3
246aa1a8ff2SEmmanuel Vadot              - qcom,ipq5332-dwc3
247d5b0e70fSEmmanuel Vadot              - qcom,msm8994-dwc3
248d5b0e70fSEmmanuel Vadot              - qcom,qcs404-dwc3
249d5b0e70fSEmmanuel Vadot    then:
250d5b0e70fSEmmanuel Vadot      properties:
251d5b0e70fSEmmanuel Vadot        clocks:
252d5b0e70fSEmmanuel Vadot          maxItems: 4
253d5b0e70fSEmmanuel Vadot        clock-names:
254d5b0e70fSEmmanuel Vadot          items:
255d5b0e70fSEmmanuel Vadot            - const: core
256d5b0e70fSEmmanuel Vadot            - const: iface
257d5b0e70fSEmmanuel Vadot            - const: sleep
258d5b0e70fSEmmanuel Vadot            - const: mock_utmi
259d5b0e70fSEmmanuel Vadot
260d5b0e70fSEmmanuel Vadot  - if:
261d5b0e70fSEmmanuel Vadot      properties:
262d5b0e70fSEmmanuel Vadot        compatible:
263d5b0e70fSEmmanuel Vadot          contains:
264d5b0e70fSEmmanuel Vadot            enum:
265b97ee269SEmmanuel Vadot              - qcom,sc8280xp-dwc3
266b97ee269SEmmanuel Vadot    then:
267b97ee269SEmmanuel Vadot      properties:
268b97ee269SEmmanuel Vadot        clocks:
269b97ee269SEmmanuel Vadot          maxItems: 9
270b97ee269SEmmanuel Vadot        clock-names:
271b97ee269SEmmanuel Vadot          items:
272b97ee269SEmmanuel Vadot            - const: cfg_noc
273b97ee269SEmmanuel Vadot            - const: core
274b97ee269SEmmanuel Vadot            - const: iface
275b97ee269SEmmanuel Vadot            - const: sleep
276b97ee269SEmmanuel Vadot            - const: mock_utmi
277b97ee269SEmmanuel Vadot            - const: noc_aggr
278b97ee269SEmmanuel Vadot            - const: noc_aggr_north
279b97ee269SEmmanuel Vadot            - const: noc_aggr_south
280b97ee269SEmmanuel Vadot            - const: noc_sys
281b97ee269SEmmanuel Vadot
282b97ee269SEmmanuel Vadot  - if:
283b97ee269SEmmanuel Vadot      properties:
284b97ee269SEmmanuel Vadot        compatible:
285b97ee269SEmmanuel Vadot          contains:
286b97ee269SEmmanuel Vadot            enum:
287d5b0e70fSEmmanuel Vadot              - qcom,sdm660-dwc3
288d5b0e70fSEmmanuel Vadot    then:
289d5b0e70fSEmmanuel Vadot      properties:
290d5b0e70fSEmmanuel Vadot        clocks:
291aa1a8ff2SEmmanuel Vadot          minItems: 5
292aa1a8ff2SEmmanuel Vadot          maxItems: 6
293d5b0e70fSEmmanuel Vadot        clock-names:
294aa1a8ff2SEmmanuel Vadot          oneOf:
295aa1a8ff2SEmmanuel 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
302aa1a8ff2SEmmanuel Vadot            - items:
303aa1a8ff2SEmmanuel Vadot                - const: cfg_noc
304aa1a8ff2SEmmanuel Vadot                - const: core
305aa1a8ff2SEmmanuel Vadot                - const: sleep
306aa1a8ff2SEmmanuel Vadot                - const: mock_utmi
307aa1a8ff2SEmmanuel Vadot                - const: bus
308d5b0e70fSEmmanuel Vadot
309d5b0e70fSEmmanuel Vadot  - if:
310d5b0e70fSEmmanuel Vadot      properties:
311d5b0e70fSEmmanuel Vadot        compatible:
312d5b0e70fSEmmanuel Vadot          contains:
313d5b0e70fSEmmanuel Vadot            enum:
314fac71e4eSEmmanuel Vadot              - qcom,qcm2290-dwc3
3157ef62cebSEmmanuel Vadot              - qcom,sm6115-dwc3
316d5b0e70fSEmmanuel Vadot              - qcom,sm6125-dwc3
317d5b0e70fSEmmanuel Vadot              - qcom,sm8150-dwc3
318d5b0e70fSEmmanuel Vadot              - qcom,sm8250-dwc3
319d5b0e70fSEmmanuel Vadot              - qcom,sm8450-dwc3
3208bab661aSEmmanuel Vadot              - qcom,sm8550-dwc3
321d5b0e70fSEmmanuel Vadot    then:
322d5b0e70fSEmmanuel Vadot      properties:
323d5b0e70fSEmmanuel Vadot        clocks:
324d5b0e70fSEmmanuel Vadot          minItems: 6
325d5b0e70fSEmmanuel Vadot        clock-names:
326d5b0e70fSEmmanuel Vadot          items:
327d5b0e70fSEmmanuel Vadot            - const: cfg_noc
328d5b0e70fSEmmanuel Vadot            - const: core
329d5b0e70fSEmmanuel Vadot            - const: iface
330d5b0e70fSEmmanuel Vadot            - const: sleep
331d5b0e70fSEmmanuel Vadot            - const: mock_utmi
332d5b0e70fSEmmanuel Vadot            - const: xo
333d5b0e70fSEmmanuel Vadot
334d5b0e70fSEmmanuel Vadot  - if:
335d5b0e70fSEmmanuel Vadot      properties:
336d5b0e70fSEmmanuel Vadot        compatible:
337d5b0e70fSEmmanuel Vadot          contains:
338d5b0e70fSEmmanuel Vadot            enum:
339d5b0e70fSEmmanuel Vadot              - qcom,sm8350-dwc3
340d5b0e70fSEmmanuel Vadot    then:
341d5b0e70fSEmmanuel Vadot      properties:
342d5b0e70fSEmmanuel Vadot        clocks:
343d5b0e70fSEmmanuel Vadot          minItems: 5
344d5b0e70fSEmmanuel Vadot          maxItems: 6
345d5b0e70fSEmmanuel Vadot        clock-names:
346d5b0e70fSEmmanuel Vadot          minItems: 5
347d5b0e70fSEmmanuel Vadot          items:
348d5b0e70fSEmmanuel Vadot            - const: cfg_noc
349d5b0e70fSEmmanuel Vadot            - const: core
350d5b0e70fSEmmanuel Vadot            - const: iface
351d5b0e70fSEmmanuel Vadot            - const: sleep
352d5b0e70fSEmmanuel Vadot            - const: mock_utmi
353d5b0e70fSEmmanuel Vadot            - const: xo
354d5b0e70fSEmmanuel Vadot
355b97ee269SEmmanuel Vadot  - if:
356b97ee269SEmmanuel Vadot      properties:
357b97ee269SEmmanuel Vadot        compatible:
358b97ee269SEmmanuel Vadot          contains:
359b97ee269SEmmanuel Vadot            enum:
360b97ee269SEmmanuel Vadot              - qcom,ipq4019-dwc3
361b97ee269SEmmanuel Vadot              - qcom,ipq6018-dwc3
362b97ee269SEmmanuel Vadot              - qcom,ipq8064-dwc3
363b97ee269SEmmanuel Vadot              - qcom,ipq8074-dwc3
364b97ee269SEmmanuel Vadot              - qcom,msm8994-dwc3
365b97ee269SEmmanuel Vadot              - qcom,qcs404-dwc3
366b97ee269SEmmanuel Vadot              - qcom,sc7180-dwc3
3677ef62cebSEmmanuel Vadot              - qcom,sdm670-dwc3
368b97ee269SEmmanuel Vadot              - qcom,sdm845-dwc3
369b97ee269SEmmanuel Vadot              - qcom,sdx55-dwc3
370b97ee269SEmmanuel Vadot              - qcom,sdx65-dwc3
371*84943d6fSEmmanuel Vadot              - qcom,sdx75-dwc3
372b97ee269SEmmanuel Vadot              - qcom,sm4250-dwc3
373b97ee269SEmmanuel Vadot              - qcom,sm6125-dwc3
374b97ee269SEmmanuel Vadot              - qcom,sm6350-dwc3
375b97ee269SEmmanuel Vadot              - qcom,sm8150-dwc3
376b97ee269SEmmanuel Vadot              - qcom,sm8250-dwc3
377b97ee269SEmmanuel Vadot              - qcom,sm8350-dwc3
378b97ee269SEmmanuel Vadot              - qcom,sm8450-dwc3
3798bab661aSEmmanuel Vadot              - qcom,sm8550-dwc3
380b97ee269SEmmanuel Vadot    then:
381b97ee269SEmmanuel Vadot      properties:
382b97ee269SEmmanuel Vadot        interrupts:
383b97ee269SEmmanuel Vadot          items:
384b97ee269SEmmanuel Vadot            - description: The interrupt that is asserted
385b97ee269SEmmanuel Vadot                when a wakeup event is received on USB2 bus.
386b97ee269SEmmanuel Vadot            - description: The interrupt that is asserted
387b97ee269SEmmanuel Vadot                when a wakeup event is received on USB3 bus.
388b97ee269SEmmanuel Vadot            - description: Wakeup event on DM line.
389b97ee269SEmmanuel Vadot            - description: Wakeup event on DP line.
390b97ee269SEmmanuel Vadot        interrupt-names:
391b97ee269SEmmanuel Vadot          items:
392b97ee269SEmmanuel Vadot            - const: hs_phy_irq
393b97ee269SEmmanuel Vadot            - const: ss_phy_irq
394b97ee269SEmmanuel Vadot            - const: dm_hs_phy_irq
395b97ee269SEmmanuel Vadot            - const: dp_hs_phy_irq
396b97ee269SEmmanuel Vadot
397b97ee269SEmmanuel Vadot  - if:
398b97ee269SEmmanuel Vadot      properties:
399b97ee269SEmmanuel Vadot        compatible:
400b97ee269SEmmanuel Vadot          contains:
401b97ee269SEmmanuel Vadot            enum:
402b97ee269SEmmanuel Vadot              - qcom,msm8953-dwc3
403b97ee269SEmmanuel Vadot              - qcom,msm8996-dwc3
404b97ee269SEmmanuel Vadot              - qcom,msm8998-dwc3
4057ef62cebSEmmanuel Vadot              - qcom,sm6115-dwc3
406b97ee269SEmmanuel Vadot    then:
407b97ee269SEmmanuel Vadot      properties:
408b97ee269SEmmanuel Vadot        interrupts:
409b97ee269SEmmanuel Vadot          maxItems: 2
410b97ee269SEmmanuel Vadot        interrupt-names:
411b97ee269SEmmanuel Vadot          items:
412b97ee269SEmmanuel Vadot            - const: hs_phy_irq
413b97ee269SEmmanuel Vadot            - const: ss_phy_irq
414b97ee269SEmmanuel Vadot
415b97ee269SEmmanuel Vadot  - if:
416b97ee269SEmmanuel Vadot      properties:
417b97ee269SEmmanuel Vadot        compatible:
418b97ee269SEmmanuel Vadot          contains:
419b97ee269SEmmanuel Vadot            enum:
420*84943d6fSEmmanuel Vadot              - qcom,ipq5018-dwc3
421aa1a8ff2SEmmanuel Vadot              - qcom,ipq5332-dwc3
422b97ee269SEmmanuel Vadot              - qcom,sdm660-dwc3
423b97ee269SEmmanuel Vadot    then:
424b97ee269SEmmanuel Vadot      properties:
425b97ee269SEmmanuel Vadot        interrupts:
426b97ee269SEmmanuel Vadot          minItems: 1
427b97ee269SEmmanuel Vadot          maxItems: 2
428b97ee269SEmmanuel Vadot        interrupt-names:
429b97ee269SEmmanuel Vadot          minItems: 1
430b97ee269SEmmanuel Vadot          items:
431b97ee269SEmmanuel Vadot            - const: hs_phy_irq
432b97ee269SEmmanuel Vadot            - const: ss_phy_irq
433b97ee269SEmmanuel Vadot
434b97ee269SEmmanuel Vadot  - if:
435b97ee269SEmmanuel Vadot      properties:
436b97ee269SEmmanuel Vadot        compatible:
437b97ee269SEmmanuel Vadot          contains:
438b97ee269SEmmanuel Vadot            enum:
439b97ee269SEmmanuel Vadot              - qcom,sc7280-dwc3
440b97ee269SEmmanuel Vadot    then:
441b97ee269SEmmanuel Vadot      properties:
442b97ee269SEmmanuel Vadot        interrupts:
443b97ee269SEmmanuel Vadot          minItems: 3
444b97ee269SEmmanuel Vadot          maxItems: 4
445b97ee269SEmmanuel Vadot        interrupt-names:
446b97ee269SEmmanuel Vadot          minItems: 3
447b97ee269SEmmanuel Vadot          items:
448b97ee269SEmmanuel Vadot            - const: hs_phy_irq
449b97ee269SEmmanuel Vadot            - const: dp_hs_phy_irq
450b97ee269SEmmanuel Vadot            - const: dm_hs_phy_irq
451b97ee269SEmmanuel Vadot            - const: ss_phy_irq
452b97ee269SEmmanuel Vadot
453b97ee269SEmmanuel Vadot  - if:
454b97ee269SEmmanuel Vadot      properties:
455b97ee269SEmmanuel Vadot        compatible:
456b97ee269SEmmanuel Vadot          contains:
457b97ee269SEmmanuel Vadot            enum:
458b97ee269SEmmanuel Vadot              - qcom,sc8280xp-dwc3
459b97ee269SEmmanuel Vadot    then:
460b97ee269SEmmanuel Vadot      properties:
461b97ee269SEmmanuel Vadot        interrupts:
462b97ee269SEmmanuel Vadot          maxItems: 4
463b97ee269SEmmanuel Vadot        interrupt-names:
464b97ee269SEmmanuel Vadot          items:
465b97ee269SEmmanuel Vadot            - const: pwr_event
466b97ee269SEmmanuel Vadot            - const: dp_hs_phy_irq
467b97ee269SEmmanuel Vadot            - const: dm_hs_phy_irq
468b97ee269SEmmanuel Vadot            - const: ss_phy_irq
469d5b0e70fSEmmanuel Vadot
470f126890aSEmmanuel Vadot  - if:
471f126890aSEmmanuel Vadot      properties:
472f126890aSEmmanuel Vadot        compatible:
473f126890aSEmmanuel Vadot          contains:
474f126890aSEmmanuel Vadot            enum:
475f126890aSEmmanuel Vadot              - qcom,sa8775p-dwc3
476f126890aSEmmanuel Vadot    then:
477f126890aSEmmanuel Vadot      properties:
478f126890aSEmmanuel Vadot        interrupts:
479f126890aSEmmanuel Vadot          minItems: 3
480f126890aSEmmanuel Vadot          maxItems: 4
481f126890aSEmmanuel Vadot        interrupt-names:
482f126890aSEmmanuel Vadot          minItems: 3
483f126890aSEmmanuel Vadot          items:
484f126890aSEmmanuel Vadot            - const: pwr_event
485f126890aSEmmanuel Vadot            - const: dp_hs_phy_irq
486f126890aSEmmanuel Vadot            - const: dm_hs_phy_irq
487f126890aSEmmanuel Vadot            - const: ss_phy_irq
488f126890aSEmmanuel Vadot
4896be33864SEmmanuel VadotadditionalProperties: false
4906be33864SEmmanuel Vadot
491c66ec88fSEmmanuel Vadotexamples:
492c66ec88fSEmmanuel Vadot  - |
493c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
494c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
495c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
496c66ec88fSEmmanuel Vadot    soc {
497c66ec88fSEmmanuel Vadot        #address-cells = <2>;
498c66ec88fSEmmanuel Vadot        #size-cells = <2>;
499c66ec88fSEmmanuel Vadot
500c66ec88fSEmmanuel Vadot        usb@a6f8800 {
501c66ec88fSEmmanuel Vadot            compatible = "qcom,sdm845-dwc3", "qcom,dwc3";
502c66ec88fSEmmanuel Vadot            reg = <0 0x0a6f8800 0 0x400>;
503c66ec88fSEmmanuel Vadot
504c66ec88fSEmmanuel Vadot            #address-cells = <2>;
505c66ec88fSEmmanuel Vadot            #size-cells = <2>;
506c66ec88fSEmmanuel Vadot            ranges;
507c66ec88fSEmmanuel Vadot            clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
508c66ec88fSEmmanuel Vadot                     <&gcc GCC_USB30_PRIM_MASTER_CLK>,
509c66ec88fSEmmanuel Vadot                     <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
510d5b0e70fSEmmanuel Vadot                     <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
511d5b0e70fSEmmanuel Vadot                     <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
512d5b0e70fSEmmanuel Vadot            clock-names = "cfg_noc",
513d5b0e70fSEmmanuel Vadot                          "core",
514d5b0e70fSEmmanuel Vadot                          "iface",
515d5b0e70fSEmmanuel Vadot                          "sleep",
516d5b0e70fSEmmanuel Vadot                          "mock_utmi";
517c66ec88fSEmmanuel Vadot
518c66ec88fSEmmanuel Vadot            assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
519c66ec88fSEmmanuel Vadot                          <&gcc GCC_USB30_PRIM_MASTER_CLK>;
520c66ec88fSEmmanuel Vadot            assigned-clock-rates = <19200000>, <150000000>;
521c66ec88fSEmmanuel Vadot
522c66ec88fSEmmanuel Vadot            interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
523c66ec88fSEmmanuel Vadot                         <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
524*84943d6fSEmmanuel Vadot                         <GIC_SPI 488 IRQ_TYPE_EDGE_BOTH>,
525*84943d6fSEmmanuel Vadot                         <GIC_SPI 489 IRQ_TYPE_EDGE_BOTH>;
526c66ec88fSEmmanuel Vadot            interrupt-names = "hs_phy_irq", "ss_phy_irq",
527c66ec88fSEmmanuel Vadot                          "dm_hs_phy_irq", "dp_hs_phy_irq";
528c66ec88fSEmmanuel Vadot
529c66ec88fSEmmanuel Vadot            power-domains = <&gcc USB30_PRIM_GDSC>;
530c66ec88fSEmmanuel Vadot
531c66ec88fSEmmanuel Vadot            resets = <&gcc GCC_USB30_PRIM_BCR>;
532c66ec88fSEmmanuel Vadot
5335def4c47SEmmanuel Vadot            usb@a600000 {
534c66ec88fSEmmanuel Vadot                compatible = "snps,dwc3";
535c66ec88fSEmmanuel Vadot                reg = <0 0x0a600000 0 0xcd00>;
536c66ec88fSEmmanuel Vadot                interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
537c66ec88fSEmmanuel Vadot                iommus = <&apps_smmu 0x740 0>;
538c66ec88fSEmmanuel Vadot                snps,dis_u2_susphy_quirk;
539c66ec88fSEmmanuel Vadot                snps,dis_enblslpm_quirk;
540c66ec88fSEmmanuel Vadot                phys = <&usb_1_hsphy>, <&usb_1_ssphy>;
541c66ec88fSEmmanuel Vadot                phy-names = "usb2-phy", "usb3-phy";
542c66ec88fSEmmanuel Vadot            };
543c66ec88fSEmmanuel Vadot        };
544c66ec88fSEmmanuel Vadot    };
545