xref: /freebsd/sys/contrib/device-tree/Bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
18bab661aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28bab661aSEmmanuel Vadot%YAML 1.2
38bab661aSEmmanuel Vadot---
48bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-pcie-phy.yaml#
58bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68bab661aSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: Qualcomm QMP PHY controller (PCIe, SC8280XP)
88bab661aSEmmanuel Vadot
98bab661aSEmmanuel Vadotmaintainers:
108bab661aSEmmanuel Vadot  - Vinod Koul <vkoul@kernel.org>
118bab661aSEmmanuel Vadot
128bab661aSEmmanuel Vadotdescription:
138bab661aSEmmanuel Vadot  The QMP PHY controller supports physical layer functionality for a number of
148bab661aSEmmanuel Vadot  controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB.
158bab661aSEmmanuel Vadot
168bab661aSEmmanuel Vadotproperties:
178bab661aSEmmanuel Vadot  compatible:
188bab661aSEmmanuel Vadot    enum:
19aa1a8ff2SEmmanuel Vadot      - qcom,sa8775p-qmp-gen4x2-pcie-phy
20aa1a8ff2SEmmanuel Vadot      - qcom,sa8775p-qmp-gen4x4-pcie-phy
21aa1a8ff2SEmmanuel Vadot      - qcom,sc8180x-qmp-pcie-phy
228bab661aSEmmanuel Vadot      - qcom,sc8280xp-qmp-gen3x1-pcie-phy
238bab661aSEmmanuel Vadot      - qcom,sc8280xp-qmp-gen3x2-pcie-phy
248bab661aSEmmanuel Vadot      - qcom,sc8280xp-qmp-gen3x4-pcie-phy
25aa1a8ff2SEmmanuel Vadot      - qcom,sdm845-qhp-pcie-phy
26aa1a8ff2SEmmanuel Vadot      - qcom,sdm845-qmp-pcie-phy
27aa1a8ff2SEmmanuel Vadot      - qcom,sdx55-qmp-pcie-phy
28fac71e4eSEmmanuel Vadot      - qcom,sdx65-qmp-gen4x2-pcie-phy
29aa1a8ff2SEmmanuel Vadot      - qcom,sm8150-qmp-gen3x1-pcie-phy
30aa1a8ff2SEmmanuel Vadot      - qcom,sm8150-qmp-gen3x2-pcie-phy
31aa1a8ff2SEmmanuel Vadot      - qcom,sm8250-qmp-gen3x1-pcie-phy
32aa1a8ff2SEmmanuel Vadot      - qcom,sm8250-qmp-gen3x2-pcie-phy
33aa1a8ff2SEmmanuel Vadot      - qcom,sm8250-qmp-modem-pcie-phy
34cb7aa33aSEmmanuel Vadot      - qcom,sm8350-qmp-gen3x1-pcie-phy
35aa1a8ff2SEmmanuel Vadot      - qcom,sm8450-qmp-gen3x1-pcie-phy
36aa1a8ff2SEmmanuel Vadot      - qcom,sm8450-qmp-gen4x2-pcie-phy
37cb7aa33aSEmmanuel Vadot      - qcom,sm8550-qmp-gen3x2-pcie-phy
38cb7aa33aSEmmanuel Vadot      - qcom,sm8550-qmp-gen4x2-pcie-phy
398d13bc63SEmmanuel Vadot      - qcom,sm8650-qmp-gen3x2-pcie-phy
408d13bc63SEmmanuel Vadot      - qcom,sm8650-qmp-gen4x2-pcie-phy
4101950c46SEmmanuel Vadot      - qcom,x1e80100-qmp-gen3x2-pcie-phy
4201950c46SEmmanuel Vadot      - qcom,x1e80100-qmp-gen4x2-pcie-phy
43*b2d2a78aSEmmanuel Vadot      - qcom,x1e80100-qmp-gen4x4-pcie-phy
448bab661aSEmmanuel Vadot
458bab661aSEmmanuel Vadot  reg:
468bab661aSEmmanuel Vadot    minItems: 1
478bab661aSEmmanuel Vadot    maxItems: 2
488bab661aSEmmanuel Vadot
498bab661aSEmmanuel Vadot  clocks:
50cb7aa33aSEmmanuel Vadot    minItems: 5
51aa1a8ff2SEmmanuel Vadot    maxItems: 7
528bab661aSEmmanuel Vadot
538bab661aSEmmanuel Vadot  clock-names:
54cb7aa33aSEmmanuel Vadot    minItems: 5
558bab661aSEmmanuel Vadot    items:
568bab661aSEmmanuel Vadot      - const: aux
578bab661aSEmmanuel Vadot      - const: cfg_ahb
588bab661aSEmmanuel Vadot      - const: ref
59aa1a8ff2SEmmanuel Vadot      - enum: [rchng, refgen]
608bab661aSEmmanuel Vadot      - const: pipe
618bab661aSEmmanuel Vadot      - const: pipediv2
62aa1a8ff2SEmmanuel Vadot      - const: phy_aux
638bab661aSEmmanuel Vadot
648bab661aSEmmanuel Vadot  power-domains:
658bab661aSEmmanuel Vadot    maxItems: 1
668bab661aSEmmanuel Vadot
678bab661aSEmmanuel Vadot  resets:
68cb7aa33aSEmmanuel Vadot    minItems: 1
69cb7aa33aSEmmanuel Vadot    maxItems: 2
708bab661aSEmmanuel Vadot
718bab661aSEmmanuel Vadot  reset-names:
72cb7aa33aSEmmanuel Vadot    minItems: 1
738bab661aSEmmanuel Vadot    items:
748bab661aSEmmanuel Vadot      - const: phy
75cb7aa33aSEmmanuel Vadot      - const: phy_nocsr
768bab661aSEmmanuel Vadot
778bab661aSEmmanuel Vadot  vdda-phy-supply: true
788bab661aSEmmanuel Vadot
798bab661aSEmmanuel Vadot  vdda-pll-supply: true
808bab661aSEmmanuel Vadot
81cb7aa33aSEmmanuel Vadot  vdda-qref-supply: true
82cb7aa33aSEmmanuel Vadot
838bab661aSEmmanuel Vadot  qcom,4ln-config-sel:
848bab661aSEmmanuel Vadot    description: PCIe 4-lane configuration
858bab661aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
868bab661aSEmmanuel Vadot    items:
878bab661aSEmmanuel Vadot      - items:
888bab661aSEmmanuel Vadot          - description: phandle of TCSR syscon
898bab661aSEmmanuel Vadot          - description: offset of PCIe 4-lane configuration register
908bab661aSEmmanuel Vadot          - description: offset of configuration bit for this PHY
918bab661aSEmmanuel Vadot
927d0873ebSEmmanuel Vadot  "#clock-cells": true
938bab661aSEmmanuel Vadot
948bab661aSEmmanuel Vadot  clock-output-names:
950e8011faSEmmanuel Vadot    maxItems: 1
968bab661aSEmmanuel Vadot
978bab661aSEmmanuel Vadot  "#phy-cells":
988bab661aSEmmanuel Vadot    const: 0
998bab661aSEmmanuel Vadot
1008bab661aSEmmanuel Vadotrequired:
1018bab661aSEmmanuel Vadot  - compatible
1028bab661aSEmmanuel Vadot  - reg
1038bab661aSEmmanuel Vadot  - clocks
1048bab661aSEmmanuel Vadot  - clock-names
1058bab661aSEmmanuel Vadot  - resets
1068bab661aSEmmanuel Vadot  - reset-names
1078bab661aSEmmanuel Vadot  - vdda-phy-supply
1088bab661aSEmmanuel Vadot  - vdda-pll-supply
1098bab661aSEmmanuel Vadot  - "#clock-cells"
1108bab661aSEmmanuel Vadot  - clock-output-names
1118bab661aSEmmanuel Vadot  - "#phy-cells"
1128bab661aSEmmanuel Vadot
1138bab661aSEmmanuel VadotadditionalProperties: false
1148bab661aSEmmanuel Vadot
1158bab661aSEmmanuel VadotallOf:
1168bab661aSEmmanuel Vadot  - if:
1178bab661aSEmmanuel Vadot      properties:
1188bab661aSEmmanuel Vadot        compatible:
1198bab661aSEmmanuel Vadot          contains:
1208bab661aSEmmanuel Vadot            enum:
1218bab661aSEmmanuel Vadot              - qcom,sc8280xp-qmp-gen3x4-pcie-phy
122*b2d2a78aSEmmanuel Vadot              - qcom,x1e80100-qmp-gen4x4-pcie-phy
1238bab661aSEmmanuel Vadot    then:
1248bab661aSEmmanuel Vadot      properties:
1258bab661aSEmmanuel Vadot        reg:
1268bab661aSEmmanuel Vadot          items:
1278bab661aSEmmanuel Vadot            - description: port a
1288bab661aSEmmanuel Vadot            - description: port b
1298bab661aSEmmanuel Vadot      required:
1308bab661aSEmmanuel Vadot        - qcom,4ln-config-sel
1318bab661aSEmmanuel Vadot    else:
1328bab661aSEmmanuel Vadot      properties:
1338bab661aSEmmanuel Vadot        reg:
1348bab661aSEmmanuel Vadot          maxItems: 1
1358bab661aSEmmanuel Vadot
136cb7aa33aSEmmanuel Vadot  - if:
137cb7aa33aSEmmanuel Vadot      properties:
138cb7aa33aSEmmanuel Vadot        compatible:
139cb7aa33aSEmmanuel Vadot          contains:
140cb7aa33aSEmmanuel Vadot            enum:
141aa1a8ff2SEmmanuel Vadot              - qcom,sc8180x-qmp-pcie-phy
142aa1a8ff2SEmmanuel Vadot              - qcom,sdm845-qhp-pcie-phy
143aa1a8ff2SEmmanuel Vadot              - qcom,sdm845-qmp-pcie-phy
144aa1a8ff2SEmmanuel Vadot              - qcom,sdx55-qmp-pcie-phy
145aa1a8ff2SEmmanuel Vadot              - qcom,sm8150-qmp-gen3x1-pcie-phy
146aa1a8ff2SEmmanuel Vadot              - qcom,sm8150-qmp-gen3x2-pcie-phy
147aa1a8ff2SEmmanuel Vadot              - qcom,sm8250-qmp-gen3x1-pcie-phy
148aa1a8ff2SEmmanuel Vadot              - qcom,sm8250-qmp-gen3x2-pcie-phy
149aa1a8ff2SEmmanuel Vadot              - qcom,sm8250-qmp-modem-pcie-phy
150cb7aa33aSEmmanuel Vadot              - qcom,sm8350-qmp-gen3x1-pcie-phy
151aa1a8ff2SEmmanuel Vadot              - qcom,sm8450-qmp-gen3x1-pcie-phy
152aa1a8ff2SEmmanuel Vadot              - qcom,sm8450-qmp-gen3x2-pcie-phy
153cb7aa33aSEmmanuel Vadot              - qcom,sm8550-qmp-gen3x2-pcie-phy
154cb7aa33aSEmmanuel Vadot              - qcom,sm8550-qmp-gen4x2-pcie-phy
1558d13bc63SEmmanuel Vadot              - qcom,sm8650-qmp-gen3x2-pcie-phy
1568d13bc63SEmmanuel Vadot              - qcom,sm8650-qmp-gen4x2-pcie-phy
157cb7aa33aSEmmanuel Vadot    then:
158cb7aa33aSEmmanuel Vadot      properties:
159cb7aa33aSEmmanuel Vadot        clocks:
160cb7aa33aSEmmanuel Vadot          maxItems: 5
161cb7aa33aSEmmanuel Vadot        clock-names:
162cb7aa33aSEmmanuel Vadot          maxItems: 5
163aa1a8ff2SEmmanuel Vadot
164aa1a8ff2SEmmanuel Vadot  - if:
165aa1a8ff2SEmmanuel Vadot      properties:
166aa1a8ff2SEmmanuel Vadot        compatible:
167aa1a8ff2SEmmanuel Vadot          contains:
168aa1a8ff2SEmmanuel Vadot            enum:
169aa1a8ff2SEmmanuel Vadot              - qcom,sc8280xp-qmp-gen3x1-pcie-phy
170aa1a8ff2SEmmanuel Vadot              - qcom,sc8280xp-qmp-gen3x2-pcie-phy
171aa1a8ff2SEmmanuel Vadot              - qcom,sc8280xp-qmp-gen3x4-pcie-phy
172*b2d2a78aSEmmanuel Vadot              - qcom,x1e80100-qmp-gen3x2-pcie-phy
173*b2d2a78aSEmmanuel Vadot              - qcom,x1e80100-qmp-gen4x2-pcie-phy
174*b2d2a78aSEmmanuel Vadot              - qcom,x1e80100-qmp-gen4x4-pcie-phy
175aa1a8ff2SEmmanuel Vadot    then:
176cb7aa33aSEmmanuel Vadot      properties:
177cb7aa33aSEmmanuel Vadot        clocks:
178cb7aa33aSEmmanuel Vadot          minItems: 6
179cb7aa33aSEmmanuel Vadot        clock-names:
180cb7aa33aSEmmanuel Vadot          minItems: 6
181cb7aa33aSEmmanuel Vadot
182cb7aa33aSEmmanuel Vadot  - if:
183cb7aa33aSEmmanuel Vadot      properties:
184cb7aa33aSEmmanuel Vadot        compatible:
185cb7aa33aSEmmanuel Vadot          contains:
186cb7aa33aSEmmanuel Vadot            enum:
187aa1a8ff2SEmmanuel Vadot              - qcom,sa8775p-qmp-gen4x2-pcie-phy
188aa1a8ff2SEmmanuel Vadot              - qcom,sa8775p-qmp-gen4x4-pcie-phy
189aa1a8ff2SEmmanuel Vadot    then:
190aa1a8ff2SEmmanuel Vadot      properties:
191aa1a8ff2SEmmanuel Vadot        clocks:
192aa1a8ff2SEmmanuel Vadot          minItems: 7
193aa1a8ff2SEmmanuel Vadot        clock-names:
194aa1a8ff2SEmmanuel Vadot          minItems: 7
195aa1a8ff2SEmmanuel Vadot
196aa1a8ff2SEmmanuel Vadot  - if:
197aa1a8ff2SEmmanuel Vadot      properties:
198aa1a8ff2SEmmanuel Vadot        compatible:
199aa1a8ff2SEmmanuel Vadot          contains:
200aa1a8ff2SEmmanuel Vadot            enum:
201cb7aa33aSEmmanuel Vadot              - qcom,sm8550-qmp-gen4x2-pcie-phy
2028d13bc63SEmmanuel Vadot              - qcom,sm8650-qmp-gen4x2-pcie-phy
20301950c46SEmmanuel Vadot              - qcom,x1e80100-qmp-gen4x2-pcie-phy
204*b2d2a78aSEmmanuel Vadot              - qcom,x1e80100-qmp-gen4x4-pcie-phy
205cb7aa33aSEmmanuel Vadot    then:
206cb7aa33aSEmmanuel Vadot      properties:
207cb7aa33aSEmmanuel Vadot        resets:
208cb7aa33aSEmmanuel Vadot          minItems: 2
209cb7aa33aSEmmanuel Vadot        reset-names:
210cb7aa33aSEmmanuel Vadot          minItems: 2
211cb7aa33aSEmmanuel Vadot    else:
212cb7aa33aSEmmanuel Vadot      properties:
213cb7aa33aSEmmanuel Vadot        resets:
214cb7aa33aSEmmanuel Vadot          maxItems: 1
215cb7aa33aSEmmanuel Vadot        reset-names:
216cb7aa33aSEmmanuel Vadot          maxItems: 1
217cb7aa33aSEmmanuel Vadot
2187d0873ebSEmmanuel Vadot  - if:
2197d0873ebSEmmanuel Vadot      properties:
2207d0873ebSEmmanuel Vadot        compatible:
2217d0873ebSEmmanuel Vadot          contains:
2227d0873ebSEmmanuel Vadot            enum:
2237d0873ebSEmmanuel Vadot              - qcom,sm8450-qmp-gen4x2-pcie-phy
2247d0873ebSEmmanuel Vadot              - qcom,sm8550-qmp-gen4x2-pcie-phy
2257d0873ebSEmmanuel Vadot              - qcom,sm8650-qmp-gen4x2-pcie-phy
2267d0873ebSEmmanuel Vadot    then:
2277d0873ebSEmmanuel Vadot      properties:
2287d0873ebSEmmanuel Vadot        "#clock-cells":
2297d0873ebSEmmanuel Vadot          const: 1
2307d0873ebSEmmanuel Vadot    else:
2317d0873ebSEmmanuel Vadot      properties:
2327d0873ebSEmmanuel Vadot        "#clock-cells":
2337d0873ebSEmmanuel Vadot          const: 0
2347d0873ebSEmmanuel Vadot
2358bab661aSEmmanuel Vadotexamples:
2368bab661aSEmmanuel Vadot  - |
2378bab661aSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
2388bab661aSEmmanuel Vadot
2398bab661aSEmmanuel Vadot    pcie2b_phy: phy@1c18000 {
2408bab661aSEmmanuel Vadot      compatible = "qcom,sc8280xp-qmp-gen3x2-pcie-phy";
2418bab661aSEmmanuel Vadot      reg = <0x01c18000 0x2000>;
2428bab661aSEmmanuel Vadot
2438bab661aSEmmanuel Vadot      clocks = <&gcc GCC_PCIE_2B_AUX_CLK>,
2448bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2B_CFG_AHB_CLK>,
2458bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A2B_CLKREF_CLK>,
2468bab661aSEmmanuel Vadot               <&gcc GCC_PCIE2B_PHY_RCHNG_CLK>,
2478bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2B_PIPE_CLK>,
2488bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2B_PIPEDIV2_CLK>;
2498bab661aSEmmanuel Vadot      clock-names = "aux", "cfg_ahb", "ref", "rchng",
2508bab661aSEmmanuel Vadot                    "pipe", "pipediv2";
2518bab661aSEmmanuel Vadot
2528bab661aSEmmanuel Vadot      power-domains = <&gcc PCIE_2B_GDSC>;
2538bab661aSEmmanuel Vadot
2548bab661aSEmmanuel Vadot      resets = <&gcc GCC_PCIE_2B_PHY_BCR>;
2558bab661aSEmmanuel Vadot      reset-names = "phy";
2568bab661aSEmmanuel Vadot
2578bab661aSEmmanuel Vadot      vdda-phy-supply = <&vreg_l6d>;
2588bab661aSEmmanuel Vadot      vdda-pll-supply = <&vreg_l4d>;
2598bab661aSEmmanuel Vadot
2608bab661aSEmmanuel Vadot      #clock-cells = <0>;
2618bab661aSEmmanuel Vadot      clock-output-names = "pcie_2b_pipe_clk";
2628bab661aSEmmanuel Vadot
2638bab661aSEmmanuel Vadot      #phy-cells = <0>;
2648bab661aSEmmanuel Vadot    };
2658bab661aSEmmanuel Vadot
2668bab661aSEmmanuel Vadot    pcie2a_phy: phy@1c24000 {
2678bab661aSEmmanuel Vadot      compatible = "qcom,sc8280xp-qmp-gen3x4-pcie-phy";
2688bab661aSEmmanuel Vadot      reg = <0x01c24000 0x2000>, <0x01c26000 0x2000>;
2698bab661aSEmmanuel Vadot
2708bab661aSEmmanuel Vadot      clocks = <&gcc GCC_PCIE_2A_AUX_CLK>,
2718bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A_CFG_AHB_CLK>,
2728bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A2B_CLKREF_CLK>,
2738bab661aSEmmanuel Vadot               <&gcc GCC_PCIE2A_PHY_RCHNG_CLK>,
2748bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A_PIPE_CLK>,
2758bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A_PIPEDIV2_CLK>;
2768bab661aSEmmanuel Vadot      clock-names = "aux", "cfg_ahb", "ref", "rchng",
2778bab661aSEmmanuel Vadot                    "pipe", "pipediv2";
2788bab661aSEmmanuel Vadot
2798bab661aSEmmanuel Vadot      power-domains = <&gcc PCIE_2A_GDSC>;
2808bab661aSEmmanuel Vadot
2818bab661aSEmmanuel Vadot      resets = <&gcc GCC_PCIE_2A_PHY_BCR>;
2828bab661aSEmmanuel Vadot      reset-names = "phy";
2838bab661aSEmmanuel Vadot
2848bab661aSEmmanuel Vadot      vdda-phy-supply = <&vreg_l6d>;
2858bab661aSEmmanuel Vadot      vdda-pll-supply = <&vreg_l4d>;
2868bab661aSEmmanuel Vadot
2878bab661aSEmmanuel Vadot      qcom,4ln-config-sel = <&tcsr 0xa044 0>;
2888bab661aSEmmanuel Vadot
2898bab661aSEmmanuel Vadot      #clock-cells = <0>;
2908bab661aSEmmanuel Vadot      clock-output-names = "pcie_2a_pipe_clk";
2918bab661aSEmmanuel Vadot
2928bab661aSEmmanuel Vadot      #phy-cells = <0>;
2938bab661aSEmmanuel Vadot    };
294