1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun%YAML 1.2 4*4882a593Smuzhiyun--- 5*4882a593Smuzhiyun$id: "http://devicetree.org/schemas/phy/qcom,qmp-phy.yaml#" 6*4882a593Smuzhiyun$schema: "http://devicetree.org/meta-schemas/core.yaml#" 7*4882a593Smuzhiyun 8*4882a593Smuzhiyuntitle: Qualcomm QMP PHY controller 9*4882a593Smuzhiyun 10*4882a593Smuzhiyunmaintainers: 11*4882a593Smuzhiyun - Manu Gautam <mgautam@codeaurora.org> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyundescription: 14*4882a593Smuzhiyun QMP phy controller supports physical layer functionality for a number of 15*4882a593Smuzhiyun controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB. 16*4882a593Smuzhiyun 17*4882a593Smuzhiyunproperties: 18*4882a593Smuzhiyun compatible: 19*4882a593Smuzhiyun enum: 20*4882a593Smuzhiyun - qcom,ipq8074-qmp-pcie-phy 21*4882a593Smuzhiyun - qcom,ipq8074-qmp-usb3-phy 22*4882a593Smuzhiyun - qcom,msm8996-qmp-pcie-phy 23*4882a593Smuzhiyun - qcom,msm8996-qmp-ufs-phy 24*4882a593Smuzhiyun - qcom,msm8996-qmp-usb3-phy 25*4882a593Smuzhiyun - qcom,msm8998-qmp-pcie-phy 26*4882a593Smuzhiyun - qcom,msm8998-qmp-ufs-phy 27*4882a593Smuzhiyun - qcom,msm8998-qmp-usb3-phy 28*4882a593Smuzhiyun - qcom,sdm845-qhp-pcie-phy 29*4882a593Smuzhiyun - qcom,sdm845-qmp-pcie-phy 30*4882a593Smuzhiyun - qcom,sdm845-qmp-ufs-phy 31*4882a593Smuzhiyun - qcom,sdm845-qmp-usb3-uni-phy 32*4882a593Smuzhiyun - qcom,sm8150-qmp-ufs-phy 33*4882a593Smuzhiyun - qcom,sm8250-qmp-ufs-phy 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun reg: 36*4882a593Smuzhiyun items: 37*4882a593Smuzhiyun - description: Address and length of PHY's common serdes block. 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun "#clock-cells": 40*4882a593Smuzhiyun enum: [ 1, 2 ] 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun "#address-cells": 43*4882a593Smuzhiyun enum: [ 1, 2 ] 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun "#size-cells": 46*4882a593Smuzhiyun enum: [ 1, 2 ] 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun ranges: true 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun clocks: 51*4882a593Smuzhiyun minItems: 1 52*4882a593Smuzhiyun maxItems: 4 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun clock-names: 55*4882a593Smuzhiyun minItems: 1 56*4882a593Smuzhiyun maxItems: 4 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun resets: 59*4882a593Smuzhiyun minItems: 1 60*4882a593Smuzhiyun maxItems: 3 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun reset-names: 63*4882a593Smuzhiyun minItems: 1 64*4882a593Smuzhiyun maxItems: 3 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun vdda-phy-supply: 67*4882a593Smuzhiyun description: 68*4882a593Smuzhiyun Phandle to a regulator supply to PHY core block. 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun vdda-pll-supply: 71*4882a593Smuzhiyun description: 72*4882a593Smuzhiyun Phandle to 1.8V regulator supply to PHY refclk pll block. 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun vddp-ref-clk-supply: 75*4882a593Smuzhiyun description: 76*4882a593Smuzhiyun Phandle to a regulator supply to any specific refclk pll block. 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun#Required nodes: 79*4882a593SmuzhiyunpatternProperties: 80*4882a593Smuzhiyun "^phy@[0-9a-f]+$": 81*4882a593Smuzhiyun type: object 82*4882a593Smuzhiyun description: 83*4882a593Smuzhiyun Each device node of QMP phy is required to have as many child nodes as 84*4882a593Smuzhiyun the number of lanes the PHY has. 85*4882a593Smuzhiyun 86*4882a593Smuzhiyunrequired: 87*4882a593Smuzhiyun - compatible 88*4882a593Smuzhiyun - reg 89*4882a593Smuzhiyun - "#clock-cells" 90*4882a593Smuzhiyun - "#address-cells" 91*4882a593Smuzhiyun - "#size-cells" 92*4882a593Smuzhiyun - ranges 93*4882a593Smuzhiyun - clocks 94*4882a593Smuzhiyun - clock-names 95*4882a593Smuzhiyun - resets 96*4882a593Smuzhiyun - reset-names 97*4882a593Smuzhiyun - vdda-phy-supply 98*4882a593Smuzhiyun - vdda-pll-supply 99*4882a593Smuzhiyun 100*4882a593SmuzhiyunadditionalProperties: false 101*4882a593Smuzhiyun 102*4882a593SmuzhiyunallOf: 103*4882a593Smuzhiyun - if: 104*4882a593Smuzhiyun properties: 105*4882a593Smuzhiyun compatible: 106*4882a593Smuzhiyun contains: 107*4882a593Smuzhiyun enum: 108*4882a593Smuzhiyun - qcom,sdm845-qmp-usb3-uni-phy 109*4882a593Smuzhiyun then: 110*4882a593Smuzhiyun properties: 111*4882a593Smuzhiyun clocks: 112*4882a593Smuzhiyun items: 113*4882a593Smuzhiyun - description: Phy aux clock. 114*4882a593Smuzhiyun - description: Phy config clock. 115*4882a593Smuzhiyun - description: 19.2 MHz ref clk. 116*4882a593Smuzhiyun - description: Phy common block aux clock. 117*4882a593Smuzhiyun clock-names: 118*4882a593Smuzhiyun items: 119*4882a593Smuzhiyun - const: aux 120*4882a593Smuzhiyun - const: cfg_ahb 121*4882a593Smuzhiyun - const: ref 122*4882a593Smuzhiyun - const: com_aux 123*4882a593Smuzhiyun resets: 124*4882a593Smuzhiyun items: 125*4882a593Smuzhiyun - description: reset of phy block. 126*4882a593Smuzhiyun - description: phy common block reset. 127*4882a593Smuzhiyun reset-names: 128*4882a593Smuzhiyun items: 129*4882a593Smuzhiyun - const: phy 130*4882a593Smuzhiyun - const: common 131*4882a593Smuzhiyun - if: 132*4882a593Smuzhiyun properties: 133*4882a593Smuzhiyun compatible: 134*4882a593Smuzhiyun contains: 135*4882a593Smuzhiyun enum: 136*4882a593Smuzhiyun - qcom,msm8996-qmp-pcie-phy 137*4882a593Smuzhiyun then: 138*4882a593Smuzhiyun properties: 139*4882a593Smuzhiyun clocks: 140*4882a593Smuzhiyun items: 141*4882a593Smuzhiyun - description: Phy aux clock. 142*4882a593Smuzhiyun - description: Phy config clock. 143*4882a593Smuzhiyun - description: 19.2 MHz ref clk. 144*4882a593Smuzhiyun clock-names: 145*4882a593Smuzhiyun items: 146*4882a593Smuzhiyun - const: aux 147*4882a593Smuzhiyun - const: cfg_ahb 148*4882a593Smuzhiyun - const: ref 149*4882a593Smuzhiyun resets: 150*4882a593Smuzhiyun items: 151*4882a593Smuzhiyun - description: reset of phy block. 152*4882a593Smuzhiyun - description: phy common block reset. 153*4882a593Smuzhiyun - description: phy's ahb cfg block reset. 154*4882a593Smuzhiyun reset-names: 155*4882a593Smuzhiyun items: 156*4882a593Smuzhiyun - const: phy 157*4882a593Smuzhiyun - const: common 158*4882a593Smuzhiyun - const: cfg 159*4882a593Smuzhiyun - if: 160*4882a593Smuzhiyun properties: 161*4882a593Smuzhiyun compatible: 162*4882a593Smuzhiyun contains: 163*4882a593Smuzhiyun enum: 164*4882a593Smuzhiyun - qcom,ipq8074-qmp-usb3-phy 165*4882a593Smuzhiyun - qcom,msm8996-qmp-usb3-phy 166*4882a593Smuzhiyun - qcom,msm8998-qmp-pcie-phy 167*4882a593Smuzhiyun - qcom,msm8998-qmp-usb3-phy 168*4882a593Smuzhiyun then: 169*4882a593Smuzhiyun properties: 170*4882a593Smuzhiyun clocks: 171*4882a593Smuzhiyun items: 172*4882a593Smuzhiyun - description: Phy aux clock. 173*4882a593Smuzhiyun - description: Phy config clock. 174*4882a593Smuzhiyun - description: 19.2 MHz ref clk. 175*4882a593Smuzhiyun clock-names: 176*4882a593Smuzhiyun items: 177*4882a593Smuzhiyun - const: aux 178*4882a593Smuzhiyun - const: cfg_ahb 179*4882a593Smuzhiyun - const: ref 180*4882a593Smuzhiyun resets: 181*4882a593Smuzhiyun items: 182*4882a593Smuzhiyun - description: reset of phy block. 183*4882a593Smuzhiyun - description: phy common block reset. 184*4882a593Smuzhiyun reset-names: 185*4882a593Smuzhiyun items: 186*4882a593Smuzhiyun - const: phy 187*4882a593Smuzhiyun - const: common 188*4882a593Smuzhiyun - if: 189*4882a593Smuzhiyun properties: 190*4882a593Smuzhiyun compatible: 191*4882a593Smuzhiyun contains: 192*4882a593Smuzhiyun enum: 193*4882a593Smuzhiyun - qcom,msm8996-qmp-ufs-phy 194*4882a593Smuzhiyun then: 195*4882a593Smuzhiyun properties: 196*4882a593Smuzhiyun clocks: 197*4882a593Smuzhiyun items: 198*4882a593Smuzhiyun - description: 19.2 MHz ref clk. 199*4882a593Smuzhiyun clock-names: 200*4882a593Smuzhiyun items: 201*4882a593Smuzhiyun - const: ref 202*4882a593Smuzhiyun resets: 203*4882a593Smuzhiyun items: 204*4882a593Smuzhiyun - description: PHY reset in the UFS controller. 205*4882a593Smuzhiyun reset-names: 206*4882a593Smuzhiyun items: 207*4882a593Smuzhiyun - const: ufsphy 208*4882a593Smuzhiyun - if: 209*4882a593Smuzhiyun properties: 210*4882a593Smuzhiyun compatible: 211*4882a593Smuzhiyun contains: 212*4882a593Smuzhiyun enum: 213*4882a593Smuzhiyun - qcom,msm8998-qmp-ufs-phy 214*4882a593Smuzhiyun - qcom,sdm845-qmp-ufs-phy 215*4882a593Smuzhiyun - qcom,sm8150-qmp-ufs-phy 216*4882a593Smuzhiyun - qcom,sm8250-qmp-ufs-phy 217*4882a593Smuzhiyun then: 218*4882a593Smuzhiyun properties: 219*4882a593Smuzhiyun clocks: 220*4882a593Smuzhiyun items: 221*4882a593Smuzhiyun - description: 19.2 MHz ref clk. 222*4882a593Smuzhiyun - description: Phy reference aux clock. 223*4882a593Smuzhiyun clock-names: 224*4882a593Smuzhiyun items: 225*4882a593Smuzhiyun - const: ref 226*4882a593Smuzhiyun - const: ref_aux 227*4882a593Smuzhiyun resets: 228*4882a593Smuzhiyun items: 229*4882a593Smuzhiyun - description: PHY reset in the UFS controller. 230*4882a593Smuzhiyun reset-names: 231*4882a593Smuzhiyun items: 232*4882a593Smuzhiyun - const: ufsphy 233*4882a593Smuzhiyun - if: 234*4882a593Smuzhiyun properties: 235*4882a593Smuzhiyun compatible: 236*4882a593Smuzhiyun contains: 237*4882a593Smuzhiyun enum: 238*4882a593Smuzhiyun - qcom,ipq8074-qmp-pcie-phy 239*4882a593Smuzhiyun then: 240*4882a593Smuzhiyun properties: 241*4882a593Smuzhiyun clocks: 242*4882a593Smuzhiyun items: 243*4882a593Smuzhiyun - description: pipe clk. 244*4882a593Smuzhiyun clock-names: 245*4882a593Smuzhiyun items: 246*4882a593Smuzhiyun - const: pipe_clk 247*4882a593Smuzhiyun resets: 248*4882a593Smuzhiyun items: 249*4882a593Smuzhiyun - description: reset of phy block. 250*4882a593Smuzhiyun - description: phy common block reset. 251*4882a593Smuzhiyun reset-names: 252*4882a593Smuzhiyun items: 253*4882a593Smuzhiyun - const: phy 254*4882a593Smuzhiyun - const: common 255*4882a593Smuzhiyun - if: 256*4882a593Smuzhiyun properties: 257*4882a593Smuzhiyun compatible: 258*4882a593Smuzhiyun contains: 259*4882a593Smuzhiyun enum: 260*4882a593Smuzhiyun - qcom,sdm845-qhp-pcie-phy 261*4882a593Smuzhiyun - qcom,sdm845-qmp-pcie-phy 262*4882a593Smuzhiyun then: 263*4882a593Smuzhiyun properties: 264*4882a593Smuzhiyun clocks: 265*4882a593Smuzhiyun items: 266*4882a593Smuzhiyun - description: Phy aux clock. 267*4882a593Smuzhiyun - description: Phy config clock. 268*4882a593Smuzhiyun - description: 19.2 MHz ref clk. 269*4882a593Smuzhiyun - description: Phy refgen clk. 270*4882a593Smuzhiyun clock-names: 271*4882a593Smuzhiyun items: 272*4882a593Smuzhiyun - const: aux 273*4882a593Smuzhiyun - const: cfg_ahb 274*4882a593Smuzhiyun - const: ref 275*4882a593Smuzhiyun - const: refgen 276*4882a593Smuzhiyun resets: 277*4882a593Smuzhiyun items: 278*4882a593Smuzhiyun - description: reset of phy block. 279*4882a593Smuzhiyun reset-names: 280*4882a593Smuzhiyun items: 281*4882a593Smuzhiyun - const: phy 282*4882a593Smuzhiyun 283*4882a593Smuzhiyunexamples: 284*4882a593Smuzhiyun - | 285*4882a593Smuzhiyun #include <dt-bindings/clock/qcom,gcc-sdm845.h> 286*4882a593Smuzhiyun usb_2_qmpphy: phy-wrapper@88eb000 { 287*4882a593Smuzhiyun compatible = "qcom,sdm845-qmp-usb3-uni-phy"; 288*4882a593Smuzhiyun reg = <0x088eb000 0x18c>; 289*4882a593Smuzhiyun #clock-cells = <1>; 290*4882a593Smuzhiyun #address-cells = <1>; 291*4882a593Smuzhiyun #size-cells = <1>; 292*4882a593Smuzhiyun ranges = <0x0 0x088eb000 0x2000>; 293*4882a593Smuzhiyun 294*4882a593Smuzhiyun clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK >, 295*4882a593Smuzhiyun <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>, 296*4882a593Smuzhiyun <&gcc GCC_USB3_SEC_CLKREF_CLK>, 297*4882a593Smuzhiyun <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>; 298*4882a593Smuzhiyun clock-names = "aux", "cfg_ahb", "ref", "com_aux"; 299*4882a593Smuzhiyun 300*4882a593Smuzhiyun resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>, 301*4882a593Smuzhiyun <&gcc GCC_USB3_PHY_SEC_BCR>; 302*4882a593Smuzhiyun reset-names = "phy", "common"; 303*4882a593Smuzhiyun 304*4882a593Smuzhiyun vdda-phy-supply = <&vdda_usb2_ss_1p2>; 305*4882a593Smuzhiyun vdda-pll-supply = <&vdda_usb2_ss_core>; 306*4882a593Smuzhiyun 307*4882a593Smuzhiyun usb_2_ssphy: phy@200 { 308*4882a593Smuzhiyun reg = <0x200 0x128>, 309*4882a593Smuzhiyun <0x400 0x1fc>, 310*4882a593Smuzhiyun <0x800 0x218>, 311*4882a593Smuzhiyun <0x600 0x70>; 312*4882a593Smuzhiyun #clock-cells = <0>; 313*4882a593Smuzhiyun #phy-cells = <0>; 314*4882a593Smuzhiyun clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>; 315*4882a593Smuzhiyun clock-names = "pipe0"; 316*4882a593Smuzhiyun clock-output-names = "usb3_uni_phy_pipe_clk_src"; 317*4882a593Smuzhiyun }; 318*4882a593Smuzhiyun }; 319