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-ufs-phy.yaml# 5*8bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8bab661aSEmmanuel Vadot 7*8bab661aSEmmanuel Vadottitle: Qualcomm QMP PHY controller (UFS, 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-ufs-phy.yaml. 18*8bab661aSEmmanuel Vadot 19*8bab661aSEmmanuel Vadotproperties: 20*8bab661aSEmmanuel Vadot compatible: 21*8bab661aSEmmanuel Vadot enum: 22*8bab661aSEmmanuel Vadot - qcom,msm8996-qmp-ufs-phy 23*8bab661aSEmmanuel Vadot - qcom,msm8998-qmp-ufs-phy 24*8bab661aSEmmanuel Vadot - qcom,sc8180x-qmp-ufs-phy 25*8bab661aSEmmanuel Vadot - qcom,sdm845-qmp-ufs-phy 26*8bab661aSEmmanuel Vadot - qcom,sm6115-qmp-ufs-phy 27*8bab661aSEmmanuel Vadot - qcom,sm6350-qmp-ufs-phy 28*8bab661aSEmmanuel Vadot - qcom,sm8150-qmp-ufs-phy 29*8bab661aSEmmanuel Vadot - qcom,sm8250-qmp-ufs-phy 30*8bab661aSEmmanuel Vadot - qcom,sm8350-qmp-ufs-phy 31*8bab661aSEmmanuel Vadot - qcom,sm8450-qmp-ufs-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: 1 47*8bab661aSEmmanuel Vadot maxItems: 3 48*8bab661aSEmmanuel Vadot 49*8bab661aSEmmanuel Vadot clock-names: 50*8bab661aSEmmanuel Vadot minItems: 1 51*8bab661aSEmmanuel Vadot maxItems: 3 52*8bab661aSEmmanuel Vadot 53*8bab661aSEmmanuel Vadot power-domains: 54*8bab661aSEmmanuel Vadot maxItems: 1 55*8bab661aSEmmanuel Vadot 56*8bab661aSEmmanuel Vadot resets: 57*8bab661aSEmmanuel Vadot maxItems: 1 58*8bab661aSEmmanuel Vadot 59*8bab661aSEmmanuel Vadot reset-names: 60*8bab661aSEmmanuel Vadot items: 61*8bab661aSEmmanuel Vadot - const: ufsphy 62*8bab661aSEmmanuel Vadot 63*8bab661aSEmmanuel Vadot vdda-phy-supply: true 64*8bab661aSEmmanuel Vadot 65*8bab661aSEmmanuel Vadot vdda-pll-supply: true 66*8bab661aSEmmanuel Vadot 67*8bab661aSEmmanuel Vadot vddp-ref-clk-supply: true 68*8bab661aSEmmanuel Vadot 69*8bab661aSEmmanuel VadotpatternProperties: 70*8bab661aSEmmanuel Vadot "^phy@[0-9a-f]+$": 71*8bab661aSEmmanuel Vadot type: object 72*8bab661aSEmmanuel Vadot description: single PHY-provider child node 73*8bab661aSEmmanuel Vadot properties: 74*8bab661aSEmmanuel Vadot reg: 75*8bab661aSEmmanuel Vadot minItems: 3 76*8bab661aSEmmanuel Vadot maxItems: 6 77*8bab661aSEmmanuel Vadot 78*8bab661aSEmmanuel Vadot "#phy-cells": 79*8bab661aSEmmanuel Vadot const: 0 80*8bab661aSEmmanuel Vadot 81*8bab661aSEmmanuel Vadot required: 82*8bab661aSEmmanuel Vadot - reg 83*8bab661aSEmmanuel Vadot - "#phy-cells" 84*8bab661aSEmmanuel Vadot 85*8bab661aSEmmanuel Vadot additionalProperties: false 86*8bab661aSEmmanuel Vadot 87*8bab661aSEmmanuel Vadotrequired: 88*8bab661aSEmmanuel Vadot - compatible 89*8bab661aSEmmanuel Vadot - reg 90*8bab661aSEmmanuel Vadot - "#address-cells" 91*8bab661aSEmmanuel Vadot - "#size-cells" 92*8bab661aSEmmanuel Vadot - ranges 93*8bab661aSEmmanuel Vadot - clocks 94*8bab661aSEmmanuel Vadot - clock-names 95*8bab661aSEmmanuel Vadot - resets 96*8bab661aSEmmanuel Vadot - reset-names 97*8bab661aSEmmanuel Vadot - vdda-phy-supply 98*8bab661aSEmmanuel Vadot - vdda-pll-supply 99*8bab661aSEmmanuel Vadot 100*8bab661aSEmmanuel VadotadditionalProperties: false 101*8bab661aSEmmanuel Vadot 102*8bab661aSEmmanuel VadotallOf: 103*8bab661aSEmmanuel Vadot - if: 104*8bab661aSEmmanuel Vadot properties: 105*8bab661aSEmmanuel Vadot compatible: 106*8bab661aSEmmanuel Vadot contains: 107*8bab661aSEmmanuel Vadot enum: 108*8bab661aSEmmanuel Vadot - qcom,msm8996-qmp-ufs-phy 109*8bab661aSEmmanuel Vadot then: 110*8bab661aSEmmanuel Vadot properties: 111*8bab661aSEmmanuel Vadot clocks: 112*8bab661aSEmmanuel Vadot maxItems: 1 113*8bab661aSEmmanuel Vadot clock-names: 114*8bab661aSEmmanuel Vadot items: 115*8bab661aSEmmanuel Vadot - const: ref 116*8bab661aSEmmanuel Vadot 117*8bab661aSEmmanuel Vadot - if: 118*8bab661aSEmmanuel Vadot properties: 119*8bab661aSEmmanuel Vadot compatible: 120*8bab661aSEmmanuel Vadot contains: 121*8bab661aSEmmanuel Vadot enum: 122*8bab661aSEmmanuel Vadot - qcom,msm8998-qmp-ufs-phy 123*8bab661aSEmmanuel Vadot - qcom,sc8180x-qmp-ufs-phy 124*8bab661aSEmmanuel Vadot - qcom,sdm845-qmp-ufs-phy 125*8bab661aSEmmanuel Vadot - qcom,sm6115-qmp-ufs-phy 126*8bab661aSEmmanuel Vadot - qcom,sm6350-qmp-ufs-phy 127*8bab661aSEmmanuel Vadot - qcom,sm8150-qmp-ufs-phy 128*8bab661aSEmmanuel Vadot - qcom,sm8250-qmp-ufs-phy 129*8bab661aSEmmanuel Vadot then: 130*8bab661aSEmmanuel Vadot properties: 131*8bab661aSEmmanuel Vadot clocks: 132*8bab661aSEmmanuel Vadot maxItems: 2 133*8bab661aSEmmanuel Vadot clock-names: 134*8bab661aSEmmanuel Vadot items: 135*8bab661aSEmmanuel Vadot - const: ref 136*8bab661aSEmmanuel Vadot - const: ref_aux 137*8bab661aSEmmanuel Vadot 138*8bab661aSEmmanuel Vadot - if: 139*8bab661aSEmmanuel Vadot properties: 140*8bab661aSEmmanuel Vadot compatible: 141*8bab661aSEmmanuel Vadot contains: 142*8bab661aSEmmanuel Vadot enum: 143*8bab661aSEmmanuel Vadot - qcom,sm8450-qmp-ufs-phy 144*8bab661aSEmmanuel Vadot then: 145*8bab661aSEmmanuel Vadot properties: 146*8bab661aSEmmanuel Vadot clocks: 147*8bab661aSEmmanuel Vadot maxItems: 3 148*8bab661aSEmmanuel Vadot clock-names: 149*8bab661aSEmmanuel Vadot items: 150*8bab661aSEmmanuel Vadot - const: ref 151*8bab661aSEmmanuel Vadot - const: ref_aux 152*8bab661aSEmmanuel Vadot - const: qref 153*8bab661aSEmmanuel Vadot 154*8bab661aSEmmanuel Vadot - if: 155*8bab661aSEmmanuel Vadot properties: 156*8bab661aSEmmanuel Vadot compatible: 157*8bab661aSEmmanuel Vadot contains: 158*8bab661aSEmmanuel Vadot enum: 159*8bab661aSEmmanuel Vadot - qcom,msm8998-qmp-ufs-phy 160*8bab661aSEmmanuel Vadot - qcom,sdm845-qmp-ufs-phy 161*8bab661aSEmmanuel Vadot - qcom,sm6350-qmp-ufs-phy 162*8bab661aSEmmanuel Vadot - qcom,sm8150-qmp-ufs-phy 163*8bab661aSEmmanuel Vadot - qcom,sm8250-qmp-ufs-phy 164*8bab661aSEmmanuel Vadot - qcom,sm8350-qmp-ufs-phy 165*8bab661aSEmmanuel Vadot - qcom,sm8450-qmp-ufs-phy 166*8bab661aSEmmanuel Vadot then: 167*8bab661aSEmmanuel Vadot patternProperties: 168*8bab661aSEmmanuel Vadot "^phy@[0-9a-f]+$": 169*8bab661aSEmmanuel Vadot properties: 170*8bab661aSEmmanuel Vadot reg: 171*8bab661aSEmmanuel Vadot items: 172*8bab661aSEmmanuel Vadot - description: TX lane 1 173*8bab661aSEmmanuel Vadot - description: RX lane 1 174*8bab661aSEmmanuel Vadot - description: PCS 175*8bab661aSEmmanuel Vadot - description: TX lane 2 176*8bab661aSEmmanuel Vadot - description: RX lane 2 177*8bab661aSEmmanuel Vadot 178*8bab661aSEmmanuel Vadot - if: 179*8bab661aSEmmanuel Vadot properties: 180*8bab661aSEmmanuel Vadot compatible: 181*8bab661aSEmmanuel Vadot contains: 182*8bab661aSEmmanuel Vadot enum: 183*8bab661aSEmmanuel Vadot - qcom,sc8180x-qmp-ufs-phy 184*8bab661aSEmmanuel Vadot then: 185*8bab661aSEmmanuel Vadot patternProperties: 186*8bab661aSEmmanuel Vadot "^phy@[0-9a-f]+$": 187*8bab661aSEmmanuel Vadot properties: 188*8bab661aSEmmanuel Vadot reg: 189*8bab661aSEmmanuel Vadot items: 190*8bab661aSEmmanuel Vadot - description: TX 191*8bab661aSEmmanuel Vadot - description: RX 192*8bab661aSEmmanuel Vadot - description: PCS 193*8bab661aSEmmanuel Vadot - description: PCS_MISC 194*8bab661aSEmmanuel Vadot 195*8bab661aSEmmanuel Vadot - if: 196*8bab661aSEmmanuel Vadot properties: 197*8bab661aSEmmanuel Vadot compatible: 198*8bab661aSEmmanuel Vadot contains: 199*8bab661aSEmmanuel Vadot enum: 200*8bab661aSEmmanuel Vadot - qcom,msm8996-qmp-ufs-phy 201*8bab661aSEmmanuel Vadot - qcom,sm6115-qmp-ufs-phy 202*8bab661aSEmmanuel Vadot then: 203*8bab661aSEmmanuel Vadot patternProperties: 204*8bab661aSEmmanuel Vadot "^phy@[0-9a-f]+$": 205*8bab661aSEmmanuel Vadot properties: 206*8bab661aSEmmanuel Vadot reg: 207*8bab661aSEmmanuel Vadot items: 208*8bab661aSEmmanuel Vadot - description: TX 209*8bab661aSEmmanuel Vadot - description: RX 210*8bab661aSEmmanuel Vadot - description: PCS 211*8bab661aSEmmanuel Vadot 212*8bab661aSEmmanuel Vadotexamples: 213*8bab661aSEmmanuel Vadot - | 214*8bab661aSEmmanuel Vadot #include <dt-bindings/clock/qcom,gcc-sm8250.h> 215*8bab661aSEmmanuel Vadot #include <dt-bindings/clock/qcom,rpmh.h> 216*8bab661aSEmmanuel Vadot 217*8bab661aSEmmanuel Vadot phy-wrapper@1d87000 { 218*8bab661aSEmmanuel Vadot compatible = "qcom,sm8250-qmp-ufs-phy"; 219*8bab661aSEmmanuel Vadot reg = <0x01d87000 0x1c0>; 220*8bab661aSEmmanuel Vadot #address-cells = <1>; 221*8bab661aSEmmanuel Vadot #size-cells = <1>; 222*8bab661aSEmmanuel Vadot ranges = <0x0 0x01d87000 0x1000>; 223*8bab661aSEmmanuel Vadot 224*8bab661aSEmmanuel Vadot clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_UFS_PHY_PHY_AUX_CLK>; 225*8bab661aSEmmanuel Vadot clock-names = "ref", "ref_aux"; 226*8bab661aSEmmanuel Vadot 227*8bab661aSEmmanuel Vadot resets = <&ufs_mem_hc 0>; 228*8bab661aSEmmanuel Vadot reset-names = "ufsphy"; 229*8bab661aSEmmanuel Vadot 230*8bab661aSEmmanuel Vadot vdda-phy-supply = <&vreg_l6b>; 231*8bab661aSEmmanuel Vadot vdda-pll-supply = <&vreg_l3b>; 232*8bab661aSEmmanuel Vadot 233*8bab661aSEmmanuel Vadot phy@400 { 234*8bab661aSEmmanuel Vadot reg = <0x400 0x108>, 235*8bab661aSEmmanuel Vadot <0x600 0x1e0>, 236*8bab661aSEmmanuel Vadot <0xc00 0x1dc>, 237*8bab661aSEmmanuel Vadot <0x800 0x108>, 238*8bab661aSEmmanuel Vadot <0xa00 0x1e0>; 239*8bab661aSEmmanuel Vadot #phy-cells = <0>; 240*8bab661aSEmmanuel Vadot }; 241*8bab661aSEmmanuel Vadot }; 242