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