xref: /freebsd/sys/contrib/device-tree/Bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1*8bab661aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*8bab661aSEmmanuel Vadot%YAML 1.2
3*8bab661aSEmmanuel Vadot---
4*8bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-pcie-phy.yaml#
5*8bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*8bab661aSEmmanuel Vadot
7*8bab661aSEmmanuel Vadottitle: Qualcomm QMP PHY controller (PCIe, SC8280XP)
8*8bab661aSEmmanuel Vadot
9*8bab661aSEmmanuel Vadotmaintainers:
10*8bab661aSEmmanuel Vadot  - Vinod Koul <vkoul@kernel.org>
11*8bab661aSEmmanuel Vadot
12*8bab661aSEmmanuel Vadotdescription:
13*8bab661aSEmmanuel Vadot  The QMP PHY controller supports physical layer functionality for a number of
14*8bab661aSEmmanuel Vadot  controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB.
15*8bab661aSEmmanuel Vadot
16*8bab661aSEmmanuel Vadotproperties:
17*8bab661aSEmmanuel Vadot  compatible:
18*8bab661aSEmmanuel Vadot    enum:
19*8bab661aSEmmanuel Vadot      - qcom,sc8280xp-qmp-gen3x1-pcie-phy
20*8bab661aSEmmanuel Vadot      - qcom,sc8280xp-qmp-gen3x2-pcie-phy
21*8bab661aSEmmanuel Vadot      - qcom,sc8280xp-qmp-gen3x4-pcie-phy
22*8bab661aSEmmanuel Vadot
23*8bab661aSEmmanuel Vadot  reg:
24*8bab661aSEmmanuel Vadot    minItems: 1
25*8bab661aSEmmanuel Vadot    maxItems: 2
26*8bab661aSEmmanuel Vadot
27*8bab661aSEmmanuel Vadot  clocks:
28*8bab661aSEmmanuel Vadot    maxItems: 6
29*8bab661aSEmmanuel Vadot
30*8bab661aSEmmanuel Vadot  clock-names:
31*8bab661aSEmmanuel Vadot    items:
32*8bab661aSEmmanuel Vadot      - const: aux
33*8bab661aSEmmanuel Vadot      - const: cfg_ahb
34*8bab661aSEmmanuel Vadot      - const: ref
35*8bab661aSEmmanuel Vadot      - const: rchng
36*8bab661aSEmmanuel Vadot      - const: pipe
37*8bab661aSEmmanuel Vadot      - const: pipediv2
38*8bab661aSEmmanuel Vadot
39*8bab661aSEmmanuel Vadot  power-domains:
40*8bab661aSEmmanuel Vadot    maxItems: 1
41*8bab661aSEmmanuel Vadot
42*8bab661aSEmmanuel Vadot  resets:
43*8bab661aSEmmanuel Vadot    maxItems: 1
44*8bab661aSEmmanuel Vadot
45*8bab661aSEmmanuel Vadot  reset-names:
46*8bab661aSEmmanuel Vadot    items:
47*8bab661aSEmmanuel Vadot      - const: phy
48*8bab661aSEmmanuel Vadot
49*8bab661aSEmmanuel Vadot  vdda-phy-supply: true
50*8bab661aSEmmanuel Vadot
51*8bab661aSEmmanuel Vadot  vdda-pll-supply: true
52*8bab661aSEmmanuel Vadot
53*8bab661aSEmmanuel Vadot  qcom,4ln-config-sel:
54*8bab661aSEmmanuel Vadot    description: PCIe 4-lane configuration
55*8bab661aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
56*8bab661aSEmmanuel Vadot    items:
57*8bab661aSEmmanuel Vadot      - items:
58*8bab661aSEmmanuel Vadot          - description: phandle of TCSR syscon
59*8bab661aSEmmanuel Vadot          - description: offset of PCIe 4-lane configuration register
60*8bab661aSEmmanuel Vadot          - description: offset of configuration bit for this PHY
61*8bab661aSEmmanuel Vadot
62*8bab661aSEmmanuel Vadot  "#clock-cells":
63*8bab661aSEmmanuel Vadot    const: 0
64*8bab661aSEmmanuel Vadot
65*8bab661aSEmmanuel Vadot  clock-output-names:
66*8bab661aSEmmanuel Vadot    maxItems: 1
67*8bab661aSEmmanuel Vadot
68*8bab661aSEmmanuel Vadot  "#phy-cells":
69*8bab661aSEmmanuel Vadot    const: 0
70*8bab661aSEmmanuel Vadot
71*8bab661aSEmmanuel Vadotrequired:
72*8bab661aSEmmanuel Vadot  - compatible
73*8bab661aSEmmanuel Vadot  - reg
74*8bab661aSEmmanuel Vadot  - clocks
75*8bab661aSEmmanuel Vadot  - clock-names
76*8bab661aSEmmanuel Vadot  - power-domains
77*8bab661aSEmmanuel Vadot  - resets
78*8bab661aSEmmanuel Vadot  - reset-names
79*8bab661aSEmmanuel Vadot  - vdda-phy-supply
80*8bab661aSEmmanuel Vadot  - vdda-pll-supply
81*8bab661aSEmmanuel Vadot  - "#clock-cells"
82*8bab661aSEmmanuel Vadot  - clock-output-names
83*8bab661aSEmmanuel Vadot  - "#phy-cells"
84*8bab661aSEmmanuel Vadot
85*8bab661aSEmmanuel VadotadditionalProperties: false
86*8bab661aSEmmanuel Vadot
87*8bab661aSEmmanuel VadotallOf:
88*8bab661aSEmmanuel Vadot  - if:
89*8bab661aSEmmanuel Vadot      properties:
90*8bab661aSEmmanuel Vadot        compatible:
91*8bab661aSEmmanuel Vadot          contains:
92*8bab661aSEmmanuel Vadot            enum:
93*8bab661aSEmmanuel Vadot              - qcom,sc8280xp-qmp-gen3x4-pcie-phy
94*8bab661aSEmmanuel Vadot    then:
95*8bab661aSEmmanuel Vadot      properties:
96*8bab661aSEmmanuel Vadot        reg:
97*8bab661aSEmmanuel Vadot          items:
98*8bab661aSEmmanuel Vadot            - description: port a
99*8bab661aSEmmanuel Vadot            - description: port b
100*8bab661aSEmmanuel Vadot      required:
101*8bab661aSEmmanuel Vadot        - qcom,4ln-config-sel
102*8bab661aSEmmanuel Vadot    else:
103*8bab661aSEmmanuel Vadot      properties:
104*8bab661aSEmmanuel Vadot        reg:
105*8bab661aSEmmanuel Vadot          maxItems: 1
106*8bab661aSEmmanuel Vadot
107*8bab661aSEmmanuel Vadotexamples:
108*8bab661aSEmmanuel Vadot  - |
109*8bab661aSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
110*8bab661aSEmmanuel Vadot
111*8bab661aSEmmanuel Vadot    pcie2b_phy: phy@1c18000 {
112*8bab661aSEmmanuel Vadot      compatible = "qcom,sc8280xp-qmp-gen3x2-pcie-phy";
113*8bab661aSEmmanuel Vadot      reg = <0x01c18000 0x2000>;
114*8bab661aSEmmanuel Vadot
115*8bab661aSEmmanuel Vadot      clocks = <&gcc GCC_PCIE_2B_AUX_CLK>,
116*8bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2B_CFG_AHB_CLK>,
117*8bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A2B_CLKREF_CLK>,
118*8bab661aSEmmanuel Vadot               <&gcc GCC_PCIE2B_PHY_RCHNG_CLK>,
119*8bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2B_PIPE_CLK>,
120*8bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2B_PIPEDIV2_CLK>;
121*8bab661aSEmmanuel Vadot      clock-names = "aux", "cfg_ahb", "ref", "rchng",
122*8bab661aSEmmanuel Vadot                    "pipe", "pipediv2";
123*8bab661aSEmmanuel Vadot
124*8bab661aSEmmanuel Vadot      power-domains = <&gcc PCIE_2B_GDSC>;
125*8bab661aSEmmanuel Vadot
126*8bab661aSEmmanuel Vadot      resets = <&gcc GCC_PCIE_2B_PHY_BCR>;
127*8bab661aSEmmanuel Vadot      reset-names = "phy";
128*8bab661aSEmmanuel Vadot
129*8bab661aSEmmanuel Vadot      vdda-phy-supply = <&vreg_l6d>;
130*8bab661aSEmmanuel Vadot      vdda-pll-supply = <&vreg_l4d>;
131*8bab661aSEmmanuel Vadot
132*8bab661aSEmmanuel Vadot      #clock-cells = <0>;
133*8bab661aSEmmanuel Vadot      clock-output-names = "pcie_2b_pipe_clk";
134*8bab661aSEmmanuel Vadot
135*8bab661aSEmmanuel Vadot      #phy-cells = <0>;
136*8bab661aSEmmanuel Vadot    };
137*8bab661aSEmmanuel Vadot
138*8bab661aSEmmanuel Vadot    pcie2a_phy: phy@1c24000 {
139*8bab661aSEmmanuel Vadot      compatible = "qcom,sc8280xp-qmp-gen3x4-pcie-phy";
140*8bab661aSEmmanuel Vadot      reg = <0x01c24000 0x2000>, <0x01c26000 0x2000>;
141*8bab661aSEmmanuel Vadot
142*8bab661aSEmmanuel Vadot      clocks = <&gcc GCC_PCIE_2A_AUX_CLK>,
143*8bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A_CFG_AHB_CLK>,
144*8bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A2B_CLKREF_CLK>,
145*8bab661aSEmmanuel Vadot               <&gcc GCC_PCIE2A_PHY_RCHNG_CLK>,
146*8bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A_PIPE_CLK>,
147*8bab661aSEmmanuel Vadot               <&gcc GCC_PCIE_2A_PIPEDIV2_CLK>;
148*8bab661aSEmmanuel Vadot      clock-names = "aux", "cfg_ahb", "ref", "rchng",
149*8bab661aSEmmanuel Vadot                    "pipe", "pipediv2";
150*8bab661aSEmmanuel Vadot
151*8bab661aSEmmanuel Vadot      power-domains = <&gcc PCIE_2A_GDSC>;
152*8bab661aSEmmanuel Vadot
153*8bab661aSEmmanuel Vadot      resets = <&gcc GCC_PCIE_2A_PHY_BCR>;
154*8bab661aSEmmanuel Vadot      reset-names = "phy";
155*8bab661aSEmmanuel Vadot
156*8bab661aSEmmanuel Vadot      vdda-phy-supply = <&vreg_l6d>;
157*8bab661aSEmmanuel Vadot      vdda-pll-supply = <&vreg_l4d>;
158*8bab661aSEmmanuel Vadot
159*8bab661aSEmmanuel Vadot      qcom,4ln-config-sel = <&tcsr 0xa044 0>;
160*8bab661aSEmmanuel Vadot
161*8bab661aSEmmanuel Vadot      #clock-cells = <0>;
162*8bab661aSEmmanuel Vadot      clock-output-names = "pcie_2a_pipe_clk";
163*8bab661aSEmmanuel Vadot
164*8bab661aSEmmanuel Vadot      #phy-cells = <0>;
165*8bab661aSEmmanuel Vadot    };
166