1*8bab661aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*8bab661aSEmmanuel Vadot%YAML 1.2 3*8bab661aSEmmanuel Vadot--- 4*8bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/phy/qcom,msm8996-qmp-usb3-phy.yaml# 5*8bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8bab661aSEmmanuel Vadot 7*8bab661aSEmmanuel Vadottitle: Qualcomm QMP PHY controller (USB, MSM8996) 8*8bab661aSEmmanuel Vadot 9*8bab661aSEmmanuel Vadotmaintainers: 10*8bab661aSEmmanuel Vadot - Vinod Koul <vkoul@kernel.org> 11*8bab661aSEmmanuel Vadot 12*8bab661aSEmmanuel Vadotdescription: 13*8bab661aSEmmanuel Vadot QMP PHY controller supports physical layer functionality for a number of 14*8bab661aSEmmanuel Vadot controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB. 15*8bab661aSEmmanuel Vadot 16*8bab661aSEmmanuel Vadot Note that these bindings are for SoCs up to SC8180X. For newer SoCs, see 17*8bab661aSEmmanuel Vadot qcom,sc8280xp-qmp-usb3-uni-phy.yaml. 18*8bab661aSEmmanuel Vadot 19*8bab661aSEmmanuel Vadotproperties: 20*8bab661aSEmmanuel Vadot compatible: 21*8bab661aSEmmanuel Vadot enum: 22*8bab661aSEmmanuel Vadot - qcom,ipq6018-qmp-usb3-phy 23*8bab661aSEmmanuel Vadot - qcom,ipq8074-qmp-usb3-phy 24*8bab661aSEmmanuel Vadot - qcom,msm8996-qmp-usb3-phy 25*8bab661aSEmmanuel Vadot - qcom,msm8998-qmp-usb3-phy 26*8bab661aSEmmanuel Vadot - qcom,sdm845-qmp-usb3-uni-phy 27*8bab661aSEmmanuel Vadot - qcom,sdx55-qmp-usb3-uni-phy 28*8bab661aSEmmanuel Vadot - qcom,sdx65-qmp-usb3-uni-phy 29*8bab661aSEmmanuel Vadot - qcom,sm8150-qmp-usb3-uni-phy 30*8bab661aSEmmanuel Vadot - qcom,sm8250-qmp-usb3-uni-phy 31*8bab661aSEmmanuel Vadot - qcom,sm8350-qmp-usb3-uni-phy 32*8bab661aSEmmanuel Vadot 33*8bab661aSEmmanuel Vadot reg: 34*8bab661aSEmmanuel Vadot items: 35*8bab661aSEmmanuel Vadot - description: serdes 36*8bab661aSEmmanuel Vadot 37*8bab661aSEmmanuel Vadot "#address-cells": 38*8bab661aSEmmanuel Vadot enum: [ 1, 2 ] 39*8bab661aSEmmanuel Vadot 40*8bab661aSEmmanuel Vadot "#size-cells": 41*8bab661aSEmmanuel Vadot enum: [ 1, 2 ] 42*8bab661aSEmmanuel Vadot 43*8bab661aSEmmanuel Vadot ranges: true 44*8bab661aSEmmanuel Vadot 45*8bab661aSEmmanuel Vadot clocks: 46*8bab661aSEmmanuel Vadot minItems: 3 47*8bab661aSEmmanuel Vadot maxItems: 4 48*8bab661aSEmmanuel Vadot 49*8bab661aSEmmanuel Vadot clock-names: 50*8bab661aSEmmanuel Vadot minItems: 3 51*8bab661aSEmmanuel Vadot maxItems: 4 52*8bab661aSEmmanuel Vadot 53*8bab661aSEmmanuel Vadot power-domains: 54*8bab661aSEmmanuel Vadot maxItems: 1 55*8bab661aSEmmanuel Vadot 56*8bab661aSEmmanuel Vadot resets: 57*8bab661aSEmmanuel Vadot maxItems: 2 58*8bab661aSEmmanuel Vadot 59*8bab661aSEmmanuel Vadot reset-names: 60*8bab661aSEmmanuel Vadot maxItems: 2 61*8bab661aSEmmanuel Vadot 62*8bab661aSEmmanuel Vadot vdda-phy-supply: true 63*8bab661aSEmmanuel Vadot 64*8bab661aSEmmanuel Vadot vdda-pll-supply: true 65*8bab661aSEmmanuel Vadot 66*8bab661aSEmmanuel Vadot vddp-ref-clk-supply: true 67*8bab661aSEmmanuel Vadot 68*8bab661aSEmmanuel VadotpatternProperties: 69*8bab661aSEmmanuel Vadot "^phy@[0-9a-f]+$": 70*8bab661aSEmmanuel Vadot type: object 71*8bab661aSEmmanuel Vadot description: single PHY-provider child node 72*8bab661aSEmmanuel Vadot properties: 73*8bab661aSEmmanuel Vadot reg: 74*8bab661aSEmmanuel Vadot minItems: 3 75*8bab661aSEmmanuel Vadot maxItems: 6 76*8bab661aSEmmanuel Vadot 77*8bab661aSEmmanuel Vadot clocks: 78*8bab661aSEmmanuel Vadot items: 79*8bab661aSEmmanuel Vadot - description: PIPE clock 80*8bab661aSEmmanuel Vadot 81*8bab661aSEmmanuel Vadot clock-names: 82*8bab661aSEmmanuel Vadot deprecated: true 83*8bab661aSEmmanuel Vadot items: 84*8bab661aSEmmanuel Vadot - const: pipe0 85*8bab661aSEmmanuel Vadot 86*8bab661aSEmmanuel Vadot "#clock-cells": 87*8bab661aSEmmanuel Vadot const: 0 88*8bab661aSEmmanuel Vadot 89*8bab661aSEmmanuel Vadot clock-output-names: 90*8bab661aSEmmanuel Vadot maxItems: 1 91*8bab661aSEmmanuel Vadot 92*8bab661aSEmmanuel Vadot "#phy-cells": 93*8bab661aSEmmanuel Vadot const: 0 94*8bab661aSEmmanuel Vadot 95*8bab661aSEmmanuel Vadot required: 96*8bab661aSEmmanuel Vadot - reg 97*8bab661aSEmmanuel Vadot - clocks 98*8bab661aSEmmanuel Vadot - "#clock-cells" 99*8bab661aSEmmanuel Vadot - clock-output-names 100*8bab661aSEmmanuel Vadot - "#phy-cells" 101*8bab661aSEmmanuel Vadot 102*8bab661aSEmmanuel Vadot additionalProperties: false 103*8bab661aSEmmanuel Vadot 104*8bab661aSEmmanuel Vadotrequired: 105*8bab661aSEmmanuel Vadot - compatible 106*8bab661aSEmmanuel Vadot - reg 107*8bab661aSEmmanuel Vadot - "#address-cells" 108*8bab661aSEmmanuel Vadot - "#size-cells" 109*8bab661aSEmmanuel Vadot - ranges 110*8bab661aSEmmanuel Vadot - clocks 111*8bab661aSEmmanuel Vadot - clock-names 112*8bab661aSEmmanuel Vadot - resets 113*8bab661aSEmmanuel Vadot - reset-names 114*8bab661aSEmmanuel Vadot - vdda-phy-supply 115*8bab661aSEmmanuel Vadot - vdda-pll-supply 116*8bab661aSEmmanuel Vadot 117*8bab661aSEmmanuel VadotadditionalProperties: false 118*8bab661aSEmmanuel Vadot 119*8bab661aSEmmanuel VadotallOf: 120*8bab661aSEmmanuel Vadot - if: 121*8bab661aSEmmanuel Vadot properties: 122*8bab661aSEmmanuel Vadot compatible: 123*8bab661aSEmmanuel Vadot contains: 124*8bab661aSEmmanuel Vadot enum: 125*8bab661aSEmmanuel Vadot - qcom,sdm845-qmp-usb3-uni-phy 126*8bab661aSEmmanuel Vadot then: 127*8bab661aSEmmanuel Vadot properties: 128*8bab661aSEmmanuel Vadot clocks: 129*8bab661aSEmmanuel Vadot maxItems: 4 130*8bab661aSEmmanuel Vadot clock-names: 131*8bab661aSEmmanuel Vadot items: 132*8bab661aSEmmanuel Vadot - const: aux 133*8bab661aSEmmanuel Vadot - const: cfg_ahb 134*8bab661aSEmmanuel Vadot - const: ref 135*8bab661aSEmmanuel Vadot - const: com_aux 136*8bab661aSEmmanuel Vadot resets: 137*8bab661aSEmmanuel Vadot maxItems: 2 138*8bab661aSEmmanuel Vadot reset-names: 139*8bab661aSEmmanuel Vadot items: 140*8bab661aSEmmanuel Vadot - const: phy 141*8bab661aSEmmanuel Vadot - const: common 142*8bab661aSEmmanuel Vadot 143*8bab661aSEmmanuel Vadot - if: 144*8bab661aSEmmanuel Vadot properties: 145*8bab661aSEmmanuel Vadot compatible: 146*8bab661aSEmmanuel Vadot contains: 147*8bab661aSEmmanuel Vadot enum: 148*8bab661aSEmmanuel Vadot - qcom,ipq8074-qmp-usb3-phy 149*8bab661aSEmmanuel Vadot - qcom,msm8996-qmp-usb3-phy 150*8bab661aSEmmanuel Vadot - qcom,msm8998-qmp-usb3-phy 151*8bab661aSEmmanuel Vadot - qcom,sdx55-qmp-usb3-uni-phy 152*8bab661aSEmmanuel Vadot - qcom,sdx65-qmp-usb3-uni-phy 153*8bab661aSEmmanuel Vadot then: 154*8bab661aSEmmanuel Vadot properties: 155*8bab661aSEmmanuel Vadot clocks: 156*8bab661aSEmmanuel Vadot maxItems: 3 157*8bab661aSEmmanuel Vadot clock-names: 158*8bab661aSEmmanuel Vadot items: 159*8bab661aSEmmanuel Vadot - const: aux 160*8bab661aSEmmanuel Vadot - const: cfg_ahb 161*8bab661aSEmmanuel Vadot - const: ref 162*8bab661aSEmmanuel Vadot resets: 163*8bab661aSEmmanuel Vadot maxItems: 2 164*8bab661aSEmmanuel Vadot reset-names: 165*8bab661aSEmmanuel Vadot items: 166*8bab661aSEmmanuel Vadot - const: phy 167*8bab661aSEmmanuel Vadot - const: common 168*8bab661aSEmmanuel Vadot 169*8bab661aSEmmanuel Vadot - if: 170*8bab661aSEmmanuel Vadot properties: 171*8bab661aSEmmanuel Vadot compatible: 172*8bab661aSEmmanuel Vadot contains: 173*8bab661aSEmmanuel Vadot enum: 174*8bab661aSEmmanuel Vadot - qcom,sm8150-qmp-usb3-uni-phy 175*8bab661aSEmmanuel Vadot - qcom,sm8250-qmp-usb3-uni-phy 176*8bab661aSEmmanuel Vadot - qcom,sm8350-qmp-usb3-uni-phy 177*8bab661aSEmmanuel Vadot then: 178*8bab661aSEmmanuel Vadot properties: 179*8bab661aSEmmanuel Vadot clocks: 180*8bab661aSEmmanuel Vadot maxItems: 4 181*8bab661aSEmmanuel Vadot clock-names: 182*8bab661aSEmmanuel Vadot items: 183*8bab661aSEmmanuel Vadot - const: aux 184*8bab661aSEmmanuel Vadot - const: ref_clk_src 185*8bab661aSEmmanuel Vadot - const: ref 186*8bab661aSEmmanuel Vadot - const: com_aux 187*8bab661aSEmmanuel Vadot resets: 188*8bab661aSEmmanuel Vadot maxItems: 2 189*8bab661aSEmmanuel Vadot reset-names: 190*8bab661aSEmmanuel Vadot items: 191*8bab661aSEmmanuel Vadot - const: phy 192*8bab661aSEmmanuel Vadot - const: common 193*8bab661aSEmmanuel Vadot 194*8bab661aSEmmanuel Vadot - if: 195*8bab661aSEmmanuel Vadot properties: 196*8bab661aSEmmanuel Vadot compatible: 197*8bab661aSEmmanuel Vadot contains: 198*8bab661aSEmmanuel Vadot enum: 199*8bab661aSEmmanuel Vadot - qcom,msm8998-qmp-usb3-phy 200*8bab661aSEmmanuel Vadot then: 201*8bab661aSEmmanuel Vadot patternProperties: 202*8bab661aSEmmanuel Vadot "^phy@[0-9a-f]+$": 203*8bab661aSEmmanuel Vadot properties: 204*8bab661aSEmmanuel Vadot reg: 205*8bab661aSEmmanuel Vadot items: 206*8bab661aSEmmanuel Vadot - description: TX lane 1 207*8bab661aSEmmanuel Vadot - description: RX lane 1 208*8bab661aSEmmanuel Vadot - description: PCS 209*8bab661aSEmmanuel Vadot - description: TX lane 2 210*8bab661aSEmmanuel Vadot - description: RX lane 2 211*8bab661aSEmmanuel Vadot 212*8bab661aSEmmanuel Vadot - if: 213*8bab661aSEmmanuel Vadot properties: 214*8bab661aSEmmanuel Vadot compatible: 215*8bab661aSEmmanuel Vadot contains: 216*8bab661aSEmmanuel Vadot enum: 217*8bab661aSEmmanuel Vadot - qcom,ipq6018-qmp-usb3-phy 218*8bab661aSEmmanuel Vadot - qcom,ipq8074-qmp-usb3-phy 219*8bab661aSEmmanuel Vadot - qcom,sdx55-qmp-usb3-uni-phy 220*8bab661aSEmmanuel Vadot - qcom,sdx65-qmp-usb3-uni-phy 221*8bab661aSEmmanuel Vadot - qcom,sm8150-qmp-usb3-uni-phy 222*8bab661aSEmmanuel Vadot then: 223*8bab661aSEmmanuel Vadot patternProperties: 224*8bab661aSEmmanuel Vadot "^phy@[0-9a-f]+$": 225*8bab661aSEmmanuel Vadot properties: 226*8bab661aSEmmanuel Vadot reg: 227*8bab661aSEmmanuel Vadot items: 228*8bab661aSEmmanuel Vadot - description: TX 229*8bab661aSEmmanuel Vadot - description: RX 230*8bab661aSEmmanuel Vadot - description: PCS 231*8bab661aSEmmanuel Vadot - description: PCS_MISC 232*8bab661aSEmmanuel Vadot 233*8bab661aSEmmanuel Vadot - if: 234*8bab661aSEmmanuel Vadot properties: 235*8bab661aSEmmanuel Vadot compatible: 236*8bab661aSEmmanuel Vadot contains: 237*8bab661aSEmmanuel Vadot enum: 238*8bab661aSEmmanuel Vadot - qcom,msm8996-qmp-usb3-phy 239*8bab661aSEmmanuel Vadot - qcom,sm8250-qmp-usb3-uni-phy 240*8bab661aSEmmanuel Vadot - qcom,sm8350-qmp-usb3-uni-phy 241*8bab661aSEmmanuel Vadot then: 242*8bab661aSEmmanuel Vadot patternProperties: 243*8bab661aSEmmanuel Vadot "^phy@[0-9a-f]+$": 244*8bab661aSEmmanuel Vadot properties: 245*8bab661aSEmmanuel Vadot reg: 246*8bab661aSEmmanuel Vadot items: 247*8bab661aSEmmanuel Vadot - description: TX 248*8bab661aSEmmanuel Vadot - description: RX 249*8bab661aSEmmanuel Vadot - description: PCS 250*8bab661aSEmmanuel Vadot 251*8bab661aSEmmanuel Vadotexamples: 252*8bab661aSEmmanuel Vadot - | 253*8bab661aSEmmanuel Vadot #include <dt-bindings/clock/qcom,gcc-sdm845.h> 254*8bab661aSEmmanuel Vadot usb_2_qmpphy: phy-wrapper@88eb000 { 255*8bab661aSEmmanuel Vadot compatible = "qcom,sdm845-qmp-usb3-uni-phy"; 256*8bab661aSEmmanuel Vadot reg = <0x088eb000 0x18c>; 257*8bab661aSEmmanuel Vadot #address-cells = <1>; 258*8bab661aSEmmanuel Vadot #size-cells = <1>; 259*8bab661aSEmmanuel Vadot ranges = <0x0 0x088eb000 0x2000>; 260*8bab661aSEmmanuel Vadot 261*8bab661aSEmmanuel Vadot clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK >, 262*8bab661aSEmmanuel Vadot <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>, 263*8bab661aSEmmanuel Vadot <&gcc GCC_USB3_SEC_CLKREF_CLK>, 264*8bab661aSEmmanuel Vadot <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>; 265*8bab661aSEmmanuel Vadot clock-names = "aux", "cfg_ahb", "ref", "com_aux"; 266*8bab661aSEmmanuel Vadot 267*8bab661aSEmmanuel Vadot resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>, 268*8bab661aSEmmanuel Vadot <&gcc GCC_USB3_PHY_SEC_BCR>; 269*8bab661aSEmmanuel Vadot reset-names = "phy", "common"; 270*8bab661aSEmmanuel Vadot 271*8bab661aSEmmanuel Vadot vdda-phy-supply = <&vdda_usb2_ss_1p2>; 272*8bab661aSEmmanuel Vadot vdda-pll-supply = <&vdda_usb2_ss_core>; 273*8bab661aSEmmanuel Vadot 274*8bab661aSEmmanuel Vadot usb_2_ssphy: phy@200 { 275*8bab661aSEmmanuel Vadot reg = <0x200 0x128>, 276*8bab661aSEmmanuel Vadot <0x400 0x1fc>, 277*8bab661aSEmmanuel Vadot <0x800 0x218>, 278*8bab661aSEmmanuel Vadot <0x600 0x70>; 279*8bab661aSEmmanuel Vadot 280*8bab661aSEmmanuel Vadot clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>; 281*8bab661aSEmmanuel Vadot 282*8bab661aSEmmanuel Vadot #clock-cells = <0>; 283*8bab661aSEmmanuel Vadot clock-output-names = "usb3_uni_phy_pipe_clk_src"; 284*8bab661aSEmmanuel Vadot 285*8bab661aSEmmanuel Vadot #phy-cells = <0>; 286*8bab661aSEmmanuel Vadot }; 287*8bab661aSEmmanuel Vadot }; 288