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