xref: /freebsd/sys/contrib/device-tree/Bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
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:
19*aa1a8ff2SEmmanuel Vadot      - qcom,sa8775p-qmp-gen4x2-pcie-phy
20*aa1a8ff2SEmmanuel Vadot      - qcom,sa8775p-qmp-gen4x4-pcie-phy
21*aa1a8ff2SEmmanuel 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
25*aa1a8ff2SEmmanuel Vadot      - qcom,sdm845-qhp-pcie-phy
26*aa1a8ff2SEmmanuel Vadot      - qcom,sdm845-qmp-pcie-phy
27*aa1a8ff2SEmmanuel Vadot      - qcom,sdx55-qmp-pcie-phy
28fac71e4eSEmmanuel Vadot      - qcom,sdx65-qmp-gen4x2-pcie-phy
29*aa1a8ff2SEmmanuel Vadot      - qcom,sm8150-qmp-gen3x1-pcie-phy
30*aa1a8ff2SEmmanuel Vadot      - qcom,sm8150-qmp-gen3x2-pcie-phy
31*aa1a8ff2SEmmanuel Vadot      - qcom,sm8250-qmp-gen3x1-pcie-phy
32*aa1a8ff2SEmmanuel Vadot      - qcom,sm8250-qmp-gen3x2-pcie-phy
33*aa1a8ff2SEmmanuel Vadot      - qcom,sm8250-qmp-modem-pcie-phy
34cb7aa33aSEmmanuel Vadot      - qcom,sm8350-qmp-gen3x1-pcie-phy
35*aa1a8ff2SEmmanuel Vadot      - qcom,sm8450-qmp-gen3x1-pcie-phy
36*aa1a8ff2SEmmanuel Vadot      - qcom,sm8450-qmp-gen4x2-pcie-phy
37cb7aa33aSEmmanuel Vadot      - qcom,sm8550-qmp-gen3x2-pcie-phy
38cb7aa33aSEmmanuel Vadot      - qcom,sm8550-qmp-gen4x2-pcie-phy
398bab661aSEmmanuel Vadot
408bab661aSEmmanuel Vadot  reg:
418bab661aSEmmanuel Vadot    minItems: 1
428bab661aSEmmanuel Vadot    maxItems: 2
438bab661aSEmmanuel Vadot
448bab661aSEmmanuel Vadot  clocks:
45cb7aa33aSEmmanuel Vadot    minItems: 5
46*aa1a8ff2SEmmanuel Vadot    maxItems: 7
478bab661aSEmmanuel Vadot
488bab661aSEmmanuel Vadot  clock-names:
49cb7aa33aSEmmanuel Vadot    minItems: 5
508bab661aSEmmanuel Vadot    items:
518bab661aSEmmanuel Vadot      - const: aux
528bab661aSEmmanuel Vadot      - const: cfg_ahb
538bab661aSEmmanuel Vadot      - const: ref
54*aa1a8ff2SEmmanuel Vadot      - enum: [rchng, refgen]
558bab661aSEmmanuel Vadot      - const: pipe
568bab661aSEmmanuel Vadot      - const: pipediv2
57*aa1a8ff2SEmmanuel Vadot      - const: phy_aux
588bab661aSEmmanuel Vadot
598bab661aSEmmanuel Vadot  power-domains:
608bab661aSEmmanuel Vadot    maxItems: 1
618bab661aSEmmanuel Vadot
628bab661aSEmmanuel Vadot  resets:
63cb7aa33aSEmmanuel Vadot    minItems: 1
64cb7aa33aSEmmanuel Vadot    maxItems: 2
658bab661aSEmmanuel Vadot
668bab661aSEmmanuel Vadot  reset-names:
67cb7aa33aSEmmanuel Vadot    minItems: 1
688bab661aSEmmanuel Vadot    items:
698bab661aSEmmanuel Vadot      - const: phy
70cb7aa33aSEmmanuel Vadot      - const: phy_nocsr
718bab661aSEmmanuel Vadot
728bab661aSEmmanuel Vadot  vdda-phy-supply: true
738bab661aSEmmanuel Vadot
748bab661aSEmmanuel Vadot  vdda-pll-supply: true
758bab661aSEmmanuel Vadot
76cb7aa33aSEmmanuel Vadot  vdda-qref-supply: true
77cb7aa33aSEmmanuel Vadot
788bab661aSEmmanuel Vadot  qcom,4ln-config-sel:
798bab661aSEmmanuel Vadot    description: PCIe 4-lane configuration
808bab661aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
818bab661aSEmmanuel Vadot    items:
828bab661aSEmmanuel Vadot      - items:
838bab661aSEmmanuel Vadot          - description: phandle of TCSR syscon
848bab661aSEmmanuel Vadot          - description: offset of PCIe 4-lane configuration register
858bab661aSEmmanuel Vadot          - description: offset of configuration bit for this PHY
868bab661aSEmmanuel Vadot
878bab661aSEmmanuel Vadot  "#clock-cells":
888bab661aSEmmanuel Vadot    const: 0
898bab661aSEmmanuel Vadot
908bab661aSEmmanuel Vadot  clock-output-names:
918bab661aSEmmanuel Vadot    maxItems: 1
928bab661aSEmmanuel Vadot
938bab661aSEmmanuel Vadot  "#phy-cells":
948bab661aSEmmanuel Vadot    const: 0
958bab661aSEmmanuel Vadot
968bab661aSEmmanuel Vadotrequired:
978bab661aSEmmanuel Vadot  - compatible
988bab661aSEmmanuel Vadot  - reg
998bab661aSEmmanuel Vadot  - clocks
1008bab661aSEmmanuel Vadot  - clock-names
1018bab661aSEmmanuel Vadot  - resets
1028bab661aSEmmanuel Vadot  - reset-names
1038bab661aSEmmanuel Vadot  - vdda-phy-supply
1048bab661aSEmmanuel Vadot  - vdda-pll-supply
1058bab661aSEmmanuel Vadot  - "#clock-cells"
1068bab661aSEmmanuel Vadot  - clock-output-names
1078bab661aSEmmanuel Vadot  - "#phy-cells"
1088bab661aSEmmanuel Vadot
1098bab661aSEmmanuel VadotadditionalProperties: false
1108bab661aSEmmanuel Vadot
1118bab661aSEmmanuel VadotallOf:
1128bab661aSEmmanuel Vadot  - if:
1138bab661aSEmmanuel Vadot      properties:
1148bab661aSEmmanuel Vadot        compatible:
1158bab661aSEmmanuel Vadot          contains:
1168bab661aSEmmanuel Vadot            enum:
1178bab661aSEmmanuel Vadot              - qcom,sc8280xp-qmp-gen3x4-pcie-phy
1188bab661aSEmmanuel Vadot    then:
1198bab661aSEmmanuel Vadot      properties:
1208bab661aSEmmanuel Vadot        reg:
1218bab661aSEmmanuel Vadot          items:
1228bab661aSEmmanuel Vadot            - description: port a
1238bab661aSEmmanuel Vadot            - description: port b
1248bab661aSEmmanuel Vadot      required:
1258bab661aSEmmanuel Vadot        - qcom,4ln-config-sel
1268bab661aSEmmanuel Vadot    else:
1278bab661aSEmmanuel Vadot      properties:
1288bab661aSEmmanuel Vadot        reg:
1298bab661aSEmmanuel Vadot          maxItems: 1
1308bab661aSEmmanuel Vadot
131cb7aa33aSEmmanuel Vadot  - if:
132cb7aa33aSEmmanuel Vadot      properties:
133cb7aa33aSEmmanuel Vadot        compatible:
134cb7aa33aSEmmanuel Vadot          contains:
135cb7aa33aSEmmanuel Vadot            enum:
136*aa1a8ff2SEmmanuel Vadot              - qcom,sc8180x-qmp-pcie-phy
137*aa1a8ff2SEmmanuel Vadot              - qcom,sdm845-qhp-pcie-phy
138*aa1a8ff2SEmmanuel Vadot              - qcom,sdm845-qmp-pcie-phy
139*aa1a8ff2SEmmanuel Vadot              - qcom,sdx55-qmp-pcie-phy
140*aa1a8ff2SEmmanuel Vadot              - qcom,sm8150-qmp-gen3x1-pcie-phy
141*aa1a8ff2SEmmanuel Vadot              - qcom,sm8150-qmp-gen3x2-pcie-phy
142*aa1a8ff2SEmmanuel Vadot              - qcom,sm8250-qmp-gen3x1-pcie-phy
143*aa1a8ff2SEmmanuel Vadot              - qcom,sm8250-qmp-gen3x2-pcie-phy
144*aa1a8ff2SEmmanuel Vadot              - qcom,sm8250-qmp-modem-pcie-phy
145cb7aa33aSEmmanuel Vadot              - qcom,sm8350-qmp-gen3x1-pcie-phy
146*aa1a8ff2SEmmanuel Vadot              - qcom,sm8450-qmp-gen3x1-pcie-phy
147*aa1a8ff2SEmmanuel Vadot              - qcom,sm8450-qmp-gen3x2-pcie-phy
148cb7aa33aSEmmanuel Vadot              - qcom,sm8550-qmp-gen3x2-pcie-phy
149cb7aa33aSEmmanuel Vadot              - qcom,sm8550-qmp-gen4x2-pcie-phy
150cb7aa33aSEmmanuel Vadot    then:
151cb7aa33aSEmmanuel Vadot      properties:
152cb7aa33aSEmmanuel Vadot        clocks:
153cb7aa33aSEmmanuel Vadot          maxItems: 5
154cb7aa33aSEmmanuel Vadot        clock-names:
155cb7aa33aSEmmanuel Vadot          maxItems: 5
156*aa1a8ff2SEmmanuel Vadot
157*aa1a8ff2SEmmanuel Vadot  - if:
158*aa1a8ff2SEmmanuel Vadot      properties:
159*aa1a8ff2SEmmanuel Vadot        compatible:
160*aa1a8ff2SEmmanuel Vadot          contains:
161*aa1a8ff2SEmmanuel Vadot            enum:
162*aa1a8ff2SEmmanuel Vadot              - qcom,sc8280xp-qmp-gen3x1-pcie-phy
163*aa1a8ff2SEmmanuel Vadot              - qcom,sc8280xp-qmp-gen3x2-pcie-phy
164*aa1a8ff2SEmmanuel Vadot              - qcom,sc8280xp-qmp-gen3x4-pcie-phy
165*aa1a8ff2SEmmanuel Vadot    then:
166cb7aa33aSEmmanuel Vadot      properties:
167cb7aa33aSEmmanuel Vadot        clocks:
168cb7aa33aSEmmanuel Vadot          minItems: 6
169cb7aa33aSEmmanuel Vadot        clock-names:
170cb7aa33aSEmmanuel Vadot          minItems: 6
171cb7aa33aSEmmanuel Vadot
172cb7aa33aSEmmanuel Vadot  - if:
173cb7aa33aSEmmanuel Vadot      properties:
174cb7aa33aSEmmanuel Vadot        compatible:
175cb7aa33aSEmmanuel Vadot          contains:
176cb7aa33aSEmmanuel Vadot            enum:
177*aa1a8ff2SEmmanuel Vadot              - qcom,sa8775p-qmp-gen4x2-pcie-phy
178*aa1a8ff2SEmmanuel Vadot              - qcom,sa8775p-qmp-gen4x4-pcie-phy
179*aa1a8ff2SEmmanuel Vadot    then:
180*aa1a8ff2SEmmanuel Vadot      properties:
181*aa1a8ff2SEmmanuel Vadot        clocks:
182*aa1a8ff2SEmmanuel Vadot          minItems: 7
183*aa1a8ff2SEmmanuel Vadot        clock-names:
184*aa1a8ff2SEmmanuel Vadot          minItems: 7
185*aa1a8ff2SEmmanuel Vadot
186*aa1a8ff2SEmmanuel Vadot  - if:
187*aa1a8ff2SEmmanuel Vadot      properties:
188*aa1a8ff2SEmmanuel Vadot        compatible:
189*aa1a8ff2SEmmanuel Vadot          contains:
190*aa1a8ff2SEmmanuel Vadot            enum:
191cb7aa33aSEmmanuel Vadot              - qcom,sm8550-qmp-gen4x2-pcie-phy
192cb7aa33aSEmmanuel Vadot    then:
193cb7aa33aSEmmanuel Vadot      properties:
194cb7aa33aSEmmanuel Vadot        resets:
195cb7aa33aSEmmanuel Vadot          minItems: 2
196cb7aa33aSEmmanuel Vadot        reset-names:
197cb7aa33aSEmmanuel Vadot          minItems: 2
198cb7aa33aSEmmanuel Vadot    else:
199cb7aa33aSEmmanuel Vadot      properties:
200cb7aa33aSEmmanuel Vadot        resets:
201cb7aa33aSEmmanuel Vadot          maxItems: 1
202cb7aa33aSEmmanuel Vadot        reset-names:
203cb7aa33aSEmmanuel Vadot          maxItems: 1
204cb7aa33aSEmmanuel Vadot
2058bab661aSEmmanuel Vadotexamples:
2068bab661aSEmmanuel Vadot  - |
2078bab661aSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
2088bab661aSEmmanuel Vadot
2098bab661aSEmmanuel Vadot    pcie2b_phy: phy@1c18000 {
2108bab661aSEmmanuel Vadot      compatible = "qcom,sc8280xp-qmp-gen3x2-pcie-phy";
2118bab661aSEmmanuel Vadot      reg = <0x01c18000 0x2000>;
2128bab661aSEmmanuel Vadot
2138bab661aSEmmanuel Vadot      clocks = <&gcc GCC_PCIE_2B_AUX_CLK>,
2148bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2B_CFG_AHB_CLK>,
2158bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A2B_CLKREF_CLK>,
2168bab661aSEmmanuel Vadot               <&gcc GCC_PCIE2B_PHY_RCHNG_CLK>,
2178bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2B_PIPE_CLK>,
2188bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2B_PIPEDIV2_CLK>;
2198bab661aSEmmanuel Vadot      clock-names = "aux", "cfg_ahb", "ref", "rchng",
2208bab661aSEmmanuel Vadot                    "pipe", "pipediv2";
2218bab661aSEmmanuel Vadot
2228bab661aSEmmanuel Vadot      power-domains = <&gcc PCIE_2B_GDSC>;
2238bab661aSEmmanuel Vadot
2248bab661aSEmmanuel Vadot      resets = <&gcc GCC_PCIE_2B_PHY_BCR>;
2258bab661aSEmmanuel Vadot      reset-names = "phy";
2268bab661aSEmmanuel Vadot
2278bab661aSEmmanuel Vadot      vdda-phy-supply = <&vreg_l6d>;
2288bab661aSEmmanuel Vadot      vdda-pll-supply = <&vreg_l4d>;
2298bab661aSEmmanuel Vadot
2308bab661aSEmmanuel Vadot      #clock-cells = <0>;
2318bab661aSEmmanuel Vadot      clock-output-names = "pcie_2b_pipe_clk";
2328bab661aSEmmanuel Vadot
2338bab661aSEmmanuel Vadot      #phy-cells = <0>;
2348bab661aSEmmanuel Vadot    };
2358bab661aSEmmanuel Vadot
2368bab661aSEmmanuel Vadot    pcie2a_phy: phy@1c24000 {
2378bab661aSEmmanuel Vadot      compatible = "qcom,sc8280xp-qmp-gen3x4-pcie-phy";
2388bab661aSEmmanuel Vadot      reg = <0x01c24000 0x2000>, <0x01c26000 0x2000>;
2398bab661aSEmmanuel Vadot
2408bab661aSEmmanuel Vadot      clocks = <&gcc GCC_PCIE_2A_AUX_CLK>,
2418bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A_CFG_AHB_CLK>,
2428bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A2B_CLKREF_CLK>,
2438bab661aSEmmanuel Vadot               <&gcc GCC_PCIE2A_PHY_RCHNG_CLK>,
2448bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A_PIPE_CLK>,
2458bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A_PIPEDIV2_CLK>;
2468bab661aSEmmanuel Vadot      clock-names = "aux", "cfg_ahb", "ref", "rchng",
2478bab661aSEmmanuel Vadot                    "pipe", "pipediv2";
2488bab661aSEmmanuel Vadot
2498bab661aSEmmanuel Vadot      power-domains = <&gcc PCIE_2A_GDSC>;
2508bab661aSEmmanuel Vadot
2518bab661aSEmmanuel Vadot      resets = <&gcc GCC_PCIE_2A_PHY_BCR>;
2528bab661aSEmmanuel Vadot      reset-names = "phy";
2538bab661aSEmmanuel Vadot
2548bab661aSEmmanuel Vadot      vdda-phy-supply = <&vreg_l6d>;
2558bab661aSEmmanuel Vadot      vdda-pll-supply = <&vreg_l4d>;
2568bab661aSEmmanuel Vadot
2578bab661aSEmmanuel Vadot      qcom,4ln-config-sel = <&tcsr 0xa044 0>;
2588bab661aSEmmanuel Vadot
2598bab661aSEmmanuel Vadot      #clock-cells = <0>;
2608bab661aSEmmanuel Vadot      clock-output-names = "pcie_2a_pipe_clk";
2618bab661aSEmmanuel Vadot
2628bab661aSEmmanuel Vadot      #phy-cells = <0>;
2638bab661aSEmmanuel Vadot    };
264