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