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