1*500e9d37SJohan Hovold# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*500e9d37SJohan Hovold%YAML 1.2 3*500e9d37SJohan Hovold--- 4*500e9d37SJohan Hovold$id: http://devicetree.org/schemas/phy/qcom,msm8996-qmp-usb3-phy.yaml# 5*500e9d37SJohan Hovold$schema: http://devicetree.org/meta-schemas/core.yaml# 6*500e9d37SJohan Hovold 7*500e9d37SJohan Hovoldtitle: Qualcomm QMP PHY controller (USB, MSM8996) 8*500e9d37SJohan Hovold 9*500e9d37SJohan Hovoldmaintainers: 10*500e9d37SJohan Hovold - Vinod Koul <vkoul@kernel.org> 11*500e9d37SJohan Hovold 12*500e9d37SJohan Hovolddescription: 13*500e9d37SJohan Hovold QMP PHY controller supports physical layer functionality for a number of 14*500e9d37SJohan Hovold controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB. 15*500e9d37SJohan Hovold 16*500e9d37SJohan Hovold Note that these bindings are for SoCs up to SC8180X. For newer SoCs, see 17*500e9d37SJohan Hovold qcom,sc8280xp-qmp-usb3-uni-phy.yaml. 18*500e9d37SJohan Hovold 19*500e9d37SJohan Hovoldproperties: 20*500e9d37SJohan Hovold compatible: 21*500e9d37SJohan Hovold enum: 22*500e9d37SJohan Hovold - qcom,ipq6018-qmp-usb3-phy 23*500e9d37SJohan Hovold - qcom,ipq8074-qmp-usb3-phy 24*500e9d37SJohan Hovold - qcom,msm8996-qmp-usb3-phy 25*500e9d37SJohan Hovold - qcom,msm8998-qmp-usb3-phy 26*500e9d37SJohan Hovold - qcom,qcm2290-qmp-usb3-phy 27*500e9d37SJohan Hovold - qcom,sc7180-qmp-usb3-phy 28*500e9d37SJohan Hovold - qcom,sc8180x-qmp-usb3-phy 29*500e9d37SJohan Hovold - qcom,sc8280xp-qmp-usb3-uni-phy 30*500e9d37SJohan Hovold - qcom,sdm845-qmp-usb3-phy 31*500e9d37SJohan Hovold - qcom,sdm845-qmp-usb3-uni-phy 32*500e9d37SJohan Hovold - qcom,sdx55-qmp-usb3-uni-phy 33*500e9d37SJohan Hovold - qcom,sdx65-qmp-usb3-uni-phy 34*500e9d37SJohan Hovold - qcom,sm8150-qmp-usb3-phy 35*500e9d37SJohan Hovold - qcom,sm8150-qmp-usb3-uni-phy 36*500e9d37SJohan Hovold - qcom,sm8250-qmp-usb3-phy 37*500e9d37SJohan Hovold - qcom,sm8250-qmp-usb3-uni-phy 38*500e9d37SJohan Hovold - qcom,sm8350-qmp-usb3-phy 39*500e9d37SJohan Hovold - qcom,sm8350-qmp-usb3-uni-phy 40*500e9d37SJohan Hovold - qcom,sm8450-qmp-usb3-phy 41*500e9d37SJohan Hovold 42*500e9d37SJohan Hovold reg: 43*500e9d37SJohan Hovold minItems: 1 44*500e9d37SJohan Hovold items: 45*500e9d37SJohan Hovold - description: serdes 46*500e9d37SJohan Hovold - description: DP_COM 47*500e9d37SJohan Hovold 48*500e9d37SJohan Hovold "#address-cells": 49*500e9d37SJohan Hovold enum: [ 1, 2 ] 50*500e9d37SJohan Hovold 51*500e9d37SJohan Hovold "#size-cells": 52*500e9d37SJohan Hovold enum: [ 1, 2 ] 53*500e9d37SJohan Hovold 54*500e9d37SJohan Hovold ranges: true 55*500e9d37SJohan Hovold 56*500e9d37SJohan Hovold clocks: 57*500e9d37SJohan Hovold minItems: 3 58*500e9d37SJohan Hovold maxItems: 4 59*500e9d37SJohan Hovold 60*500e9d37SJohan Hovold clock-names: 61*500e9d37SJohan Hovold minItems: 3 62*500e9d37SJohan Hovold maxItems: 4 63*500e9d37SJohan Hovold 64*500e9d37SJohan Hovold power-domains: 65*500e9d37SJohan Hovold maxItems: 1 66*500e9d37SJohan Hovold 67*500e9d37SJohan Hovold resets: 68*500e9d37SJohan Hovold maxItems: 2 69*500e9d37SJohan Hovold 70*500e9d37SJohan Hovold reset-names: 71*500e9d37SJohan Hovold maxItems: 2 72*500e9d37SJohan Hovold 73*500e9d37SJohan Hovold vdda-phy-supply: true 74*500e9d37SJohan Hovold 75*500e9d37SJohan Hovold vdda-pll-supply: true 76*500e9d37SJohan Hovold 77*500e9d37SJohan Hovold vddp-ref-clk-supply: true 78*500e9d37SJohan Hovold 79*500e9d37SJohan HovoldpatternProperties: 80*500e9d37SJohan Hovold "^phy@[0-9a-f]+$": 81*500e9d37SJohan Hovold type: object 82*500e9d37SJohan Hovold description: single PHY-provider child node 83*500e9d37SJohan Hovold properties: 84*500e9d37SJohan Hovold reg: 85*500e9d37SJohan Hovold minItems: 3 86*500e9d37SJohan Hovold maxItems: 6 87*500e9d37SJohan Hovold 88*500e9d37SJohan Hovold clocks: 89*500e9d37SJohan Hovold items: 90*500e9d37SJohan Hovold - description: PIPE clock 91*500e9d37SJohan Hovold 92*500e9d37SJohan Hovold clock-names: 93*500e9d37SJohan Hovold deprecated: true 94*500e9d37SJohan Hovold items: 95*500e9d37SJohan Hovold - const: pipe0 96*500e9d37SJohan Hovold 97*500e9d37SJohan Hovold "#clock-cells": 98*500e9d37SJohan Hovold const: 0 99*500e9d37SJohan Hovold 100*500e9d37SJohan Hovold clock-output-names: 101*500e9d37SJohan Hovold maxItems: 1 102*500e9d37SJohan Hovold 103*500e9d37SJohan Hovold "#phy-cells": 104*500e9d37SJohan Hovold const: 0 105*500e9d37SJohan Hovold 106*500e9d37SJohan Hovold required: 107*500e9d37SJohan Hovold - reg 108*500e9d37SJohan Hovold - clocks 109*500e9d37SJohan Hovold - "#clock-cells" 110*500e9d37SJohan Hovold - clock-output-names 111*500e9d37SJohan Hovold - "#phy-cells" 112*500e9d37SJohan Hovold 113*500e9d37SJohan Hovold additionalProperties: false 114*500e9d37SJohan Hovold 115*500e9d37SJohan Hovoldrequired: 116*500e9d37SJohan Hovold - compatible 117*500e9d37SJohan Hovold - reg 118*500e9d37SJohan Hovold - "#address-cells" 119*500e9d37SJohan Hovold - "#size-cells" 120*500e9d37SJohan Hovold - ranges 121*500e9d37SJohan Hovold - clocks 122*500e9d37SJohan Hovold - clock-names 123*500e9d37SJohan Hovold - resets 124*500e9d37SJohan Hovold - reset-names 125*500e9d37SJohan Hovold - vdda-phy-supply 126*500e9d37SJohan Hovold - vdda-pll-supply 127*500e9d37SJohan Hovold 128*500e9d37SJohan HovoldadditionalProperties: false 129*500e9d37SJohan Hovold 130*500e9d37SJohan HovoldallOf: 131*500e9d37SJohan Hovold - if: 132*500e9d37SJohan Hovold properties: 133*500e9d37SJohan Hovold compatible: 134*500e9d37SJohan Hovold contains: 135*500e9d37SJohan Hovold enum: 136*500e9d37SJohan Hovold - qcom,sc7180-qmp-usb3-phy 137*500e9d37SJohan Hovold then: 138*500e9d37SJohan Hovold properties: 139*500e9d37SJohan Hovold clocks: 140*500e9d37SJohan Hovold maxItems: 4 141*500e9d37SJohan Hovold clock-names: 142*500e9d37SJohan Hovold items: 143*500e9d37SJohan Hovold - const: aux 144*500e9d37SJohan Hovold - const: cfg_ahb 145*500e9d37SJohan Hovold - const: ref 146*500e9d37SJohan Hovold - const: com_aux 147*500e9d37SJohan Hovold resets: 148*500e9d37SJohan Hovold maxItems: 1 149*500e9d37SJohan Hovold reset-names: 150*500e9d37SJohan Hovold items: 151*500e9d37SJohan Hovold - const: phy 152*500e9d37SJohan Hovold 153*500e9d37SJohan Hovold - if: 154*500e9d37SJohan Hovold properties: 155*500e9d37SJohan Hovold compatible: 156*500e9d37SJohan Hovold contains: 157*500e9d37SJohan Hovold enum: 158*500e9d37SJohan Hovold - qcom,sdm845-qmp-usb3-uni-phy 159*500e9d37SJohan Hovold then: 160*500e9d37SJohan Hovold properties: 161*500e9d37SJohan Hovold clocks: 162*500e9d37SJohan Hovold maxItems: 4 163*500e9d37SJohan Hovold clock-names: 164*500e9d37SJohan Hovold items: 165*500e9d37SJohan Hovold - const: aux 166*500e9d37SJohan Hovold - const: cfg_ahb 167*500e9d37SJohan Hovold - const: ref 168*500e9d37SJohan Hovold - const: com_aux 169*500e9d37SJohan Hovold resets: 170*500e9d37SJohan Hovold maxItems: 2 171*500e9d37SJohan Hovold reset-names: 172*500e9d37SJohan Hovold items: 173*500e9d37SJohan Hovold - const: phy 174*500e9d37SJohan Hovold - const: common 175*500e9d37SJohan Hovold 176*500e9d37SJohan Hovold - if: 177*500e9d37SJohan Hovold properties: 178*500e9d37SJohan Hovold compatible: 179*500e9d37SJohan Hovold contains: 180*500e9d37SJohan Hovold enum: 181*500e9d37SJohan Hovold - qcom,ipq8074-qmp-usb3-phy 182*500e9d37SJohan Hovold - qcom,msm8996-qmp-usb3-phy 183*500e9d37SJohan Hovold - qcom,msm8998-qmp-usb3-phy 184*500e9d37SJohan Hovold - qcom,sdx55-qmp-usb3-uni-phy 185*500e9d37SJohan Hovold - qcom,sdx65-qmp-usb3-uni-phy 186*500e9d37SJohan Hovold then: 187*500e9d37SJohan Hovold properties: 188*500e9d37SJohan Hovold clocks: 189*500e9d37SJohan Hovold maxItems: 3 190*500e9d37SJohan Hovold clock-names: 191*500e9d37SJohan Hovold items: 192*500e9d37SJohan Hovold - const: aux 193*500e9d37SJohan Hovold - const: cfg_ahb 194*500e9d37SJohan Hovold - const: ref 195*500e9d37SJohan Hovold resets: 196*500e9d37SJohan Hovold maxItems: 2 197*500e9d37SJohan Hovold reset-names: 198*500e9d37SJohan Hovold items: 199*500e9d37SJohan Hovold - const: phy 200*500e9d37SJohan Hovold - const: common 201*500e9d37SJohan Hovold 202*500e9d37SJohan Hovold - if: 203*500e9d37SJohan Hovold properties: 204*500e9d37SJohan Hovold compatible: 205*500e9d37SJohan Hovold contains: 206*500e9d37SJohan Hovold enum: 207*500e9d37SJohan Hovold - qcom,sc8280xp-qmp-usb3-uni-phy 208*500e9d37SJohan Hovold - qcom,sm8150-qmp-usb3-phy 209*500e9d37SJohan Hovold - qcom,sm8150-qmp-usb3-uni-phy 210*500e9d37SJohan Hovold - qcom,sm8250-qmp-usb3-uni-phy 211*500e9d37SJohan Hovold - qcom,sm8350-qmp-usb3-uni-phy 212*500e9d37SJohan Hovold then: 213*500e9d37SJohan Hovold properties: 214*500e9d37SJohan Hovold clocks: 215*500e9d37SJohan Hovold maxItems: 4 216*500e9d37SJohan Hovold clock-names: 217*500e9d37SJohan Hovold items: 218*500e9d37SJohan Hovold - const: aux 219*500e9d37SJohan Hovold - const: ref_clk_src 220*500e9d37SJohan Hovold - const: ref 221*500e9d37SJohan Hovold - const: com_aux 222*500e9d37SJohan Hovold resets: 223*500e9d37SJohan Hovold maxItems: 2 224*500e9d37SJohan Hovold reset-names: 225*500e9d37SJohan Hovold items: 226*500e9d37SJohan Hovold - const: phy 227*500e9d37SJohan Hovold - const: common 228*500e9d37SJohan Hovold 229*500e9d37SJohan Hovold - if: 230*500e9d37SJohan Hovold properties: 231*500e9d37SJohan Hovold compatible: 232*500e9d37SJohan Hovold contains: 233*500e9d37SJohan Hovold enum: 234*500e9d37SJohan Hovold - qcom,sm8250-qmp-usb3-phy 235*500e9d37SJohan Hovold - qcom,sm8350-qmp-usb3-phy 236*500e9d37SJohan Hovold then: 237*500e9d37SJohan Hovold properties: 238*500e9d37SJohan Hovold clocks: 239*500e9d37SJohan Hovold maxItems: 3 240*500e9d37SJohan Hovold clock-names: 241*500e9d37SJohan Hovold items: 242*500e9d37SJohan Hovold - const: aux 243*500e9d37SJohan Hovold - const: ref_clk_src 244*500e9d37SJohan Hovold - const: com_aux 245*500e9d37SJohan Hovold resets: 246*500e9d37SJohan Hovold maxItems: 2 247*500e9d37SJohan Hovold reset-names: 248*500e9d37SJohan Hovold items: 249*500e9d37SJohan Hovold - const: phy 250*500e9d37SJohan Hovold - const: common 251*500e9d37SJohan Hovold 252*500e9d37SJohan Hovold - if: 253*500e9d37SJohan Hovold properties: 254*500e9d37SJohan Hovold compatible: 255*500e9d37SJohan Hovold contains: 256*500e9d37SJohan Hovold enum: 257*500e9d37SJohan Hovold - qcom,qcm2290-qmp-usb3-phy 258*500e9d37SJohan Hovold then: 259*500e9d37SJohan Hovold properties: 260*500e9d37SJohan Hovold clocks: 261*500e9d37SJohan Hovold maxItems: 3 262*500e9d37SJohan Hovold clock-names: 263*500e9d37SJohan Hovold items: 264*500e9d37SJohan Hovold - const: cfg_ahb 265*500e9d37SJohan Hovold - const: ref 266*500e9d37SJohan Hovold - const: com_aux 267*500e9d37SJohan Hovold resets: 268*500e9d37SJohan Hovold maxItems: 2 269*500e9d37SJohan Hovold reset-names: 270*500e9d37SJohan Hovold items: 271*500e9d37SJohan Hovold - const: phy_phy 272*500e9d37SJohan Hovold - const: phy 273*500e9d37SJohan Hovold 274*500e9d37SJohan Hovold - if: 275*500e9d37SJohan Hovold properties: 276*500e9d37SJohan Hovold compatible: 277*500e9d37SJohan Hovold contains: 278*500e9d37SJohan Hovold enum: 279*500e9d37SJohan Hovold - qcom,sc8280xp-qmp-usb3-uni-phy 280*500e9d37SJohan Hovold then: 281*500e9d37SJohan Hovold required: 282*500e9d37SJohan Hovold - power-domains 283*500e9d37SJohan Hovold 284*500e9d37SJohan Hovold - if: 285*500e9d37SJohan Hovold properties: 286*500e9d37SJohan Hovold compatible: 287*500e9d37SJohan Hovold contains: 288*500e9d37SJohan Hovold enum: 289*500e9d37SJohan Hovold - qcom,sdm845-qmp-usb3-phy 290*500e9d37SJohan Hovold - qcom,sm8150-qmp-usb3-phy 291*500e9d37SJohan Hovold - qcom,sm8350-qmp-usb3-phy 292*500e9d37SJohan Hovold - qcom,sm8450-qmp-usb3-phy 293*500e9d37SJohan Hovold then: 294*500e9d37SJohan Hovold patternProperties: 295*500e9d37SJohan Hovold "^phy@[0-9a-f]+$": 296*500e9d37SJohan Hovold properties: 297*500e9d37SJohan Hovold reg: 298*500e9d37SJohan Hovold items: 299*500e9d37SJohan Hovold - description: TX lane 1 300*500e9d37SJohan Hovold - description: RX lane 1 301*500e9d37SJohan Hovold - description: PCS 302*500e9d37SJohan Hovold - description: TX lane 2 303*500e9d37SJohan Hovold - description: RX lane 2 304*500e9d37SJohan Hovold - description: PCS_MISC 305*500e9d37SJohan Hovold 306*500e9d37SJohan Hovold - if: 307*500e9d37SJohan Hovold properties: 308*500e9d37SJohan Hovold compatible: 309*500e9d37SJohan Hovold contains: 310*500e9d37SJohan Hovold enum: 311*500e9d37SJohan Hovold - qcom,msm8998-qmp-usb3-phy 312*500e9d37SJohan Hovold then: 313*500e9d37SJohan Hovold patternProperties: 314*500e9d37SJohan Hovold "^phy@[0-9a-f]+$": 315*500e9d37SJohan Hovold properties: 316*500e9d37SJohan Hovold reg: 317*500e9d37SJohan Hovold items: 318*500e9d37SJohan Hovold - description: TX lane 1 319*500e9d37SJohan Hovold - description: RX lane 1 320*500e9d37SJohan Hovold - description: PCS 321*500e9d37SJohan Hovold - description: TX lane 2 322*500e9d37SJohan Hovold - description: RX lane 2 323*500e9d37SJohan Hovold 324*500e9d37SJohan Hovold - if: 325*500e9d37SJohan Hovold properties: 326*500e9d37SJohan Hovold compatible: 327*500e9d37SJohan Hovold contains: 328*500e9d37SJohan Hovold enum: 329*500e9d37SJohan Hovold - qcom,ipq6018-qmp-usb3-phy 330*500e9d37SJohan Hovold - qcom,ipq8074-qmp-usb3-phy 331*500e9d37SJohan Hovold - qcom,qcm2290-qmp-usb3-phy 332*500e9d37SJohan Hovold - qcom,sc7180-qmp-usb3-phy 333*500e9d37SJohan Hovold - qcom,sc8180x-qmp-usb3-phy 334*500e9d37SJohan Hovold - qcom,sdx55-qmp-usb3-uni-phy 335*500e9d37SJohan Hovold - qcom,sdx65-qmp-usb3-uni-phy 336*500e9d37SJohan Hovold - qcom,sm8150-qmp-usb3-uni-phy 337*500e9d37SJohan Hovold - qcom,sm8250-qmp-usb3-phy 338*500e9d37SJohan Hovold then: 339*500e9d37SJohan Hovold patternProperties: 340*500e9d37SJohan Hovold "^phy@[0-9a-f]+$": 341*500e9d37SJohan Hovold properties: 342*500e9d37SJohan Hovold reg: 343*500e9d37SJohan Hovold items: 344*500e9d37SJohan Hovold - description: TX 345*500e9d37SJohan Hovold - description: RX 346*500e9d37SJohan Hovold - description: PCS 347*500e9d37SJohan Hovold - description: PCS_MISC 348*500e9d37SJohan Hovold 349*500e9d37SJohan Hovold - if: 350*500e9d37SJohan Hovold properties: 351*500e9d37SJohan Hovold compatible: 352*500e9d37SJohan Hovold contains: 353*500e9d37SJohan Hovold enum: 354*500e9d37SJohan Hovold - qcom,msm8996-qmp-usb3-phy 355*500e9d37SJohan Hovold - qcom,sc8280xp-qmp-usb3-uni-phy 356*500e9d37SJohan Hovold - qcom,sm8250-qmp-usb3-uni-phy 357*500e9d37SJohan Hovold - qcom,sm8350-qmp-usb3-uni-phy 358*500e9d37SJohan Hovold then: 359*500e9d37SJohan Hovold patternProperties: 360*500e9d37SJohan Hovold "^phy@[0-9a-f]+$": 361*500e9d37SJohan Hovold properties: 362*500e9d37SJohan Hovold reg: 363*500e9d37SJohan Hovold items: 364*500e9d37SJohan Hovold - description: TX 365*500e9d37SJohan Hovold - description: RX 366*500e9d37SJohan Hovold - description: PCS 367*500e9d37SJohan Hovold 368*500e9d37SJohan Hovoldexamples: 369*500e9d37SJohan Hovold - | 370*500e9d37SJohan Hovold #include <dt-bindings/clock/qcom,gcc-sdm845.h> 371*500e9d37SJohan Hovold usb_2_qmpphy: phy-wrapper@88eb000 { 372*500e9d37SJohan Hovold compatible = "qcom,sdm845-qmp-usb3-uni-phy"; 373*500e9d37SJohan Hovold reg = <0x088eb000 0x18c>; 374*500e9d37SJohan Hovold #address-cells = <1>; 375*500e9d37SJohan Hovold #size-cells = <1>; 376*500e9d37SJohan Hovold ranges = <0x0 0x088eb000 0x2000>; 377*500e9d37SJohan Hovold 378*500e9d37SJohan Hovold clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK >, 379*500e9d37SJohan Hovold <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>, 380*500e9d37SJohan Hovold <&gcc GCC_USB3_SEC_CLKREF_CLK>, 381*500e9d37SJohan Hovold <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>; 382*500e9d37SJohan Hovold clock-names = "aux", "cfg_ahb", "ref", "com_aux"; 383*500e9d37SJohan Hovold 384*500e9d37SJohan Hovold resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>, 385*500e9d37SJohan Hovold <&gcc GCC_USB3_PHY_SEC_BCR>; 386*500e9d37SJohan Hovold reset-names = "phy", "common"; 387*500e9d37SJohan Hovold 388*500e9d37SJohan Hovold vdda-phy-supply = <&vdda_usb2_ss_1p2>; 389*500e9d37SJohan Hovold vdda-pll-supply = <&vdda_usb2_ss_core>; 390*500e9d37SJohan Hovold 391*500e9d37SJohan Hovold usb_2_ssphy: phy@200 { 392*500e9d37SJohan Hovold reg = <0x200 0x128>, 393*500e9d37SJohan Hovold <0x400 0x1fc>, 394*500e9d37SJohan Hovold <0x800 0x218>, 395*500e9d37SJohan Hovold <0x600 0x70>; 396*500e9d37SJohan Hovold 397*500e9d37SJohan Hovold clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>; 398*500e9d37SJohan Hovold 399*500e9d37SJohan Hovold #clock-cells = <0>; 400*500e9d37SJohan Hovold clock-output-names = "usb3_uni_phy_pipe_clk_src"; 401*500e9d37SJohan Hovold 402*500e9d37SJohan Hovold #phy-cells = <0>; 403*500e9d37SJohan Hovold }; 404*500e9d37SJohan Hovold }; 405