xref: /linux/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml (revision 2eff01ee2881becc9daaa0d53477ec202136b1f4)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm QMP PHY controller (USB, SC8280XP)
8
9maintainers:
10  - Vinod Koul <vkoul@kernel.org>
11
12description:
13  The QMP PHY controller supports physical layer functionality for a number of
14  controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB.
15
16properties:
17  compatible:
18    enum:
19      - qcom,ipq6018-qmp-usb3-phy
20      - qcom,ipq8074-qmp-usb3-phy
21      - qcom,ipq9574-qmp-usb3-phy
22      - qcom,msm8996-qmp-usb3-phy
23      - qcom,qcs8300-qmp-usb3-uni-phy
24      - qcom,qdu1000-qmp-usb3-uni-phy
25      - qcom,sa8775p-qmp-usb3-uni-phy
26      - qcom,sc8180x-qmp-usb3-uni-phy
27      - qcom,sc8280xp-qmp-usb3-uni-phy
28      - qcom,sdm845-qmp-usb3-uni-phy
29      - qcom,sdx55-qmp-usb3-uni-phy
30      - qcom,sdx65-qmp-usb3-uni-phy
31      - qcom,sdx75-qmp-usb3-uni-phy
32      - qcom,sm8150-qmp-usb3-uni-phy
33      - qcom,sm8250-qmp-usb3-uni-phy
34      - qcom,sm8350-qmp-usb3-uni-phy
35      - qcom,x1e80100-qmp-usb3-uni-phy
36
37
38  reg:
39    maxItems: 1
40
41  clocks:
42    minItems: 4
43    maxItems: 5
44
45  clock-names:
46    minItems: 4
47    maxItems: 5
48
49  power-domains:
50    maxItems: 1
51
52  resets:
53    maxItems: 2
54
55  reset-names:
56    items:
57      - const: phy
58      - const: phy_phy
59
60  vdda-phy-supply: true
61
62  vdda-pll-supply: true
63
64  "#clock-cells":
65    const: 0
66
67  clock-output-names:
68    maxItems: 1
69
70  "#phy-cells":
71    const: 0
72
73required:
74  - compatible
75  - reg
76  - clocks
77  - clock-names
78  - resets
79  - reset-names
80  - vdda-phy-supply
81  - vdda-pll-supply
82  - "#clock-cells"
83  - clock-output-names
84  - "#phy-cells"
85
86allOf:
87  - if:
88      properties:
89        compatible:
90          contains:
91            enum:
92              - qcom,ipq6018-qmp-usb3-phy
93              - qcom,ipq8074-qmp-usb3-phy
94              - qcom,ipq9574-qmp-usb3-phy
95              - qcom,msm8996-qmp-usb3-phy
96              - qcom,sdx55-qmp-usb3-uni-phy
97              - qcom,sdx65-qmp-usb3-uni-phy
98              - qcom,sdx75-qmp-usb3-uni-phy
99    then:
100      properties:
101        clocks:
102          maxItems: 4
103        clock-names:
104          items:
105            - const: aux
106            - const: ref
107            - const: cfg_ahb
108            - const: pipe
109
110  - if:
111      properties:
112        compatible:
113          contains:
114            enum:
115              - qcom,qcs8300-qmp-usb3-uni-phy
116              - qcom,qdu1000-qmp-usb3-uni-phy
117              - qcom,sa8775p-qmp-usb3-uni-phy
118              - qcom,sc8180x-qmp-usb3-uni-phy
119              - qcom,sc8280xp-qmp-usb3-uni-phy
120              - qcom,sm8150-qmp-usb3-uni-phy
121              - qcom,sm8250-qmp-usb3-uni-phy
122              - qcom,sm8350-qmp-usb3-uni-phy
123              - qcom,x1e80100-qmp-usb3-uni-phy
124    then:
125      properties:
126        clocks:
127          maxItems: 4
128        clock-names:
129          items:
130            - const: aux
131            - const: ref
132            - const: com_aux
133            - const: pipe
134
135  - if:
136      properties:
137        compatible:
138          contains:
139            enum:
140              - qcom,sdm845-qmp-usb3-uni-phy
141    then:
142      properties:
143        clocks:
144          maxItems: 5
145        clock-names:
146          items:
147            - const: aux
148            - const: cfg_ahb
149            - const: ref
150            - const: com_aux
151            - const: pipe
152
153  - if:
154      properties:
155        compatible:
156          contains:
157            enum:
158              - qcom,sa8775p-qmp-usb3-uni-phy
159              - qcom,sc8180x-qmp-usb3-uni-phy
160              - qcom,sc8280xp-qmp-usb3-uni-phy
161              - qcom,x1e80100-qmp-usb3-uni-phy
162    then:
163      required:
164        - power-domains
165
166additionalProperties: false
167
168examples:
169  - |
170    #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
171    #include <dt-bindings/clock/qcom,rpmh.h>
172
173    phy@88ef000 {
174      compatible = "qcom,sc8280xp-qmp-usb3-uni-phy";
175      reg = <0x088ef000 0x2000>;
176
177      clocks = <&gcc GCC_USB3_MP_PHY_AUX_CLK>,
178               <&gcc GCC_USB3_MP0_CLKREF_CLK>,
179               <&gcc GCC_USB3_MP_PHY_COM_AUX_CLK>,
180               <&gcc GCC_USB3_MP_PHY_PIPE_0_CLK>;
181      clock-names = "aux", "ref", "com_aux", "pipe";
182
183      power-domains = <&gcc USB30_MP_GDSC>;
184
185      resets = <&gcc GCC_USB3_UNIPHY_MP0_BCR>,
186               <&gcc GCC_USB3UNIPHY_PHY_MP0_BCR>;
187      reset-names = "phy", "phy_phy";
188
189      vdda-phy-supply = <&vreg_l3a>;
190      vdda-pll-supply = <&vreg_l5a>;
191
192      #clock-cells = <0>;
193      clock-output-names = "usb2_phy0_pipe_clk";
194
195      #phy-cells = <0>;
196    };
197