xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/phy/qcom,qmp-phy.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun%YAML 1.2
4*4882a593Smuzhiyun---
5*4882a593Smuzhiyun$id: "http://devicetree.org/schemas/phy/qcom,qmp-phy.yaml#"
6*4882a593Smuzhiyun$schema: "http://devicetree.org/meta-schemas/core.yaml#"
7*4882a593Smuzhiyun
8*4882a593Smuzhiyuntitle: Qualcomm QMP PHY controller
9*4882a593Smuzhiyun
10*4882a593Smuzhiyunmaintainers:
11*4882a593Smuzhiyun  - Manu Gautam <mgautam@codeaurora.org>
12*4882a593Smuzhiyun
13*4882a593Smuzhiyundescription:
14*4882a593Smuzhiyun  QMP phy controller supports physical layer functionality for a number of
15*4882a593Smuzhiyun  controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB.
16*4882a593Smuzhiyun
17*4882a593Smuzhiyunproperties:
18*4882a593Smuzhiyun  compatible:
19*4882a593Smuzhiyun    enum:
20*4882a593Smuzhiyun      - qcom,ipq8074-qmp-pcie-phy
21*4882a593Smuzhiyun      - qcom,ipq8074-qmp-usb3-phy
22*4882a593Smuzhiyun      - qcom,msm8996-qmp-pcie-phy
23*4882a593Smuzhiyun      - qcom,msm8996-qmp-ufs-phy
24*4882a593Smuzhiyun      - qcom,msm8996-qmp-usb3-phy
25*4882a593Smuzhiyun      - qcom,msm8998-qmp-pcie-phy
26*4882a593Smuzhiyun      - qcom,msm8998-qmp-ufs-phy
27*4882a593Smuzhiyun      - qcom,msm8998-qmp-usb3-phy
28*4882a593Smuzhiyun      - qcom,sdm845-qhp-pcie-phy
29*4882a593Smuzhiyun      - qcom,sdm845-qmp-pcie-phy
30*4882a593Smuzhiyun      - qcom,sdm845-qmp-ufs-phy
31*4882a593Smuzhiyun      - qcom,sdm845-qmp-usb3-uni-phy
32*4882a593Smuzhiyun      - qcom,sm8150-qmp-ufs-phy
33*4882a593Smuzhiyun      - qcom,sm8250-qmp-ufs-phy
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun  reg:
36*4882a593Smuzhiyun    items:
37*4882a593Smuzhiyun      - description: Address and length of PHY's common serdes block.
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun  "#clock-cells":
40*4882a593Smuzhiyun    enum: [ 1, 2 ]
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun  "#address-cells":
43*4882a593Smuzhiyun    enum: [ 1, 2 ]
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun  "#size-cells":
46*4882a593Smuzhiyun    enum: [ 1, 2 ]
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun  ranges: true
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun  clocks:
51*4882a593Smuzhiyun    minItems: 1
52*4882a593Smuzhiyun    maxItems: 4
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun  clock-names:
55*4882a593Smuzhiyun    minItems: 1
56*4882a593Smuzhiyun    maxItems: 4
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun  resets:
59*4882a593Smuzhiyun    minItems: 1
60*4882a593Smuzhiyun    maxItems: 3
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun  reset-names:
63*4882a593Smuzhiyun    minItems: 1
64*4882a593Smuzhiyun    maxItems: 3
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun  vdda-phy-supply:
67*4882a593Smuzhiyun    description:
68*4882a593Smuzhiyun      Phandle to a regulator supply to PHY core block.
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun  vdda-pll-supply:
71*4882a593Smuzhiyun    description:
72*4882a593Smuzhiyun      Phandle to 1.8V regulator supply to PHY refclk pll block.
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun  vddp-ref-clk-supply:
75*4882a593Smuzhiyun    description:
76*4882a593Smuzhiyun      Phandle to a regulator supply to any specific refclk pll block.
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun#Required nodes:
79*4882a593SmuzhiyunpatternProperties:
80*4882a593Smuzhiyun  "^phy@[0-9a-f]+$":
81*4882a593Smuzhiyun    type: object
82*4882a593Smuzhiyun    description:
83*4882a593Smuzhiyun      Each device node of QMP phy is required to have as many child nodes as
84*4882a593Smuzhiyun      the number of lanes the PHY has.
85*4882a593Smuzhiyun
86*4882a593Smuzhiyunrequired:
87*4882a593Smuzhiyun  - compatible
88*4882a593Smuzhiyun  - reg
89*4882a593Smuzhiyun  - "#clock-cells"
90*4882a593Smuzhiyun  - "#address-cells"
91*4882a593Smuzhiyun  - "#size-cells"
92*4882a593Smuzhiyun  - ranges
93*4882a593Smuzhiyun  - clocks
94*4882a593Smuzhiyun  - clock-names
95*4882a593Smuzhiyun  - resets
96*4882a593Smuzhiyun  - reset-names
97*4882a593Smuzhiyun  - vdda-phy-supply
98*4882a593Smuzhiyun  - vdda-pll-supply
99*4882a593Smuzhiyun
100*4882a593SmuzhiyunadditionalProperties: false
101*4882a593Smuzhiyun
102*4882a593SmuzhiyunallOf:
103*4882a593Smuzhiyun  - if:
104*4882a593Smuzhiyun      properties:
105*4882a593Smuzhiyun        compatible:
106*4882a593Smuzhiyun          contains:
107*4882a593Smuzhiyun            enum:
108*4882a593Smuzhiyun              - qcom,sdm845-qmp-usb3-uni-phy
109*4882a593Smuzhiyun    then:
110*4882a593Smuzhiyun      properties:
111*4882a593Smuzhiyun        clocks:
112*4882a593Smuzhiyun          items:
113*4882a593Smuzhiyun            - description: Phy aux clock.
114*4882a593Smuzhiyun            - description: Phy config clock.
115*4882a593Smuzhiyun            - description: 19.2 MHz ref clk.
116*4882a593Smuzhiyun            - description: Phy common block aux clock.
117*4882a593Smuzhiyun        clock-names:
118*4882a593Smuzhiyun          items:
119*4882a593Smuzhiyun            - const: aux
120*4882a593Smuzhiyun            - const: cfg_ahb
121*4882a593Smuzhiyun            - const: ref
122*4882a593Smuzhiyun            - const: com_aux
123*4882a593Smuzhiyun        resets:
124*4882a593Smuzhiyun          items:
125*4882a593Smuzhiyun            - description: reset of phy block.
126*4882a593Smuzhiyun            - description: phy common block reset.
127*4882a593Smuzhiyun        reset-names:
128*4882a593Smuzhiyun          items:
129*4882a593Smuzhiyun            - const: phy
130*4882a593Smuzhiyun            - const: common
131*4882a593Smuzhiyun  - if:
132*4882a593Smuzhiyun      properties:
133*4882a593Smuzhiyun        compatible:
134*4882a593Smuzhiyun          contains:
135*4882a593Smuzhiyun            enum:
136*4882a593Smuzhiyun              - qcom,msm8996-qmp-pcie-phy
137*4882a593Smuzhiyun    then:
138*4882a593Smuzhiyun      properties:
139*4882a593Smuzhiyun        clocks:
140*4882a593Smuzhiyun          items:
141*4882a593Smuzhiyun            - description: Phy aux clock.
142*4882a593Smuzhiyun            - description: Phy config clock.
143*4882a593Smuzhiyun            - description: 19.2 MHz ref clk.
144*4882a593Smuzhiyun        clock-names:
145*4882a593Smuzhiyun          items:
146*4882a593Smuzhiyun            - const: aux
147*4882a593Smuzhiyun            - const: cfg_ahb
148*4882a593Smuzhiyun            - const: ref
149*4882a593Smuzhiyun        resets:
150*4882a593Smuzhiyun          items:
151*4882a593Smuzhiyun            - description: reset of phy block.
152*4882a593Smuzhiyun            - description: phy common block reset.
153*4882a593Smuzhiyun            - description: phy's ahb cfg block reset.
154*4882a593Smuzhiyun        reset-names:
155*4882a593Smuzhiyun          items:
156*4882a593Smuzhiyun            - const: phy
157*4882a593Smuzhiyun            - const: common
158*4882a593Smuzhiyun            - const: cfg
159*4882a593Smuzhiyun  - if:
160*4882a593Smuzhiyun      properties:
161*4882a593Smuzhiyun        compatible:
162*4882a593Smuzhiyun          contains:
163*4882a593Smuzhiyun            enum:
164*4882a593Smuzhiyun              - qcom,ipq8074-qmp-usb3-phy
165*4882a593Smuzhiyun              - qcom,msm8996-qmp-usb3-phy
166*4882a593Smuzhiyun              - qcom,msm8998-qmp-pcie-phy
167*4882a593Smuzhiyun              - qcom,msm8998-qmp-usb3-phy
168*4882a593Smuzhiyun    then:
169*4882a593Smuzhiyun      properties:
170*4882a593Smuzhiyun        clocks:
171*4882a593Smuzhiyun          items:
172*4882a593Smuzhiyun            - description: Phy aux clock.
173*4882a593Smuzhiyun            - description: Phy config clock.
174*4882a593Smuzhiyun            - description: 19.2 MHz ref clk.
175*4882a593Smuzhiyun        clock-names:
176*4882a593Smuzhiyun          items:
177*4882a593Smuzhiyun            - const: aux
178*4882a593Smuzhiyun            - const: cfg_ahb
179*4882a593Smuzhiyun            - const: ref
180*4882a593Smuzhiyun        resets:
181*4882a593Smuzhiyun          items:
182*4882a593Smuzhiyun            - description: reset of phy block.
183*4882a593Smuzhiyun            - description: phy common block reset.
184*4882a593Smuzhiyun        reset-names:
185*4882a593Smuzhiyun          items:
186*4882a593Smuzhiyun            - const: phy
187*4882a593Smuzhiyun            - const: common
188*4882a593Smuzhiyun  - if:
189*4882a593Smuzhiyun      properties:
190*4882a593Smuzhiyun        compatible:
191*4882a593Smuzhiyun          contains:
192*4882a593Smuzhiyun            enum:
193*4882a593Smuzhiyun              - qcom,msm8996-qmp-ufs-phy
194*4882a593Smuzhiyun    then:
195*4882a593Smuzhiyun      properties:
196*4882a593Smuzhiyun        clocks:
197*4882a593Smuzhiyun          items:
198*4882a593Smuzhiyun            - description: 19.2 MHz ref clk.
199*4882a593Smuzhiyun        clock-names:
200*4882a593Smuzhiyun          items:
201*4882a593Smuzhiyun            - const: ref
202*4882a593Smuzhiyun        resets:
203*4882a593Smuzhiyun          items:
204*4882a593Smuzhiyun            - description: PHY reset in the UFS controller.
205*4882a593Smuzhiyun        reset-names:
206*4882a593Smuzhiyun          items:
207*4882a593Smuzhiyun            - const: ufsphy
208*4882a593Smuzhiyun  - if:
209*4882a593Smuzhiyun      properties:
210*4882a593Smuzhiyun        compatible:
211*4882a593Smuzhiyun          contains:
212*4882a593Smuzhiyun            enum:
213*4882a593Smuzhiyun              - qcom,msm8998-qmp-ufs-phy
214*4882a593Smuzhiyun              - qcom,sdm845-qmp-ufs-phy
215*4882a593Smuzhiyun              - qcom,sm8150-qmp-ufs-phy
216*4882a593Smuzhiyun              - qcom,sm8250-qmp-ufs-phy
217*4882a593Smuzhiyun    then:
218*4882a593Smuzhiyun      properties:
219*4882a593Smuzhiyun        clocks:
220*4882a593Smuzhiyun          items:
221*4882a593Smuzhiyun            - description: 19.2 MHz ref clk.
222*4882a593Smuzhiyun            - description: Phy reference aux clock.
223*4882a593Smuzhiyun        clock-names:
224*4882a593Smuzhiyun          items:
225*4882a593Smuzhiyun            - const: ref
226*4882a593Smuzhiyun            - const: ref_aux
227*4882a593Smuzhiyun        resets:
228*4882a593Smuzhiyun          items:
229*4882a593Smuzhiyun            - description: PHY reset in the UFS controller.
230*4882a593Smuzhiyun        reset-names:
231*4882a593Smuzhiyun          items:
232*4882a593Smuzhiyun            - const: ufsphy
233*4882a593Smuzhiyun  - if:
234*4882a593Smuzhiyun      properties:
235*4882a593Smuzhiyun        compatible:
236*4882a593Smuzhiyun          contains:
237*4882a593Smuzhiyun            enum:
238*4882a593Smuzhiyun              - qcom,ipq8074-qmp-pcie-phy
239*4882a593Smuzhiyun    then:
240*4882a593Smuzhiyun      properties:
241*4882a593Smuzhiyun        clocks:
242*4882a593Smuzhiyun          items:
243*4882a593Smuzhiyun            - description: pipe clk.
244*4882a593Smuzhiyun        clock-names:
245*4882a593Smuzhiyun          items:
246*4882a593Smuzhiyun            - const: pipe_clk
247*4882a593Smuzhiyun        resets:
248*4882a593Smuzhiyun          items:
249*4882a593Smuzhiyun            - description: reset of phy block.
250*4882a593Smuzhiyun            - description: phy common block reset.
251*4882a593Smuzhiyun        reset-names:
252*4882a593Smuzhiyun          items:
253*4882a593Smuzhiyun            - const: phy
254*4882a593Smuzhiyun            - const: common
255*4882a593Smuzhiyun  - if:
256*4882a593Smuzhiyun      properties:
257*4882a593Smuzhiyun        compatible:
258*4882a593Smuzhiyun          contains:
259*4882a593Smuzhiyun            enum:
260*4882a593Smuzhiyun              - qcom,sdm845-qhp-pcie-phy
261*4882a593Smuzhiyun              - qcom,sdm845-qmp-pcie-phy
262*4882a593Smuzhiyun    then:
263*4882a593Smuzhiyun      properties:
264*4882a593Smuzhiyun        clocks:
265*4882a593Smuzhiyun          items:
266*4882a593Smuzhiyun            - description: Phy aux clock.
267*4882a593Smuzhiyun            - description: Phy config clock.
268*4882a593Smuzhiyun            - description: 19.2 MHz ref clk.
269*4882a593Smuzhiyun            - description: Phy refgen clk.
270*4882a593Smuzhiyun        clock-names:
271*4882a593Smuzhiyun          items:
272*4882a593Smuzhiyun            - const: aux
273*4882a593Smuzhiyun            - const: cfg_ahb
274*4882a593Smuzhiyun            - const: ref
275*4882a593Smuzhiyun            - const: refgen
276*4882a593Smuzhiyun        resets:
277*4882a593Smuzhiyun          items:
278*4882a593Smuzhiyun            - description: reset of phy block.
279*4882a593Smuzhiyun        reset-names:
280*4882a593Smuzhiyun          items:
281*4882a593Smuzhiyun            - const: phy
282*4882a593Smuzhiyun
283*4882a593Smuzhiyunexamples:
284*4882a593Smuzhiyun  - |
285*4882a593Smuzhiyun    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
286*4882a593Smuzhiyun    usb_2_qmpphy: phy-wrapper@88eb000 {
287*4882a593Smuzhiyun        compatible = "qcom,sdm845-qmp-usb3-uni-phy";
288*4882a593Smuzhiyun        reg = <0x088eb000 0x18c>;
289*4882a593Smuzhiyun        #clock-cells = <1>;
290*4882a593Smuzhiyun        #address-cells = <1>;
291*4882a593Smuzhiyun        #size-cells = <1>;
292*4882a593Smuzhiyun        ranges = <0x0 0x088eb000 0x2000>;
293*4882a593Smuzhiyun
294*4882a593Smuzhiyun        clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK >,
295*4882a593Smuzhiyun                 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
296*4882a593Smuzhiyun                 <&gcc GCC_USB3_SEC_CLKREF_CLK>,
297*4882a593Smuzhiyun                 <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>;
298*4882a593Smuzhiyun        clock-names = "aux", "cfg_ahb", "ref", "com_aux";
299*4882a593Smuzhiyun
300*4882a593Smuzhiyun        resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>,
301*4882a593Smuzhiyun                 <&gcc GCC_USB3_PHY_SEC_BCR>;
302*4882a593Smuzhiyun        reset-names = "phy", "common";
303*4882a593Smuzhiyun
304*4882a593Smuzhiyun        vdda-phy-supply = <&vdda_usb2_ss_1p2>;
305*4882a593Smuzhiyun        vdda-pll-supply = <&vdda_usb2_ss_core>;
306*4882a593Smuzhiyun
307*4882a593Smuzhiyun        usb_2_ssphy: phy@200 {
308*4882a593Smuzhiyun                reg = <0x200 0x128>,
309*4882a593Smuzhiyun                      <0x400 0x1fc>,
310*4882a593Smuzhiyun                      <0x800 0x218>,
311*4882a593Smuzhiyun                      <0x600 0x70>;
312*4882a593Smuzhiyun                #clock-cells = <0>;
313*4882a593Smuzhiyun                #phy-cells = <0>;
314*4882a593Smuzhiyun                clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
315*4882a593Smuzhiyun                clock-names = "pipe0";
316*4882a593Smuzhiyun                clock-output-names = "usb3_uni_phy_pipe_clk_src";
317*4882a593Smuzhiyun            };
318*4882a593Smuzhiyun        };
319