blob: 630ceaf915e2aa06872423c01f0a97383d1aa4e9 [file] [log] [blame]
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +05301# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2
3%YAML 1.2
4---
5$id: "http://devicetree.org/schemas/phy/qcom,qmp-phy.yaml#"
6$schema: "http://devicetree.org/meta-schemas/core.yaml#"
7
8title: Qualcomm QMP PHY controller
9
10maintainers:
Shawn Guoc2aff142021-09-27 15:16:39 +080011 - Vinod Koul <vkoul@kernel.org>
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053012
13description:
14 QMP phy controller supports physical layer functionality for a number of
15 controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB.
16
17properties:
18 compatible:
19 enum:
Baruch Siach46eba712021-05-05 12:18:33 +030020 - qcom,ipq6018-qmp-pcie-phy
Baruch Siach2433ab62021-08-04 17:05:05 +030021 - qcom,ipq6018-qmp-usb3-phy
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053022 - qcom,ipq8074-qmp-pcie-phy
Sivaprakash Murugesan06657152020-06-08 19:41:15 +053023 - qcom,ipq8074-qmp-usb3-phy
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053024 - qcom,msm8996-qmp-pcie-phy
25 - qcom,msm8996-qmp-ufs-phy
26 - qcom,msm8996-qmp-usb3-phy
27 - qcom,msm8998-qmp-pcie-phy
28 - qcom,msm8998-qmp-ufs-phy
29 - qcom,msm8998-qmp-usb3-phy
Shawn Guo0b7c7eb2021-09-27 14:48:28 +080030 - qcom,qcm2290-qmp-usb3-phy
Dmitry Baryshkov94c34602021-03-31 18:16:08 +030031 - qcom,sc7180-qmp-usb3-phy
Bjorn Andersson05d58bb2021-06-28 17:45:08 -070032 - qcom,sc8180x-qmp-pcie-phy
Bjorn Anderssona618c472021-01-20 14:45:30 -080033 - qcom,sc8180x-qmp-ufs-phy
Bjorn Andersson4dd8c1c2021-01-20 17:43:38 -080034 - qcom,sc8180x-qmp-usb3-phy
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053035 - qcom,sdm845-qhp-pcie-phy
36 - qcom,sdm845-qmp-pcie-phy
37 - qcom,sdm845-qmp-ufs-phy
Dmitry Baryshkov94c34602021-03-31 18:16:08 +030038 - qcom,sdm845-qmp-usb3-phy
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053039 - qcom,sdm845-qmp-usb3-uni-phy
Iskren Chernev80f652c2021-08-21 18:56:55 +030040 - qcom,sm6115-qmp-ufs-phy
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053041 - qcom,sm8150-qmp-ufs-phy
Jack Phamc149ced2021-01-15 09:47:20 -080042 - qcom,sm8150-qmp-usb3-phy
43 - qcom,sm8150-qmp-usb3-uni-phy
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053044 - qcom,sm8250-qmp-ufs-phy
Manivannan Sadhasivam5594b402020-10-27 22:30:29 +053045 - qcom,sm8250-qmp-gen3x1-pcie-phy
46 - qcom,sm8250-qmp-gen3x2-pcie-phy
47 - qcom,sm8250-qmp-modem-pcie-phy
Jack Phamc149ced2021-01-15 09:47:20 -080048 - qcom,sm8250-qmp-usb3-phy
49 - qcom,sm8250-qmp-usb3-uni-phy
Vinod Kould0858162021-02-04 22:28:03 +053050 - qcom,sm8350-qmp-ufs-phy
Jack Phamc149ced2021-01-15 09:47:20 -080051 - qcom,sm8350-qmp-usb3-phy
52 - qcom,sm8350-qmp-usb3-uni-phy
Manivannan Sadhasivam04a82a12021-04-27 12:23:58 +053053 - qcom,sdx55-qmp-pcie-phy
Manivannan Sadhasivamaa4731c2021-01-11 17:00:09 +053054 - qcom,sdx55-qmp-usb3-uni-phy
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053055
56 reg:
Jack Phamc149ced2021-01-15 09:47:20 -080057 minItems: 1
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053058 items:
59 - description: Address and length of PHY's common serdes block.
Jack Phamc149ced2021-01-15 09:47:20 -080060 - description: Address and length of PHY's DP_COM control block.
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053061
62 "#clock-cells":
Rob Herringf516fb72020-04-20 21:24:47 -050063 enum: [ 1, 2 ]
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053064
65 "#address-cells":
66 enum: [ 1, 2 ]
67
68 "#size-cells":
69 enum: [ 1, 2 ]
70
Rob Herringc0eca142020-06-11 08:52:38 -060071 ranges: true
72
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053073 clocks:
74 minItems: 1
75 maxItems: 4
76
77 clock-names:
78 minItems: 1
79 maxItems: 4
80
81 resets:
82 minItems: 1
83 maxItems: 3
84
85 reset-names:
86 minItems: 1
87 maxItems: 3
88
89 vdda-phy-supply:
90 description:
Rob Herringf516fb72020-04-20 21:24:47 -050091 Phandle to a regulator supply to PHY core block.
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053092
93 vdda-pll-supply:
94 description:
Rob Herringf516fb72020-04-20 21:24:47 -050095 Phandle to 1.8V regulator supply to PHY refclk pll block.
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +053096
97 vddp-ref-clk-supply:
98 description:
Rob Herringf516fb72020-04-20 21:24:47 -050099 Phandle to a regulator supply to any specific refclk pll block.
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530100
101#Required nodes:
102patternProperties:
103 "^phy@[0-9a-f]+$":
104 type: object
105 description:
106 Each device node of QMP phy is required to have as many child nodes as
107 the number of lanes the PHY has.
108
109required:
110 - compatible
111 - reg
112 - "#clock-cells"
113 - "#address-cells"
114 - "#size-cells"
Rob Herringc0eca142020-06-11 08:52:38 -0600115 - ranges
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530116 - clocks
117 - clock-names
118 - resets
119 - reset-names
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530120
121additionalProperties: false
122
123allOf:
124 - if:
125 properties:
126 compatible:
127 contains:
128 enum:
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530129 - qcom,sdm845-qmp-usb3-uni-phy
130 then:
131 properties:
132 clocks:
133 items:
134 - description: Phy aux clock.
135 - description: Phy config clock.
136 - description: 19.2 MHz ref clk.
137 - description: Phy common block aux clock.
138 clock-names:
139 items:
140 - const: aux
141 - const: cfg_ahb
142 - const: ref
143 - const: com_aux
144 resets:
145 items:
146 - description: reset of phy block.
147 - description: phy common block reset.
148 reset-names:
149 items:
150 - const: phy
151 - const: common
Shawn Guod8b951a2021-10-20 21:06:34 +0800152 required:
153 - vdda-phy-supply
154 - vdda-pll-supply
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530155 - if:
156 properties:
157 compatible:
158 contains:
159 enum:
Manivannan Sadhasivamaa4731c2021-01-11 17:00:09 +0530160 - qcom,sdx55-qmp-usb3-uni-phy
161 then:
162 properties:
163 clocks:
164 items:
165 - description: Phy aux clock.
166 - description: Phy config clock.
167 - description: 19.2 MHz ref clk.
168 clock-names:
169 items:
170 - const: aux
171 - const: cfg_ahb
172 - const: ref
173 resets:
174 items:
175 - description: reset of phy block.
176 - description: phy common block reset.
177 reset-names:
178 items:
179 - const: phy
180 - const: common
Shawn Guod8b951a2021-10-20 21:06:34 +0800181 required:
182 - vdda-phy-supply
183 - vdda-pll-supply
Manivannan Sadhasivamaa4731c2021-01-11 17:00:09 +0530184 - if:
185 properties:
186 compatible:
187 contains:
188 enum:
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530189 - qcom,msm8996-qmp-pcie-phy
190 then:
191 properties:
192 clocks:
193 items:
194 - description: Phy aux clock.
195 - description: Phy config clock.
196 - description: 19.2 MHz ref clk.
197 clock-names:
198 items:
199 - const: aux
200 - const: cfg_ahb
201 - const: ref
202 resets:
203 items:
204 - description: reset of phy block.
205 - description: phy common block reset.
206 - description: phy's ahb cfg block reset.
207 reset-names:
208 items:
209 - const: phy
210 - const: common
211 - const: cfg
Shawn Guod8b951a2021-10-20 21:06:34 +0800212 required:
213 - vdda-phy-supply
214 - vdda-pll-supply
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530215 - if:
216 properties:
217 compatible:
218 contains:
219 enum:
Sivaprakash Murugesan06657152020-06-08 19:41:15 +0530220 - qcom,ipq8074-qmp-usb3-phy
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530221 - qcom,msm8996-qmp-usb3-phy
222 - qcom,msm8998-qmp-pcie-phy
223 - qcom,msm8998-qmp-usb3-phy
224 then:
225 properties:
226 clocks:
227 items:
228 - description: Phy aux clock.
229 - description: Phy config clock.
230 - description: 19.2 MHz ref clk.
231 clock-names:
232 items:
233 - const: aux
234 - const: cfg_ahb
235 - const: ref
236 resets:
237 items:
238 - description: reset of phy block.
239 - description: phy common block reset.
240 reset-names:
241 items:
Rob Herringf516fb72020-04-20 21:24:47 -0500242 - const: phy
243 - const: common
Shawn Guod8b951a2021-10-20 21:06:34 +0800244 required:
245 - vdda-phy-supply
246 - vdda-pll-supply
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530247 - if:
248 properties:
249 compatible:
250 contains:
251 enum:
252 - qcom,msm8996-qmp-ufs-phy
253 then:
254 properties:
255 clocks:
256 items:
257 - description: 19.2 MHz ref clk.
258 clock-names:
259 items:
260 - const: ref
261 resets:
262 items:
263 - description: PHY reset in the UFS controller.
264 reset-names:
265 items:
266 - const: ufsphy
Shawn Guod8b951a2021-10-20 21:06:34 +0800267 required:
268 - vdda-phy-supply
269 - vdda-pll-supply
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530270 - if:
271 properties:
272 compatible:
273 contains:
274 enum:
275 - qcom,msm8998-qmp-ufs-phy
276 - qcom,sdm845-qmp-ufs-phy
277 - qcom,sm8150-qmp-ufs-phy
278 - qcom,sm8250-qmp-ufs-phy
279 then:
280 properties:
281 clocks:
282 items:
283 - description: 19.2 MHz ref clk.
284 - description: Phy reference aux clock.
285 clock-names:
286 items:
287 - const: ref
288 - const: ref_aux
289 resets:
290 items:
291 - description: PHY reset in the UFS controller.
292 reset-names:
293 items:
294 - const: ufsphy
Shawn Guod8b951a2021-10-20 21:06:34 +0800295 required:
296 - vdda-phy-supply
297 - vdda-pll-supply
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530298 - if:
299 properties:
300 compatible:
301 contains:
302 enum:
Baruch Siach46eba712021-05-05 12:18:33 +0300303 - qcom,ipq6018-qmp-pcie-phy
Shawn Guod8b951a2021-10-20 21:06:34 +0800304 - qcom,ipq8074-qmp-pcie-phy
Baruch Siach46eba712021-05-05 12:18:33 +0300305 then:
306 properties:
307 clocks:
308 items:
309 - description: Phy aux clock.
310 - description: Phy config clock.
311 clock-names:
312 items:
313 - const: aux
314 - const: cfg_ahb
315 resets:
316 items:
317 - description: reset of phy block.
318 - description: phy common block reset.
319 reset-names:
320 items:
321 - const: phy
322 - const: common
323 - if:
324 properties:
325 compatible:
326 contains:
327 enum:
Bjorn Andersson05d58bb2021-06-28 17:45:08 -0700328 - qcom,sc8180x-qmp-pcie-phy
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530329 - qcom,sdm845-qhp-pcie-phy
330 - qcom,sdm845-qmp-pcie-phy
Manivannan Sadhasivam04a82a12021-04-27 12:23:58 +0530331 - qcom,sdx55-qmp-pcie-phy
Manivannan Sadhasivam5594b402020-10-27 22:30:29 +0530332 - qcom,sm8250-qmp-gen3x1-pcie-phy
333 - qcom,sm8250-qmp-gen3x2-pcie-phy
334 - qcom,sm8250-qmp-modem-pcie-phy
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530335 then:
336 properties:
337 clocks:
338 items:
339 - description: Phy aux clock.
340 - description: Phy config clock.
341 - description: 19.2 MHz ref clk.
342 - description: Phy refgen clk.
343 clock-names:
344 items:
345 - const: aux
346 - const: cfg_ahb
347 - const: ref
348 - const: refgen
349 resets:
350 items:
351 - description: reset of phy block.
352 reset-names:
353 items:
354 - const: phy
Shawn Guod8b951a2021-10-20 21:06:34 +0800355 required:
356 - vdda-phy-supply
357 - vdda-pll-supply
Jack Phamc149ced2021-01-15 09:47:20 -0800358 - if:
359 properties:
360 compatible:
361 contains:
362 enum:
363 - qcom,sm8150-qmp-usb3-phy
364 - qcom,sm8150-qmp-usb3-uni-phy
365 - qcom,sm8250-qmp-usb3-uni-phy
366 - qcom,sm8350-qmp-usb3-uni-phy
367 then:
368 properties:
369 clocks:
370 items:
371 - description: Phy aux clock.
372 - description: 19.2 MHz ref clk source.
373 - description: 19.2 MHz ref clk.
374 - description: Phy common block aux clock.
375 clock-names:
376 items:
377 - const: aux
378 - const: ref_clk_src
379 - const: ref
380 - const: com_aux
381 resets:
382 items:
383 - description: reset of phy block.
384 - description: phy common block reset.
385 reset-names:
386 items:
387 - const: phy
388 - const: common
Shawn Guod8b951a2021-10-20 21:06:34 +0800389 required:
390 - vdda-phy-supply
391 - vdda-pll-supply
Jack Phamc149ced2021-01-15 09:47:20 -0800392 - if:
393 properties:
394 compatible:
395 contains:
396 enum:
397 - qcom,sm8250-qmp-usb3-phy
398 - qcom,sm8350-qmp-usb3-phy
399 then:
400 properties:
401 clocks:
402 items:
403 - description: Phy aux clock.
404 - description: 19.2 MHz ref clk.
405 - description: Phy common block aux clock.
406 clock-names:
407 items:
408 - const: aux
409 - const: ref_clk_src
410 - const: com_aux
411 resets:
412 items:
413 - description: reset of phy block.
414 - description: phy common block reset.
415 reset-names:
416 items:
417 - const: phy
418 - const: common
Shawn Guod8b951a2021-10-20 21:06:34 +0800419 required:
420 - vdda-phy-supply
421 - vdda-pll-supply
Shawn Guo0b7c7eb2021-09-27 14:48:28 +0800422 - if:
423 properties:
424 compatible:
425 contains:
426 enum:
427 - qcom,qcm2290-qmp-usb3-phy
428 then:
429 properties:
430 clocks:
431 items:
432 - description: Phy config clock.
433 - description: 19.2 MHz ref clk.
434 - description: Phy common block aux clock.
435 clock-names:
436 items:
437 - const: cfg_ahb
438 - const: ref
439 - const: com_aux
440 resets:
441 items:
442 - description: phy_phy reset.
443 - description: reset of phy block.
444 reset-names:
445 items:
446 - const: phy_phy
447 - const: phy
Shawn Guod8b951a2021-10-20 21:06:34 +0800448 required:
449 - vdda-phy-supply
450 - vdda-pll-supply
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530451
452examples:
453 - |
454 #include <dt-bindings/clock/qcom,gcc-sdm845.h>
Sandeep Maheswaram59351042020-05-15 08:09:16 +0530455 usb_2_qmpphy: phy-wrapper@88eb000 {
456 compatible = "qcom,sdm845-qmp-usb3-uni-phy";
Rob Herringc0eca142020-06-11 08:52:38 -0600457 reg = <0x088eb000 0x18c>;
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530458 #clock-cells = <1>;
Rob Herringc0eca142020-06-11 08:52:38 -0600459 #address-cells = <1>;
460 #size-cells = <1>;
461 ranges = <0x0 0x088eb000 0x2000>;
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530462
Sandeep Maheswaram59351042020-05-15 08:09:16 +0530463 clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK >,
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530464 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
Sandeep Maheswaram59351042020-05-15 08:09:16 +0530465 <&gcc GCC_USB3_SEC_CLKREF_CLK>,
466 <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>;
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530467 clock-names = "aux", "cfg_ahb", "ref", "com_aux";
468
Sandeep Maheswaram59351042020-05-15 08:09:16 +0530469 resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>,
470 <&gcc GCC_USB3_PHY_SEC_BCR>;
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530471 reset-names = "phy", "common";
472
473 vdda-phy-supply = <&vdda_usb2_ss_1p2>;
474 vdda-pll-supply = <&vdda_usb2_ss_core>;
475
Rob Herringc0eca142020-06-11 08:52:38 -0600476 usb_2_ssphy: phy@200 {
477 reg = <0x200 0x128>,
478 <0x400 0x1fc>,
479 <0x800 0x218>,
480 <0x600 0x70>;
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530481 #clock-cells = <0>;
482 #phy-cells = <0>;
Sandeep Maheswaram59351042020-05-15 08:09:16 +0530483 clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530484 clock-names = "pipe0";
Sandeep Maheswaram59351042020-05-15 08:09:16 +0530485 clock-output-names = "usb3_uni_phy_pipe_clk_src";
Sandeep Maheswaramccf51c12020-05-15 08:09:15 +0530486 };
487 };