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