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