Back to home page

OSCL-LXR

 
 

    


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         };