0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002
0003 %YAML 1.2
0004 ---
0005 $id: "http://devicetree.org/schemas/phy/qcom,qmp-phy.yaml#"
0006 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0007
0008 title: Qualcomm QMP PHY controller
0009
0010 maintainers:
0011 - Vinod Koul <vkoul@kernel.org>
0012
0013 description:
0014 QMP phy controller supports physical layer functionality for a number of
0015 controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB.
0016
0017 properties:
0018 compatible:
0019 enum:
0020 - qcom,ipq6018-qmp-pcie-phy
0021 - qcom,ipq6018-qmp-usb3-phy
0022 - qcom,ipq8074-qmp-gen3-pcie-phy
0023 - qcom,ipq8074-qmp-pcie-phy
0024 - qcom,ipq8074-qmp-usb3-phy
0025 - qcom,msm8996-qmp-pcie-phy
0026 - qcom,msm8996-qmp-ufs-phy
0027 - qcom,msm8996-qmp-usb3-phy
0028 - qcom,msm8998-qmp-pcie-phy
0029 - qcom,msm8998-qmp-ufs-phy
0030 - qcom,msm8998-qmp-usb3-phy
0031 - qcom,qcm2290-qmp-usb3-phy
0032 - qcom,sc7180-qmp-usb3-phy
0033 - qcom,sc8180x-qmp-pcie-phy
0034 - qcom,sc8180x-qmp-ufs-phy
0035 - qcom,sc8180x-qmp-usb3-phy
0036 - qcom,sc8280xp-qmp-ufs-phy
0037 - qcom,sdm845-qhp-pcie-phy
0038 - qcom,sdm845-qmp-pcie-phy
0039 - qcom,sdm845-qmp-ufs-phy
0040 - qcom,sdm845-qmp-usb3-phy
0041 - qcom,sdm845-qmp-usb3-uni-phy
0042 - qcom,sm6115-qmp-ufs-phy
0043 - qcom,sm6350-qmp-ufs-phy
0044 - qcom,sm8150-qmp-ufs-phy
0045 - qcom,sm8150-qmp-usb3-phy
0046 - qcom,sm8150-qmp-usb3-uni-phy
0047 - qcom,sm8250-qmp-ufs-phy
0048 - qcom,sm8250-qmp-gen3x1-pcie-phy
0049 - qcom,sm8250-qmp-gen3x2-pcie-phy
0050 - qcom,sm8250-qmp-modem-pcie-phy
0051 - qcom,sm8250-qmp-usb3-phy
0052 - qcom,sm8250-qmp-usb3-uni-phy
0053 - qcom,sm8350-qmp-ufs-phy
0054 - qcom,sm8350-qmp-usb3-phy
0055 - qcom,sm8350-qmp-usb3-uni-phy
0056 - qcom,sm8450-qmp-gen3x1-pcie-phy
0057 - qcom,sm8450-qmp-gen4x2-pcie-phy
0058 - qcom,sm8450-qmp-ufs-phy
0059 - qcom,sm8450-qmp-usb3-phy
0060 - qcom,sdx55-qmp-pcie-phy
0061 - qcom,sdx55-qmp-usb3-uni-phy
0062 - qcom,sdx65-qmp-usb3-uni-phy
0063
0064 reg:
0065 minItems: 1
0066 items:
0067 - description: Address and length of PHY's common serdes block.
0068 - description: Address and length of PHY's DP_COM control block.
0069
0070 "#clock-cells":
0071 enum: [ 1, 2 ]
0072
0073 "#address-cells":
0074 enum: [ 1, 2 ]
0075
0076 "#size-cells":
0077 enum: [ 1, 2 ]
0078
0079 ranges: true
0080
0081 clocks:
0082 minItems: 1
0083 maxItems: 4
0084
0085 clock-names:
0086 minItems: 1
0087 maxItems: 4
0088
0089 resets:
0090 minItems: 1
0091 maxItems: 3
0092
0093 reset-names:
0094 minItems: 1
0095 maxItems: 3
0096
0097 vdda-phy-supply:
0098 description:
0099 Phandle to a regulator supply to PHY core block.
0100
0101 vdda-pll-supply:
0102 description:
0103 Phandle to 1.8V regulator supply to PHY refclk pll block.
0104
0105 vddp-ref-clk-supply:
0106 description:
0107 Phandle to a regulator supply to any specific refclk pll block.
0108
0109 #Required nodes:
0110 patternProperties:
0111 "^phy@[0-9a-f]+$":
0112 type: object
0113 description:
0114 Each device node of QMP phy is required to have as many child nodes as
0115 the number of lanes the PHY has.
0116
0117 required:
0118 - compatible
0119 - reg
0120 - "#clock-cells"
0121 - "#address-cells"
0122 - "#size-cells"
0123 - ranges
0124 - clocks
0125 - clock-names
0126 - resets
0127 - reset-names
0128
0129 additionalProperties: false
0130
0131 allOf:
0132 - if:
0133 properties:
0134 compatible:
0135 contains:
0136 enum:
0137 - qcom,sdm845-qmp-usb3-uni-phy
0138 then:
0139 properties:
0140 clocks:
0141 items:
0142 - description: Phy aux clock.
0143 - description: Phy config clock.
0144 - description: 19.2 MHz ref clk.
0145 - description: Phy common block aux clock.
0146 clock-names:
0147 items:
0148 - const: aux
0149 - const: cfg_ahb
0150 - const: ref
0151 - const: com_aux
0152 resets:
0153 items:
0154 - description: reset of phy block.
0155 - description: phy common block reset.
0156 reset-names:
0157 items:
0158 - const: phy
0159 - const: common
0160 required:
0161 - vdda-phy-supply
0162 - vdda-pll-supply
0163 - if:
0164 properties:
0165 compatible:
0166 contains:
0167 enum:
0168 - qcom,sdx55-qmp-usb3-uni-phy
0169 - qcom,sdx65-qmp-usb3-uni-phy
0170 then:
0171 properties:
0172 clocks:
0173 items:
0174 - description: Phy aux clock.
0175 - description: Phy config clock.
0176 - description: 19.2 MHz ref clk.
0177 clock-names:
0178 items:
0179 - const: aux
0180 - const: cfg_ahb
0181 - const: ref
0182 resets:
0183 items:
0184 - description: reset of phy block.
0185 - description: phy common block reset.
0186 reset-names:
0187 items:
0188 - const: phy
0189 - const: common
0190 required:
0191 - vdda-phy-supply
0192 - vdda-pll-supply
0193 - if:
0194 properties:
0195 compatible:
0196 contains:
0197 enum:
0198 - qcom,msm8996-qmp-pcie-phy
0199 then:
0200 properties:
0201 clocks:
0202 items:
0203 - description: Phy aux clock.
0204 - description: Phy config clock.
0205 - description: 19.2 MHz ref clk.
0206 clock-names:
0207 items:
0208 - const: aux
0209 - const: cfg_ahb
0210 - const: ref
0211 resets:
0212 items:
0213 - description: reset of phy block.
0214 - description: phy common block reset.
0215 - description: phy's ahb cfg block reset.
0216 reset-names:
0217 items:
0218 - const: phy
0219 - const: common
0220 - const: cfg
0221 required:
0222 - vdda-phy-supply
0223 - vdda-pll-supply
0224 - if:
0225 properties:
0226 compatible:
0227 contains:
0228 enum:
0229 - qcom,ipq8074-qmp-usb3-phy
0230 - qcom,msm8996-qmp-usb3-phy
0231 - qcom,msm8998-qmp-pcie-phy
0232 - qcom,msm8998-qmp-usb3-phy
0233 then:
0234 properties:
0235 clocks:
0236 items:
0237 - description: Phy aux clock.
0238 - description: Phy config clock.
0239 - description: 19.2 MHz ref clk.
0240 clock-names:
0241 items:
0242 - const: aux
0243 - const: cfg_ahb
0244 - const: ref
0245 resets:
0246 items:
0247 - description: reset of phy block.
0248 - description: phy common block reset.
0249 reset-names:
0250 items:
0251 - const: phy
0252 - const: common
0253 required:
0254 - vdda-phy-supply
0255 - vdda-pll-supply
0256 - if:
0257 properties:
0258 compatible:
0259 contains:
0260 enum:
0261 - qcom,msm8996-qmp-ufs-phy
0262 then:
0263 properties:
0264 clocks:
0265 items:
0266 - description: 19.2 MHz ref clk.
0267 clock-names:
0268 items:
0269 - const: ref
0270 resets:
0271 items:
0272 - description: PHY reset in the UFS controller.
0273 reset-names:
0274 items:
0275 - const: ufsphy
0276 required:
0277 - vdda-phy-supply
0278 - vdda-pll-supply
0279 - if:
0280 properties:
0281 compatible:
0282 contains:
0283 enum:
0284 - qcom,msm8998-qmp-ufs-phy
0285 - qcom,sdm845-qmp-ufs-phy
0286 - qcom,sm6350-qmp-ufs-phy
0287 - qcom,sm8150-qmp-ufs-phy
0288 - qcom,sm8250-qmp-ufs-phy
0289 - qcom,sc8180x-qmp-ufs-phy
0290 - qcom,sc8280xp-qmp-ufs-phy
0291 then:
0292 properties:
0293 clocks:
0294 items:
0295 - description: 19.2 MHz ref clk.
0296 - description: Phy reference aux clock.
0297 clock-names:
0298 items:
0299 - const: ref
0300 - const: ref_aux
0301 resets:
0302 items:
0303 - description: PHY reset in the UFS controller.
0304 reset-names:
0305 items:
0306 - const: ufsphy
0307 required:
0308 - vdda-phy-supply
0309 - vdda-pll-supply
0310 - if:
0311 properties:
0312 compatible:
0313 contains:
0314 enum:
0315 - qcom,ipq6018-qmp-pcie-phy
0316 - qcom,ipq8074-qmp-gen3-pcie-phy
0317 - qcom,ipq8074-qmp-pcie-phy
0318 then:
0319 properties:
0320 clocks:
0321 items:
0322 - description: Phy aux clock.
0323 - description: Phy config clock.
0324 clock-names:
0325 items:
0326 - const: aux
0327 - const: cfg_ahb
0328 resets:
0329 items:
0330 - description: reset of phy block.
0331 - description: phy common block reset.
0332 reset-names:
0333 items:
0334 - const: phy
0335 - const: common
0336 - if:
0337 properties:
0338 compatible:
0339 contains:
0340 enum:
0341 - qcom,sc8180x-qmp-pcie-phy
0342 - qcom,sdm845-qhp-pcie-phy
0343 - qcom,sdm845-qmp-pcie-phy
0344 - qcom,sdx55-qmp-pcie-phy
0345 - qcom,sm8250-qmp-gen3x1-pcie-phy
0346 - qcom,sm8250-qmp-gen3x2-pcie-phy
0347 - qcom,sm8250-qmp-modem-pcie-phy
0348 - qcom,sm8450-qmp-gen3x1-pcie-phy
0349 - qcom,sm8450-qmp-gen4x2-pcie-phy
0350 then:
0351 properties:
0352 clocks:
0353 items:
0354 - description: Phy aux clock.
0355 - description: Phy config clock.
0356 - description: 19.2 MHz ref clk.
0357 - description: Phy refgen clk.
0358 clock-names:
0359 items:
0360 - const: aux
0361 - const: cfg_ahb
0362 - const: ref
0363 - const: refgen
0364 resets:
0365 items:
0366 - description: reset of phy block.
0367 reset-names:
0368 items:
0369 - const: phy
0370 required:
0371 - vdda-phy-supply
0372 - vdda-pll-supply
0373 - if:
0374 properties:
0375 compatible:
0376 contains:
0377 enum:
0378 - qcom,sm8150-qmp-usb3-phy
0379 - qcom,sm8150-qmp-usb3-uni-phy
0380 - qcom,sm8250-qmp-usb3-uni-phy
0381 - qcom,sm8350-qmp-usb3-uni-phy
0382 then:
0383 properties:
0384 clocks:
0385 items:
0386 - description: Phy aux clock.
0387 - description: 19.2 MHz ref clk source.
0388 - description: 19.2 MHz ref clk.
0389 - description: Phy common block aux clock.
0390 clock-names:
0391 items:
0392 - const: aux
0393 - const: ref_clk_src
0394 - const: ref
0395 - const: com_aux
0396 resets:
0397 items:
0398 - description: reset of phy block.
0399 - description: phy common block reset.
0400 reset-names:
0401 items:
0402 - const: phy
0403 - const: common
0404 required:
0405 - vdda-phy-supply
0406 - vdda-pll-supply
0407 - if:
0408 properties:
0409 compatible:
0410 contains:
0411 enum:
0412 - qcom,sm8250-qmp-usb3-phy
0413 - qcom,sm8350-qmp-usb3-phy
0414 then:
0415 properties:
0416 clocks:
0417 items:
0418 - description: Phy aux clock.
0419 - description: 19.2 MHz ref clk.
0420 - description: Phy common block aux clock.
0421 clock-names:
0422 items:
0423 - const: aux
0424 - const: ref_clk_src
0425 - const: com_aux
0426 resets:
0427 items:
0428 - description: reset of phy block.
0429 - description: phy common block reset.
0430 reset-names:
0431 items:
0432 - const: phy
0433 - const: common
0434 required:
0435 - vdda-phy-supply
0436 - vdda-pll-supply
0437 - if:
0438 properties:
0439 compatible:
0440 contains:
0441 enum:
0442 - qcom,qcm2290-qmp-usb3-phy
0443 then:
0444 properties:
0445 clocks:
0446 items:
0447 - description: Phy config clock.
0448 - description: 19.2 MHz ref clk.
0449 - description: Phy common block aux clock.
0450 clock-names:
0451 items:
0452 - const: cfg_ahb
0453 - const: ref
0454 - const: com_aux
0455 resets:
0456 items:
0457 - description: phy_phy reset.
0458 - description: reset of phy block.
0459 reset-names:
0460 items:
0461 - const: phy_phy
0462 - const: phy
0463 required:
0464 - vdda-phy-supply
0465 - vdda-pll-supply
0466
0467 examples:
0468 - |
0469 #include <dt-bindings/clock/qcom,gcc-sdm845.h>
0470 usb_2_qmpphy: phy-wrapper@88eb000 {
0471 compatible = "qcom,sdm845-qmp-usb3-uni-phy";
0472 reg = <0x088eb000 0x18c>;
0473 #clock-cells = <1>;
0474 #address-cells = <1>;
0475 #size-cells = <1>;
0476 ranges = <0x0 0x088eb000 0x2000>;
0477
0478 clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK >,
0479 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
0480 <&gcc GCC_USB3_SEC_CLKREF_CLK>,
0481 <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>;
0482 clock-names = "aux", "cfg_ahb", "ref", "com_aux";
0483
0484 resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>,
0485 <&gcc GCC_USB3_PHY_SEC_BCR>;
0486 reset-names = "phy", "common";
0487
0488 vdda-phy-supply = <&vdda_usb2_ss_1p2>;
0489 vdda-pll-supply = <&vdda_usb2_ss_core>;
0490
0491 usb_2_ssphy: phy@200 {
0492 reg = <0x200 0x128>,
0493 <0x400 0x1fc>,
0494 <0x800 0x218>,
0495 <0x600 0x70>;
0496 #clock-cells = <0>;
0497 #phy-cells = <0>;
0498 clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
0499 clock-names = "pipe0";
0500 clock-output-names = "usb3_uni_phy_pipe_clk_src";
0501 };
0502 };