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