1 Qualcomm QMP PHY controller
2 ===========================
4 QMP phy controller supports physical layer functionality for a number of
5 controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB.
8 - compatible: compatible list, contains:
9 "qcom,ipq8074-qmp-pcie-phy" for PCIe phy on IPQ8074
10 "qcom,msm8996-qmp-pcie-phy" for 14nm PCIe phy on msm8996,
11 "qcom,msm8996-qmp-usb3-phy" for 14nm USB3 phy on msm8996,
12 "qcom,msm8998-qmp-usb3-phy" for USB3 QMP V3 phy on msm8998,
13 "qcom,msm8998-qmp-ufs-phy" for UFS QMP phy on msm8998,
14 "qcom,msm8998-qmp-pcie-phy" for PCIe QMP phy on msm8998,
15 "qcom,sdm845-qmp-usb3-phy" for USB3 QMP V3 phy on sdm845,
16 "qcom,sdm845-qmp-usb3-uni-phy" for USB3 QMP V3 UNI phy on sdm845,
17 "qcom,sdm845-qmp-ufs-phy" for UFS QMP phy on sdm845,
18 "qcom,sm8150-qmp-ufs-phy" for UFS QMP phy on sm8150.
21 - index 0: address and length of register set for PHY's common
23 - index 1: address and length of the DP_COM control block (for
24 "qcom,sdm845-qmp-usb3-phy" only).
27 - For "qcom,sdm845-qmp-usb3-phy":
28 - Should be: "reg-base", "dp_com"
30 - The reg-names property shouldn't be defined.
32 - #address-cells: must be 1
33 - #size-cells: must be 1
34 - ranges: must be present
36 - clocks: a list of phandles and clock-specifier pairs,
37 one for each entry in clock-names.
38 - clock-names: "cfg_ahb" for phy config clock,
39 "aux" for phy aux clock,
40 "ref" for 19.2 MHz ref clk,
41 "com_aux" for phy common block aux clock,
42 "ref_aux" for phy reference aux clock,
44 For "qcom,ipq8074-qmp-pcie-phy": no clocks are listed.
45 For "qcom,msm8996-qmp-pcie-phy" must contain:
46 "aux", "cfg_ahb", "ref".
47 For "qcom,msm8996-qmp-usb3-phy" must contain:
48 "aux", "cfg_ahb", "ref".
49 For "qcom,msm8998-qmp-usb3-phy" must contain:
50 "aux", "cfg_ahb", "ref".
51 For "qcom,msm8998-qmp-ufs-phy" must contain:
53 For "qcom,msm8998-qmp-pcie-phy" must contain:
54 "aux", "cfg_ahb", "ref".
55 For "qcom,sdm845-qmp-usb3-phy" must contain:
56 "aux", "cfg_ahb", "ref", "com_aux".
57 For "qcom,sdm845-qmp-usb3-uni-phy" must contain:
58 "aux", "cfg_ahb", "ref", "com_aux".
59 For "qcom,sdm845-qmp-ufs-phy" must contain:
61 For "qcom,sm8150-qmp-ufs-phy" must contain:
64 - resets: a list of phandles and reset controller specifier pairs,
65 one for each entry in reset-names.
66 - reset-names: "phy" for reset of phy block,
67 "common" for phy common block reset,
68 "cfg" for phy's ahb cfg block reset,
69 "ufsphy" for the PHY reset in the UFS controller.
71 For "qcom,ipq8074-qmp-pcie-phy" must contain:
73 For "qcom,msm8996-qmp-pcie-phy" must contain:
74 "phy", "common", "cfg".
75 For "qcom,msm8996-qmp-usb3-phy" must contain
77 For "qcom,msm8998-qmp-usb3-phy" must contain
79 For "qcom,msm8998-qmp-ufs-phy": must contain:
81 For "qcom,msm8998-qmp-pcie-phy" must contain:
83 For "qcom,sdm845-qmp-usb3-phy" must contain:
85 For "qcom,sdm845-qmp-usb3-uni-phy" must contain:
87 For "qcom,sdm845-qmp-ufs-phy": must contain:
89 For "qcom,sm8150-qmp-ufs-phy": must contain:
92 - vdda-phy-supply: Phandle to a regulator supply to PHY core block.
93 - vdda-pll-supply: Phandle to 1.8V regulator supply to PHY refclk pll block.
96 - vddp-ref-clk-supply: Phandle to a regulator supply to any specific refclk
100 - Each device node of QMP phy is required to have as many child nodes as
101 the number of lanes the PHY has.
103 Required properties for child nodes of PCIe PHYs (one child per lane):
104 - reg: list of offset and length pairs of register sets for PHY blocks -
105 tx, rx, pcs, and pcs_misc (optional).
106 - #phy-cells: must be 0
108 Required properties for a single "lanes" child node of non-PCIe PHYs:
109 - reg: list of offset and length pairs of register sets for PHY blocks
111 tx, rx, pcs, and (optionally) pcs_misc
113 tx0, rx0, pcs, tx1, rx1, and (optionally) pcs_misc
114 - #phy-cells: must be 0
116 Required properties for child node of PCIe and USB3 qmp phys:
117 - clocks: a list of phandles and clock-specifier pairs,
118 one for each entry in clock-names.
119 - clock-names: Must contain following:
120 "pipe<lane-number>" for pipe clock specific to each lane.
121 - clock-output-names: Name of the PHY clock that will be the parent for
122 the above pipe clock.
123 For "qcom,ipq8074-qmp-pcie-phy":
124 - "pcie20_phy0_pipe_clk" Pipe Clock parent
126 "pcie20_phy1_pipe_clk"
127 - #clock-cells: must be 0
128 - Phy pll outputs pipe clocks for pipe based PHYs. These clocks are then
129 gate-controlled by the gcc.
131 Required properties for child node of PHYs with lane reset, AKA:
132 "qcom,msm8996-qmp-pcie-phy"
133 - resets: a list of phandles and reset controller specifier pairs,
134 one for each entry in reset-names.
135 - reset-names: Must contain following:
136 "lane<lane-number>" for reset specific to each lane.
140 compatible = "qcom,msm8996-qmp-pcie-phy";
141 reg = <0x34000 0x488>;
142 #address-cells = <1>;
146 clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
147 <&gcc GCC_PCIE_PHY_CFG_AHB_CLK>,
148 <&gcc GCC_PCIE_CLKREF_CLK>;
149 clock-names = "aux", "cfg_ahb", "ref";
151 vdda-phy-supply = <&pm8994_l28>;
152 vdda-pll-supply = <&pm8994_l12>;
154 resets = <&gcc GCC_PCIE_PHY_BCR>,
155 <&gcc GCC_PCIE_PHY_COM_BCR>,
156 <&gcc GCC_PCIE_PHY_COM_NOCSR_BCR>;
157 reset-names = "phy", "common", "cfg";
159 pciephy_0: lane@35000 {
160 reg = <0x35000 0x130>,
166 clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
167 clock-names = "pipe0";
168 clock-output-names = "pcie_0_pipe_clk_src";
169 resets = <&gcc GCC_PCIE_0_PHY_BCR>;
170 reset-names = "lane0";
173 pciephy_1: lane@36000 {
179 compatible = "qcom,sdm845-qmp-usb3-uni-phy";
180 reg = <0x88eb000 0x18c>;
181 #address-cells = <1>;
185 clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK>,
186 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
187 <&gcc GCC_USB3_SEC_CLKREF_CLK>,
188 <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>;
189 clock-names = "aux", "cfg_ahb", "ref", "com_aux";
191 resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>,
192 <&gcc GCC_USB3_PHY_SEC_BCR>;
193 reset-names = "phy", "common";
196 reg = <0x88eb200 0x128>,
202 clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
203 clock-names = "pipe0";
204 clock-output-names = "usb3_uni_phy_pipe_clk_src";
209 compatible = "qcom,sdm845-qmp-ufs-phy";
210 reg = <0x1d87000 0x18c>;
211 #address-cells = <1>;
216 clocks = <&gcc GCC_UFS_MEM_CLKREF_CLK>,
217 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>;
220 reg = <0x1d87400 0x108>,