xref: /freebsd/sys/contrib/device-tree/Bindings/usb/qcom,snps-dwc3.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1ae5de77eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2ae5de77eSEmmanuel Vadot%YAML 1.2
3ae5de77eSEmmanuel Vadot---
4ae5de77eSEmmanuel Vadot$id: http://devicetree.org/schemas/usb/qcom,snps-dwc3.yaml#
5ae5de77eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6ae5de77eSEmmanuel Vadot
7ae5de77eSEmmanuel Vadottitle: Qualcomm SuperSpeed DWC3 USB SoC controller
8ae5de77eSEmmanuel Vadot
9ae5de77eSEmmanuel Vadotmaintainers:
10ae5de77eSEmmanuel Vadot  - Wesley Cheng <quic_wcheng@quicinc.com>
11ae5de77eSEmmanuel Vadot
12ae5de77eSEmmanuel Vadotdescription:
13ae5de77eSEmmanuel Vadot  Describes the Qualcomm USB block, based on Synopsys DWC3.
14ae5de77eSEmmanuel Vadot
15ae5de77eSEmmanuel Vadotselect:
16ae5de77eSEmmanuel Vadot  properties:
17ae5de77eSEmmanuel Vadot    compatible:
18ae5de77eSEmmanuel Vadot      contains:
19ae5de77eSEmmanuel Vadot        const: qcom,snps-dwc3
20ae5de77eSEmmanuel Vadot  required:
21ae5de77eSEmmanuel Vadot    - compatible
22ae5de77eSEmmanuel Vadot
23ae5de77eSEmmanuel Vadotproperties:
24ae5de77eSEmmanuel Vadot  compatible:
25ae5de77eSEmmanuel Vadot    items:
26ae5de77eSEmmanuel Vadot      - enum:
27ae5de77eSEmmanuel Vadot          - qcom,ipq4019-dwc3
28ae5de77eSEmmanuel Vadot          - qcom,ipq5018-dwc3
29ae5de77eSEmmanuel Vadot          - qcom,ipq5332-dwc3
30ae5de77eSEmmanuel Vadot          - qcom,ipq5424-dwc3
31ae5de77eSEmmanuel Vadot          - qcom,ipq6018-dwc3
32ae5de77eSEmmanuel Vadot          - qcom,ipq8064-dwc3
33ae5de77eSEmmanuel Vadot          - qcom,ipq8074-dwc3
34ae5de77eSEmmanuel Vadot          - qcom,ipq9574-dwc3
35*833e5d42SEmmanuel Vadot          - qcom,milos-dwc3
36ae5de77eSEmmanuel Vadot          - qcom,msm8953-dwc3
37ae5de77eSEmmanuel Vadot          - qcom,msm8994-dwc3
38ae5de77eSEmmanuel Vadot          - qcom,msm8996-dwc3
39ae5de77eSEmmanuel Vadot          - qcom,msm8998-dwc3
40ae5de77eSEmmanuel Vadot          - qcom,qcm2290-dwc3
41ae5de77eSEmmanuel Vadot          - qcom,qcs404-dwc3
42ae5de77eSEmmanuel Vadot          - qcom,qcs615-dwc3
43ae5de77eSEmmanuel Vadot          - qcom,qcs8300-dwc3
44ae5de77eSEmmanuel Vadot          - qcom,qdu1000-dwc3
45ae5de77eSEmmanuel Vadot          - qcom,sa8775p-dwc3
46ae5de77eSEmmanuel Vadot          - qcom,sar2130p-dwc3
47ae5de77eSEmmanuel Vadot          - qcom,sc7180-dwc3
48ae5de77eSEmmanuel Vadot          - qcom,sc7280-dwc3
49ae5de77eSEmmanuel Vadot          - qcom,sc8180x-dwc3
50ae5de77eSEmmanuel Vadot          - qcom,sc8180x-dwc3-mp
51ae5de77eSEmmanuel Vadot          - qcom,sc8280xp-dwc3
52ae5de77eSEmmanuel Vadot          - qcom,sc8280xp-dwc3-mp
53ae5de77eSEmmanuel Vadot          - qcom,sdm660-dwc3
54ae5de77eSEmmanuel Vadot          - qcom,sdm670-dwc3
55ae5de77eSEmmanuel Vadot          - qcom,sdm845-dwc3
56ae5de77eSEmmanuel Vadot          - qcom,sdx55-dwc3
57ae5de77eSEmmanuel Vadot          - qcom,sdx65-dwc3
58ae5de77eSEmmanuel Vadot          - qcom,sdx75-dwc3
59ae5de77eSEmmanuel Vadot          - qcom,sm4250-dwc3
60ae5de77eSEmmanuel Vadot          - qcom,sm6115-dwc3
61ae5de77eSEmmanuel Vadot          - qcom,sm6125-dwc3
62ae5de77eSEmmanuel Vadot          - qcom,sm6350-dwc3
63ae5de77eSEmmanuel Vadot          - qcom,sm6375-dwc3
64ae5de77eSEmmanuel Vadot          - qcom,sm8150-dwc3
65ae5de77eSEmmanuel Vadot          - qcom,sm8250-dwc3
66ae5de77eSEmmanuel Vadot          - qcom,sm8350-dwc3
67ae5de77eSEmmanuel Vadot          - qcom,sm8450-dwc3
68ae5de77eSEmmanuel Vadot          - qcom,sm8550-dwc3
69ae5de77eSEmmanuel Vadot          - qcom,sm8650-dwc3
70ae5de77eSEmmanuel Vadot          - qcom,x1e80100-dwc3
71ae5de77eSEmmanuel Vadot      - const: qcom,snps-dwc3
72ae5de77eSEmmanuel Vadot
73ae5de77eSEmmanuel Vadot  reg:
74ae5de77eSEmmanuel Vadot    maxItems: 1
75ae5de77eSEmmanuel Vadot
76ae5de77eSEmmanuel Vadot  power-domains:
77ae5de77eSEmmanuel Vadot    maxItems: 1
78ae5de77eSEmmanuel Vadot
79ae5de77eSEmmanuel Vadot  required-opps:
80ae5de77eSEmmanuel Vadot    maxItems: 1
81ae5de77eSEmmanuel Vadot
82ae5de77eSEmmanuel Vadot  clocks:
83ae5de77eSEmmanuel Vadot    description: |
84ae5de77eSEmmanuel Vadot      Several clocks are used, depending on the variant. Typical ones are::
85ae5de77eSEmmanuel Vadot       - cfg_noc:: System Config NOC clock.
86ae5de77eSEmmanuel Vadot       - core:: Master/Core clock, has to be >= 125 MHz for SS operation and >=
87ae5de77eSEmmanuel Vadot                60MHz for HS operation.
88ae5de77eSEmmanuel Vadot       - iface:: System bus AXI clock.
89ae5de77eSEmmanuel Vadot       - sleep:: Sleep clock, used for wakeup when USB3 core goes into low
90ae5de77eSEmmanuel Vadot                 power mode (U3).
91ae5de77eSEmmanuel Vadot       - mock_utmi:: Mock utmi clock needed for ITP/SOF generation in host
92ae5de77eSEmmanuel Vadot                     mode. Its frequency should be 19.2MHz.
93ae5de77eSEmmanuel Vadot    minItems: 1
94ae5de77eSEmmanuel Vadot    maxItems: 9
95ae5de77eSEmmanuel Vadot
96ae5de77eSEmmanuel Vadot  clock-names:
97ae5de77eSEmmanuel Vadot    minItems: 1
98ae5de77eSEmmanuel Vadot    maxItems: 9
99ae5de77eSEmmanuel Vadot
100ae5de77eSEmmanuel Vadot  dma-coherent: true
101ae5de77eSEmmanuel Vadot
102ae5de77eSEmmanuel Vadot  iommus:
103ae5de77eSEmmanuel Vadot    maxItems: 1
104ae5de77eSEmmanuel Vadot
105ae5de77eSEmmanuel Vadot  resets:
106ae5de77eSEmmanuel Vadot    maxItems: 1
107ae5de77eSEmmanuel Vadot
108ae5de77eSEmmanuel Vadot  interconnects:
109ae5de77eSEmmanuel Vadot    maxItems: 2
110ae5de77eSEmmanuel Vadot
111ae5de77eSEmmanuel Vadot  interconnect-names:
112ae5de77eSEmmanuel Vadot    items:
113ae5de77eSEmmanuel Vadot      - const: usb-ddr
114ae5de77eSEmmanuel Vadot      - const: apps-usb
115ae5de77eSEmmanuel Vadot
116ae5de77eSEmmanuel Vadot  interrupts:
117ae5de77eSEmmanuel Vadot    description: |
118ae5de77eSEmmanuel Vadot      Different types of interrupts are used based on HS PHY used on target:
119ae5de77eSEmmanuel Vadot        - dwc_usb3: Core DWC3 interrupt
120ae5de77eSEmmanuel Vadot        - pwr_event: Used for wakeup based on other power events.
121ae5de77eSEmmanuel Vadot        - hs_phy_irq: Apart from DP/DM/QUSB2 PHY interrupts, there is
122ae5de77eSEmmanuel Vadot                       hs_phy_irq which is not triggered by default and its
123ae5de77eSEmmanuel Vadot                       functionality is mutually exclusive to that of
124ae5de77eSEmmanuel Vadot                       {dp/dm}_hs_phy_irq and qusb2_phy_irq.
125ae5de77eSEmmanuel Vadot        - qusb2_phy: SoCs with QUSB2 PHY do not have separate DP/DM IRQs and
126ae5de77eSEmmanuel Vadot                      expose only a single IRQ whose behavior can be modified
127ae5de77eSEmmanuel Vadot                      by the QUSB2PHY_INTR_CTRL register. The required DPSE/
128ae5de77eSEmmanuel Vadot                      DMSE configuration is done in QUSB2PHY_INTR_CTRL register
129ae5de77eSEmmanuel Vadot                      of PHY address space.
130ae5de77eSEmmanuel Vadot        - {dp/dm}_hs_phy_irq: These IRQ's directly reflect changes on the DP/
131ae5de77eSEmmanuel Vadot                               DM pads of the SoC. These are used for wakeup
132ae5de77eSEmmanuel Vadot                               only on SoCs with non-QUSB2 targets with
133ae5de77eSEmmanuel Vadot                               exception of SDM670/SDM845/SM6350.
134ae5de77eSEmmanuel Vadot        - ss_phy_irq: Used for remote wakeup in Super Speed mode of operation.
135ae5de77eSEmmanuel Vadot    minItems: 3
136ae5de77eSEmmanuel Vadot    maxItems: 19
137ae5de77eSEmmanuel Vadot
138ae5de77eSEmmanuel Vadot  interrupt-names:
139ae5de77eSEmmanuel Vadot    minItems: 3
140ae5de77eSEmmanuel Vadot    maxItems: 19
141ae5de77eSEmmanuel Vadot
142ae5de77eSEmmanuel Vadot  qcom,select-utmi-as-pipe-clk:
143ae5de77eSEmmanuel Vadot    description:
144ae5de77eSEmmanuel Vadot      If present, disable USB3 pipe_clk requirement.
145ae5de77eSEmmanuel Vadot      Used when dwc3 operates without SSPHY and only
146ae5de77eSEmmanuel Vadot      HS/FS/LS modes are supported.
147ae5de77eSEmmanuel Vadot    type: boolean
148ae5de77eSEmmanuel Vadot
149ae5de77eSEmmanuel Vadot  wakeup-source: true
150ae5de77eSEmmanuel Vadot
151ae5de77eSEmmanuel Vadot# Required child node:
152ae5de77eSEmmanuel Vadot
153ae5de77eSEmmanuel Vadotrequired:
154ae5de77eSEmmanuel Vadot  - compatible
155ae5de77eSEmmanuel Vadot  - reg
156ae5de77eSEmmanuel Vadot  - clocks
157ae5de77eSEmmanuel Vadot  - clock-names
158ae5de77eSEmmanuel Vadot  - interrupts
159ae5de77eSEmmanuel Vadot  - interrupt-names
160ae5de77eSEmmanuel Vadot
161ae5de77eSEmmanuel VadotallOf:
162ae5de77eSEmmanuel Vadot  - $ref: snps,dwc3-common.yaml#
163ae5de77eSEmmanuel Vadot  - if:
164ae5de77eSEmmanuel Vadot      properties:
165ae5de77eSEmmanuel Vadot        compatible:
166ae5de77eSEmmanuel Vadot          contains:
167ae5de77eSEmmanuel Vadot            enum:
168ae5de77eSEmmanuel Vadot              - qcom,ipq4019-dwc3
169ae5de77eSEmmanuel Vadot              - qcom,ipq5332-dwc3
170ae5de77eSEmmanuel Vadot    then:
171ae5de77eSEmmanuel Vadot      properties:
172ae5de77eSEmmanuel Vadot        clocks:
173ae5de77eSEmmanuel Vadot          maxItems: 3
174ae5de77eSEmmanuel Vadot        clock-names:
175ae5de77eSEmmanuel Vadot          items:
176ae5de77eSEmmanuel Vadot            - const: core
177ae5de77eSEmmanuel Vadot            - const: sleep
178ae5de77eSEmmanuel Vadot            - const: mock_utmi
179ae5de77eSEmmanuel Vadot
180ae5de77eSEmmanuel Vadot  - if:
181ae5de77eSEmmanuel Vadot      properties:
182ae5de77eSEmmanuel Vadot        compatible:
183ae5de77eSEmmanuel Vadot          contains:
184ae5de77eSEmmanuel Vadot            enum:
185ae5de77eSEmmanuel Vadot              - qcom,ipq8064-dwc3
186ae5de77eSEmmanuel Vadot    then:
187ae5de77eSEmmanuel Vadot      properties:
188ae5de77eSEmmanuel Vadot        clocks:
189ae5de77eSEmmanuel Vadot          items:
190ae5de77eSEmmanuel Vadot            - description: Master/Core clock, has to be >= 125 MHz
191ae5de77eSEmmanuel Vadot                for SS operation and >= 60MHz for HS operation.
192ae5de77eSEmmanuel Vadot        clock-names:
193ae5de77eSEmmanuel Vadot          items:
194ae5de77eSEmmanuel Vadot            - const: core
195ae5de77eSEmmanuel Vadot
196ae5de77eSEmmanuel Vadot  - if:
197ae5de77eSEmmanuel Vadot      properties:
198ae5de77eSEmmanuel Vadot        compatible:
199ae5de77eSEmmanuel Vadot          contains:
200ae5de77eSEmmanuel Vadot            enum:
201ae5de77eSEmmanuel Vadot              - qcom,ipq9574-dwc3
202ae5de77eSEmmanuel Vadot              - qcom,msm8953-dwc3
203ae5de77eSEmmanuel Vadot              - qcom,msm8996-dwc3
204ae5de77eSEmmanuel Vadot              - qcom,msm8998-dwc3
205ae5de77eSEmmanuel Vadot              - qcom,qcs8300-dwc3
206ae5de77eSEmmanuel Vadot              - qcom,sa8775p-dwc3
207ae5de77eSEmmanuel Vadot              - qcom,sc7180-dwc3
208ae5de77eSEmmanuel Vadot              - qcom,sc7280-dwc3
209ae5de77eSEmmanuel Vadot              - qcom,sdm670-dwc3
210ae5de77eSEmmanuel Vadot              - qcom,sdm845-dwc3
211ae5de77eSEmmanuel Vadot              - qcom,sdx55-dwc3
212ae5de77eSEmmanuel Vadot              - qcom,sdx65-dwc3
213ae5de77eSEmmanuel Vadot              - qcom,sdx75-dwc3
214ae5de77eSEmmanuel Vadot              - qcom,sm6350-dwc3
215ae5de77eSEmmanuel Vadot    then:
216ae5de77eSEmmanuel Vadot      properties:
217ae5de77eSEmmanuel Vadot        clocks:
218ae5de77eSEmmanuel Vadot          maxItems: 5
219ae5de77eSEmmanuel Vadot        clock-names:
220ae5de77eSEmmanuel Vadot          items:
221ae5de77eSEmmanuel Vadot            - const: cfg_noc
222ae5de77eSEmmanuel Vadot            - const: core
223ae5de77eSEmmanuel Vadot            - const: iface
224ae5de77eSEmmanuel Vadot            - const: sleep
225ae5de77eSEmmanuel Vadot            - const: mock_utmi
226ae5de77eSEmmanuel Vadot
227ae5de77eSEmmanuel Vadot  - if:
228ae5de77eSEmmanuel Vadot      properties:
229ae5de77eSEmmanuel Vadot        compatible:
230ae5de77eSEmmanuel Vadot          contains:
231ae5de77eSEmmanuel Vadot            enum:
232ae5de77eSEmmanuel Vadot              - qcom,ipq6018-dwc3
233ae5de77eSEmmanuel Vadot    then:
234ae5de77eSEmmanuel Vadot      properties:
235ae5de77eSEmmanuel Vadot        clocks:
236ae5de77eSEmmanuel Vadot          minItems: 3
237ae5de77eSEmmanuel Vadot          maxItems: 4
238ae5de77eSEmmanuel Vadot        clock-names:
239ae5de77eSEmmanuel Vadot          oneOf:
240ae5de77eSEmmanuel Vadot            - items:
241ae5de77eSEmmanuel Vadot                - const: core
242ae5de77eSEmmanuel Vadot                - const: sleep
243ae5de77eSEmmanuel Vadot                - const: mock_utmi
244ae5de77eSEmmanuel Vadot            - items:
245ae5de77eSEmmanuel Vadot                - const: cfg_noc
246ae5de77eSEmmanuel Vadot                - const: core
247ae5de77eSEmmanuel Vadot                - const: sleep
248ae5de77eSEmmanuel Vadot                - const: mock_utmi
249ae5de77eSEmmanuel Vadot
250ae5de77eSEmmanuel Vadot  - if:
251ae5de77eSEmmanuel Vadot      properties:
252ae5de77eSEmmanuel Vadot        compatible:
253ae5de77eSEmmanuel Vadot          contains:
254ae5de77eSEmmanuel Vadot            enum:
255ae5de77eSEmmanuel Vadot              - qcom,ipq8074-dwc3
256ae5de77eSEmmanuel Vadot              - qcom,qdu1000-dwc3
257ae5de77eSEmmanuel Vadot    then:
258ae5de77eSEmmanuel Vadot      properties:
259ae5de77eSEmmanuel Vadot        clocks:
260ae5de77eSEmmanuel Vadot          maxItems: 4
261ae5de77eSEmmanuel Vadot        clock-names:
262ae5de77eSEmmanuel Vadot          items:
263ae5de77eSEmmanuel Vadot            - const: cfg_noc
264ae5de77eSEmmanuel Vadot            - const: core
265ae5de77eSEmmanuel Vadot            - const: sleep
266ae5de77eSEmmanuel Vadot            - const: mock_utmi
267ae5de77eSEmmanuel Vadot
268ae5de77eSEmmanuel Vadot  - if:
269ae5de77eSEmmanuel Vadot      properties:
270ae5de77eSEmmanuel Vadot        compatible:
271ae5de77eSEmmanuel Vadot          contains:
272ae5de77eSEmmanuel Vadot            enum:
273ae5de77eSEmmanuel Vadot              - qcom,ipq5018-dwc3
274ae5de77eSEmmanuel Vadot              - qcom,msm8994-dwc3
275ae5de77eSEmmanuel Vadot              - qcom,qcs404-dwc3
276ae5de77eSEmmanuel Vadot    then:
277ae5de77eSEmmanuel Vadot      properties:
278ae5de77eSEmmanuel Vadot        clocks:
279ae5de77eSEmmanuel Vadot          maxItems: 4
280ae5de77eSEmmanuel Vadot        clock-names:
281ae5de77eSEmmanuel Vadot          items:
282ae5de77eSEmmanuel Vadot            - const: core
283ae5de77eSEmmanuel Vadot            - const: iface
284ae5de77eSEmmanuel Vadot            - const: sleep
285ae5de77eSEmmanuel Vadot            - const: mock_utmi
286ae5de77eSEmmanuel Vadot
287ae5de77eSEmmanuel Vadot  - if:
288ae5de77eSEmmanuel Vadot      properties:
289ae5de77eSEmmanuel Vadot        compatible:
290ae5de77eSEmmanuel Vadot          contains:
291ae5de77eSEmmanuel Vadot            enum:
292ae5de77eSEmmanuel Vadot              - qcom,sc8280xp-dwc3
293ae5de77eSEmmanuel Vadot              - qcom,sc8280xp-dwc3-mp
294ae5de77eSEmmanuel Vadot              - qcom,x1e80100-dwc3
295ae5de77eSEmmanuel Vadot              - qcom,x1e80100-dwc3-mp
296ae5de77eSEmmanuel Vadot    then:
297ae5de77eSEmmanuel Vadot      properties:
298ae5de77eSEmmanuel Vadot        clocks:
299ae5de77eSEmmanuel Vadot          maxItems: 9
300ae5de77eSEmmanuel Vadot        clock-names:
301ae5de77eSEmmanuel Vadot          items:
302ae5de77eSEmmanuel Vadot            - const: cfg_noc
303ae5de77eSEmmanuel Vadot            - const: core
304ae5de77eSEmmanuel Vadot            - const: iface
305ae5de77eSEmmanuel Vadot            - const: sleep
306ae5de77eSEmmanuel Vadot            - const: mock_utmi
307ae5de77eSEmmanuel Vadot            - const: noc_aggr
308ae5de77eSEmmanuel Vadot            - const: noc_aggr_north
309ae5de77eSEmmanuel Vadot            - const: noc_aggr_south
310ae5de77eSEmmanuel Vadot            - const: noc_sys
311ae5de77eSEmmanuel Vadot
312ae5de77eSEmmanuel Vadot  - if:
313ae5de77eSEmmanuel Vadot      properties:
314ae5de77eSEmmanuel Vadot        compatible:
315ae5de77eSEmmanuel Vadot          contains:
316ae5de77eSEmmanuel Vadot            enum:
317ae5de77eSEmmanuel Vadot              - qcom,sdm660-dwc3
318ae5de77eSEmmanuel Vadot    then:
319ae5de77eSEmmanuel Vadot      properties:
320ae5de77eSEmmanuel Vadot        clocks:
321ae5de77eSEmmanuel Vadot          minItems: 4
322ae5de77eSEmmanuel Vadot          maxItems: 5
323ae5de77eSEmmanuel Vadot        clock-names:
324ae5de77eSEmmanuel Vadot          oneOf:
325ae5de77eSEmmanuel Vadot            - items:
326ae5de77eSEmmanuel Vadot                - const: cfg_noc
327ae5de77eSEmmanuel Vadot                - const: core
328ae5de77eSEmmanuel Vadot                - const: iface
329ae5de77eSEmmanuel Vadot                - const: sleep
330ae5de77eSEmmanuel Vadot                - const: mock_utmi
331ae5de77eSEmmanuel Vadot            - items:
332ae5de77eSEmmanuel Vadot                - const: cfg_noc
333ae5de77eSEmmanuel Vadot                - const: core
334ae5de77eSEmmanuel Vadot                - const: sleep
335ae5de77eSEmmanuel Vadot                - const: mock_utmi
336ae5de77eSEmmanuel Vadot
337ae5de77eSEmmanuel Vadot  - if:
338ae5de77eSEmmanuel Vadot      properties:
339ae5de77eSEmmanuel Vadot        compatible:
340ae5de77eSEmmanuel Vadot          contains:
341ae5de77eSEmmanuel Vadot            enum:
342*833e5d42SEmmanuel Vadot              - qcom,milos-dwc3
343ae5de77eSEmmanuel Vadot              - qcom,qcm2290-dwc3
344ae5de77eSEmmanuel Vadot              - qcom,qcs615-dwc3
345ae5de77eSEmmanuel Vadot              - qcom,sar2130p-dwc3
346ae5de77eSEmmanuel Vadot              - qcom,sc8180x-dwc3
347ae5de77eSEmmanuel Vadot              - qcom,sc8180x-dwc3-mp
348ae5de77eSEmmanuel Vadot              - qcom,sm6115-dwc3
349ae5de77eSEmmanuel Vadot              - qcom,sm6125-dwc3
350ae5de77eSEmmanuel Vadot              - qcom,sm8150-dwc3
351ae5de77eSEmmanuel Vadot              - qcom,sm8250-dwc3
352ae5de77eSEmmanuel Vadot              - qcom,sm8450-dwc3
353ae5de77eSEmmanuel Vadot              - qcom,sm8550-dwc3
354ae5de77eSEmmanuel Vadot              - qcom,sm8650-dwc3
355ae5de77eSEmmanuel Vadot    then:
356ae5de77eSEmmanuel Vadot      properties:
357ae5de77eSEmmanuel Vadot        clocks:
358ae5de77eSEmmanuel Vadot          minItems: 6
359ae5de77eSEmmanuel Vadot        clock-names:
360ae5de77eSEmmanuel Vadot          items:
361ae5de77eSEmmanuel Vadot            - const: cfg_noc
362ae5de77eSEmmanuel Vadot            - const: core
363ae5de77eSEmmanuel Vadot            - const: iface
364ae5de77eSEmmanuel Vadot            - const: sleep
365ae5de77eSEmmanuel Vadot            - const: mock_utmi
366ae5de77eSEmmanuel Vadot            - const: xo
367ae5de77eSEmmanuel Vadot
368ae5de77eSEmmanuel Vadot  - if:
369ae5de77eSEmmanuel Vadot      properties:
370ae5de77eSEmmanuel Vadot        compatible:
371ae5de77eSEmmanuel Vadot          contains:
372ae5de77eSEmmanuel Vadot            enum:
373ae5de77eSEmmanuel Vadot              - qcom,sm8350-dwc3
374ae5de77eSEmmanuel Vadot    then:
375ae5de77eSEmmanuel Vadot      properties:
376ae5de77eSEmmanuel Vadot        clocks:
377ae5de77eSEmmanuel Vadot          minItems: 5
378ae5de77eSEmmanuel Vadot          maxItems: 6
379ae5de77eSEmmanuel Vadot        clock-names:
380ae5de77eSEmmanuel Vadot          minItems: 5
381ae5de77eSEmmanuel Vadot          items:
382ae5de77eSEmmanuel Vadot            - const: cfg_noc
383ae5de77eSEmmanuel Vadot            - const: core
384ae5de77eSEmmanuel Vadot            - const: iface
385ae5de77eSEmmanuel Vadot            - const: sleep
386ae5de77eSEmmanuel Vadot            - const: mock_utmi
387ae5de77eSEmmanuel Vadot            - const: xo
388ae5de77eSEmmanuel Vadot
389ae5de77eSEmmanuel Vadot  - if:
390ae5de77eSEmmanuel Vadot      properties:
391ae5de77eSEmmanuel Vadot        compatible:
392ae5de77eSEmmanuel Vadot          contains:
393ae5de77eSEmmanuel Vadot            enum:
394ae5de77eSEmmanuel Vadot              - qcom,ipq5018-dwc3
395ae5de77eSEmmanuel Vadot              - qcom,ipq6018-dwc3
396ae5de77eSEmmanuel Vadot              - qcom,ipq8074-dwc3
397ae5de77eSEmmanuel Vadot              - qcom,msm8953-dwc3
398ae5de77eSEmmanuel Vadot              - qcom,msm8998-dwc3
399ae5de77eSEmmanuel Vadot    then:
400ae5de77eSEmmanuel Vadot      properties:
401ae5de77eSEmmanuel Vadot        interrupts:
402ae5de77eSEmmanuel Vadot          minItems: 3
403ae5de77eSEmmanuel Vadot          maxItems: 4
404ae5de77eSEmmanuel Vadot        interrupt-names:
405ae5de77eSEmmanuel Vadot          minItems: 3
406ae5de77eSEmmanuel Vadot          items:
407ae5de77eSEmmanuel Vadot            - const: dwc_usb3
408ae5de77eSEmmanuel Vadot            - const: pwr_event
409ae5de77eSEmmanuel Vadot            - const: qusb2_phy
410ae5de77eSEmmanuel Vadot            - const: ss_phy_irq
411ae5de77eSEmmanuel Vadot
412ae5de77eSEmmanuel Vadot  - if:
413ae5de77eSEmmanuel Vadot      properties:
414ae5de77eSEmmanuel Vadot        compatible:
415ae5de77eSEmmanuel Vadot          contains:
416ae5de77eSEmmanuel Vadot            enum:
417ae5de77eSEmmanuel Vadot              - qcom,msm8996-dwc3
418ae5de77eSEmmanuel Vadot              - qcom,qcs404-dwc3
419ae5de77eSEmmanuel Vadot              - qcom,sdm660-dwc3
420ae5de77eSEmmanuel Vadot              - qcom,sm6115-dwc3
421ae5de77eSEmmanuel Vadot              - qcom,sm6125-dwc3
422ae5de77eSEmmanuel Vadot    then:
423ae5de77eSEmmanuel Vadot      properties:
424ae5de77eSEmmanuel Vadot        interrupts:
425ae5de77eSEmmanuel Vadot          minItems: 4
426ae5de77eSEmmanuel Vadot          maxItems: 5
427ae5de77eSEmmanuel Vadot        interrupt-names:
428ae5de77eSEmmanuel Vadot          minItems: 4
429ae5de77eSEmmanuel Vadot          items:
430ae5de77eSEmmanuel Vadot            - const: dwc_usb3
431ae5de77eSEmmanuel Vadot            - const: pwr_event
432ae5de77eSEmmanuel Vadot            - const: qusb2_phy
433ae5de77eSEmmanuel Vadot            - const: hs_phy_irq
434ae5de77eSEmmanuel Vadot            - const: ss_phy_irq
435ae5de77eSEmmanuel Vadot
436ae5de77eSEmmanuel Vadot  - if:
437ae5de77eSEmmanuel Vadot      properties:
438ae5de77eSEmmanuel Vadot        compatible:
439ae5de77eSEmmanuel Vadot          contains:
440ae5de77eSEmmanuel Vadot            enum:
441ae5de77eSEmmanuel Vadot              - qcom,ipq5332-dwc3
442ae5de77eSEmmanuel Vadot    then:
443ae5de77eSEmmanuel Vadot      properties:
444ae5de77eSEmmanuel Vadot        interrupts:
445ae5de77eSEmmanuel Vadot          maxItems: 4
446ae5de77eSEmmanuel Vadot        interrupt-names:
447ae5de77eSEmmanuel Vadot          items:
448ae5de77eSEmmanuel Vadot            - const: dwc_usb3
449ae5de77eSEmmanuel Vadot            - const: pwr_event
450ae5de77eSEmmanuel Vadot            - const: dp_hs_phy_irq
451ae5de77eSEmmanuel Vadot            - const: dm_hs_phy_irq
452ae5de77eSEmmanuel Vadot
453ae5de77eSEmmanuel Vadot  - if:
454ae5de77eSEmmanuel Vadot      properties:
455ae5de77eSEmmanuel Vadot        compatible:
456ae5de77eSEmmanuel Vadot          contains:
457ae5de77eSEmmanuel Vadot            enum:
458*833e5d42SEmmanuel Vadot              - qcom,milos-dwc3
459ae5de77eSEmmanuel Vadot              - qcom,x1e80100-dwc3
460ae5de77eSEmmanuel Vadot    then:
461ae5de77eSEmmanuel Vadot      properties:
462ae5de77eSEmmanuel Vadot        interrupts:
463ae5de77eSEmmanuel Vadot          maxItems: 5
464ae5de77eSEmmanuel Vadot        interrupt-names:
465ae5de77eSEmmanuel Vadot          items:
466ae5de77eSEmmanuel Vadot            - const: dwc_usb3
467ae5de77eSEmmanuel Vadot            - const: pwr_event
468ae5de77eSEmmanuel Vadot            - const: dp_hs_phy_irq
469ae5de77eSEmmanuel Vadot            - const: dm_hs_phy_irq
470ae5de77eSEmmanuel Vadot            - const: ss_phy_irq
471ae5de77eSEmmanuel Vadot
472ae5de77eSEmmanuel Vadot  - if:
473ae5de77eSEmmanuel Vadot      properties:
474ae5de77eSEmmanuel Vadot        compatible:
475ae5de77eSEmmanuel Vadot          contains:
476ae5de77eSEmmanuel Vadot            enum:
477ae5de77eSEmmanuel Vadot              - qcom,ipq4019-dwc3
478ae5de77eSEmmanuel Vadot              - qcom,ipq8064-dwc3
479ae5de77eSEmmanuel Vadot              - qcom,msm8994-dwc3
480ae5de77eSEmmanuel Vadot              - qcom,qcs615-dwc3
481ae5de77eSEmmanuel Vadot              - qcom,qcs8300-dwc3
482ae5de77eSEmmanuel Vadot              - qcom,qdu1000-dwc3
483ae5de77eSEmmanuel Vadot              - qcom,sa8775p-dwc3
484ae5de77eSEmmanuel Vadot              - qcom,sc7180-dwc3
485ae5de77eSEmmanuel Vadot              - qcom,sc7280-dwc3
486ae5de77eSEmmanuel Vadot              - qcom,sc8180x-dwc3
487ae5de77eSEmmanuel Vadot              - qcom,sc8280xp-dwc3
488ae5de77eSEmmanuel Vadot              - qcom,sdm670-dwc3
489ae5de77eSEmmanuel Vadot              - qcom,sdm845-dwc3
490ae5de77eSEmmanuel Vadot              - qcom,sdx55-dwc3
491ae5de77eSEmmanuel Vadot              - qcom,sdx65-dwc3
492ae5de77eSEmmanuel Vadot              - qcom,sdx75-dwc3
493ae5de77eSEmmanuel Vadot              - qcom,sm4250-dwc3
494ae5de77eSEmmanuel Vadot              - qcom,sm6350-dwc3
495ae5de77eSEmmanuel Vadot              - qcom,sm8150-dwc3
496ae5de77eSEmmanuel Vadot              - qcom,sm8250-dwc3
497ae5de77eSEmmanuel Vadot              - qcom,sm8350-dwc3
498ae5de77eSEmmanuel Vadot              - qcom,sm8450-dwc3
499ae5de77eSEmmanuel Vadot              - qcom,sm8550-dwc3
500ae5de77eSEmmanuel Vadot              - qcom,sm8650-dwc3
501ae5de77eSEmmanuel Vadot    then:
502ae5de77eSEmmanuel Vadot      properties:
503ae5de77eSEmmanuel Vadot        interrupts:
504ae5de77eSEmmanuel Vadot          minItems: 5
505ae5de77eSEmmanuel Vadot          maxItems: 6
506ae5de77eSEmmanuel Vadot        interrupt-names:
507ae5de77eSEmmanuel Vadot          minItems: 5
508ae5de77eSEmmanuel Vadot          items:
509ae5de77eSEmmanuel Vadot            - const: dwc_usb3
510ae5de77eSEmmanuel Vadot            - const: pwr_event
511ae5de77eSEmmanuel Vadot            - const: hs_phy_irq
512ae5de77eSEmmanuel Vadot            - const: dp_hs_phy_irq
513ae5de77eSEmmanuel Vadot            - const: dm_hs_phy_irq
514ae5de77eSEmmanuel Vadot            - const: ss_phy_irq
515ae5de77eSEmmanuel Vadot
516ae5de77eSEmmanuel Vadot  - if:
517ae5de77eSEmmanuel Vadot      properties:
518ae5de77eSEmmanuel Vadot        compatible:
519ae5de77eSEmmanuel Vadot          contains:
520ae5de77eSEmmanuel Vadot            enum:
521ae5de77eSEmmanuel Vadot              - qcom,sc8180x-dwc3-mp
522ae5de77eSEmmanuel Vadot              - qcom,x1e80100-dwc3-mp
523ae5de77eSEmmanuel Vadot    then:
524ae5de77eSEmmanuel Vadot      properties:
525ae5de77eSEmmanuel Vadot        interrupts:
526ae5de77eSEmmanuel Vadot          minItems: 11
527ae5de77eSEmmanuel Vadot          maxItems: 11
528ae5de77eSEmmanuel Vadot        interrupt-names:
529ae5de77eSEmmanuel Vadot          items:
530ae5de77eSEmmanuel Vadot            - const: dwc_usb3
531ae5de77eSEmmanuel Vadot            - const: pwr_event_1
532ae5de77eSEmmanuel Vadot            - const: pwr_event_2
533ae5de77eSEmmanuel Vadot            - const: hs_phy_1
534ae5de77eSEmmanuel Vadot            - const: hs_phy_2
535ae5de77eSEmmanuel Vadot            - const: dp_hs_phy_1
536ae5de77eSEmmanuel Vadot            - const: dm_hs_phy_1
537ae5de77eSEmmanuel Vadot            - const: dp_hs_phy_2
538ae5de77eSEmmanuel Vadot            - const: dm_hs_phy_2
539ae5de77eSEmmanuel Vadot            - const: ss_phy_1
540ae5de77eSEmmanuel Vadot            - const: ss_phy_2
541ae5de77eSEmmanuel Vadot
542ae5de77eSEmmanuel Vadot  - if:
543ae5de77eSEmmanuel Vadot      properties:
544ae5de77eSEmmanuel Vadot        compatible:
545ae5de77eSEmmanuel Vadot          contains:
546ae5de77eSEmmanuel Vadot            enum:
547ae5de77eSEmmanuel Vadot              - qcom,sc8280xp-dwc3-mp
548ae5de77eSEmmanuel Vadot    then:
549ae5de77eSEmmanuel Vadot      properties:
550ae5de77eSEmmanuel Vadot        interrupts:
551ae5de77eSEmmanuel Vadot          minItems: 19
552ae5de77eSEmmanuel Vadot          maxItems: 19
553ae5de77eSEmmanuel Vadot        interrupt-names:
554ae5de77eSEmmanuel Vadot          items:
555ae5de77eSEmmanuel Vadot            - const: dwc_usb3
556ae5de77eSEmmanuel Vadot            - const: pwr_event_1
557ae5de77eSEmmanuel Vadot            - const: pwr_event_2
558ae5de77eSEmmanuel Vadot            - const: pwr_event_3
559ae5de77eSEmmanuel Vadot            - const: pwr_event_4
560ae5de77eSEmmanuel Vadot            - const: hs_phy_1
561ae5de77eSEmmanuel Vadot            - const: hs_phy_2
562ae5de77eSEmmanuel Vadot            - const: hs_phy_3
563ae5de77eSEmmanuel Vadot            - const: hs_phy_4
564ae5de77eSEmmanuel Vadot            - const: dp_hs_phy_1
565ae5de77eSEmmanuel Vadot            - const: dm_hs_phy_1
566ae5de77eSEmmanuel Vadot            - const: dp_hs_phy_2
567ae5de77eSEmmanuel Vadot            - const: dm_hs_phy_2
568ae5de77eSEmmanuel Vadot            - const: dp_hs_phy_3
569ae5de77eSEmmanuel Vadot            - const: dm_hs_phy_3
570ae5de77eSEmmanuel Vadot            - const: dp_hs_phy_4
571ae5de77eSEmmanuel Vadot            - const: dm_hs_phy_4
572ae5de77eSEmmanuel Vadot            - const: ss_phy_1
573ae5de77eSEmmanuel Vadot            - const: ss_phy_2
574ae5de77eSEmmanuel Vadot
575ae5de77eSEmmanuel VadotunevaluatedProperties: false
576ae5de77eSEmmanuel Vadot
577ae5de77eSEmmanuel Vadotexamples:
578ae5de77eSEmmanuel Vadot  - |
579ae5de77eSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
580ae5de77eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
581ae5de77eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
582ae5de77eSEmmanuel Vadot    soc {
583ae5de77eSEmmanuel Vadot        #address-cells = <2>;
584ae5de77eSEmmanuel Vadot        #size-cells = <2>;
585ae5de77eSEmmanuel Vadot
586ae5de77eSEmmanuel Vadot        usb@a600000 {
587ae5de77eSEmmanuel Vadot            compatible = "qcom,sdm845-dwc3", "qcom,snps-dwc3";
588ae5de77eSEmmanuel Vadot            reg = <0 0x0a600000 0 0x100000>;
589ae5de77eSEmmanuel Vadot
590ae5de77eSEmmanuel Vadot            clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
591ae5de77eSEmmanuel Vadot                     <&gcc GCC_USB30_PRIM_MASTER_CLK>,
592ae5de77eSEmmanuel Vadot                     <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
593ae5de77eSEmmanuel Vadot                     <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
594ae5de77eSEmmanuel Vadot                     <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
595ae5de77eSEmmanuel Vadot            clock-names = "cfg_noc",
596ae5de77eSEmmanuel Vadot                          "core",
597ae5de77eSEmmanuel Vadot                          "iface",
598ae5de77eSEmmanuel Vadot                          "sleep",
599ae5de77eSEmmanuel Vadot                          "mock_utmi";
600ae5de77eSEmmanuel Vadot
601ae5de77eSEmmanuel Vadot            assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
602ae5de77eSEmmanuel Vadot                          <&gcc GCC_USB30_PRIM_MASTER_CLK>;
603ae5de77eSEmmanuel Vadot            assigned-clock-rates = <19200000>, <150000000>;
604ae5de77eSEmmanuel Vadot
605ae5de77eSEmmanuel Vadot            interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
606ae5de77eSEmmanuel Vadot                         <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
607ae5de77eSEmmanuel Vadot                         <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
608ae5de77eSEmmanuel Vadot                         <GIC_SPI 489 IRQ_TYPE_EDGE_BOTH>,
609ae5de77eSEmmanuel Vadot                         <GIC_SPI 488 IRQ_TYPE_EDGE_BOTH>,
610ae5de77eSEmmanuel Vadot                         <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>;
611ae5de77eSEmmanuel Vadot            interrupt-names = "dwc_usb3", "pwr_event", "hs_phy_irq",
612ae5de77eSEmmanuel Vadot                          "dp_hs_phy_irq", "dm_hs_phy_irq", "ss_phy_irq";
613ae5de77eSEmmanuel Vadot
614ae5de77eSEmmanuel Vadot            power-domains = <&gcc USB30_PRIM_GDSC>;
615ae5de77eSEmmanuel Vadot
616ae5de77eSEmmanuel Vadot            resets = <&gcc GCC_USB30_PRIM_BCR>;
617ae5de77eSEmmanuel Vadot
618ae5de77eSEmmanuel Vadot            iommus = <&apps_smmu 0x740 0>;
619ae5de77eSEmmanuel Vadot            snps,dis_u2_susphy_quirk;
620ae5de77eSEmmanuel Vadot            snps,dis_enblslpm_quirk;
621ae5de77eSEmmanuel Vadot            phys = <&usb_1_hsphy>, <&usb_1_ssphy>;
622ae5de77eSEmmanuel Vadot            phy-names = "usb2-phy", "usb3-phy";
623ae5de77eSEmmanuel Vadot        };
624ae5de77eSEmmanuel Vadot    };
625ae5de77eSEmmanuel Vadot...
626