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