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 <[email protected]>
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,ipq5424-qmp-usb3-phy
20      - qcom,ipq6018-qmp-usb3-phy
21      - qcom,ipq8074-qmp-usb3-phy
22      - qcom,ipq9574-qmp-usb3-phy
23      - qcom,msm8996-qmp-usb3-phy
24      - qcom,qcs8300-qmp-usb3-uni-phy
25      - qcom,qdu1000-qmp-usb3-uni-phy
26      - qcom,sa8775p-qmp-usb3-uni-phy
27      - qcom,sc8180x-qmp-usb3-uni-phy
28      - qcom,sc8280xp-qmp-usb3-uni-phy
29      - qcom,sdm845-qmp-usb3-uni-phy
30      - qcom,sdx55-qmp-usb3-uni-phy
31      - qcom,sdx65-qmp-usb3-uni-phy
32      - qcom,sdx75-qmp-usb3-uni-phy
33      - qcom,sm8150-qmp-usb3-uni-phy
34      - qcom,sm8250-qmp-usb3-uni-phy
35      - qcom,sm8350-qmp-usb3-uni-phy
36      - qcom,x1e80100-qmp-usb3-uni-phy
37
38
39  reg:
40    maxItems: 1
41
42  clocks:
43    minItems: 4
44    maxItems: 5
45
46  clock-names:
47    minItems: 4
48    maxItems: 5
49
50  power-domains:
51    maxItems: 1
52
53  resets:
54    maxItems: 2
55
56  reset-names:
57    items:
58      - const: phy
59      - const: phy_phy
60
61  vdda-phy-supply: true
62
63  vdda-pll-supply: true
64
65  "#clock-cells":
66    const: 0
67
68  clock-output-names:
69    maxItems: 1
70
71  "#phy-cells":
72    const: 0
73
74required:
75  - compatible
76  - reg
77  - clocks
78  - clock-names
79  - resets
80  - reset-names
81  - vdda-phy-supply
82  - vdda-pll-supply
83  - "#clock-cells"
84  - clock-output-names
85  - "#phy-cells"
86
87allOf:
88  - if:
89      properties:
90        compatible:
91          contains:
92            enum:
93              - qcom,ipq5424-qmp-usb3-phy
94              - qcom,ipq6018-qmp-usb3-phy
95              - qcom,ipq8074-qmp-usb3-phy
96              - qcom,ipq9574-qmp-usb3-phy
97              - qcom,msm8996-qmp-usb3-phy
98              - qcom,sdx55-qmp-usb3-uni-phy
99              - qcom,sdx65-qmp-usb3-uni-phy
100              - qcom,sdx75-qmp-usb3-uni-phy
101    then:
102      properties:
103        clocks:
104          maxItems: 4
105        clock-names:
106          items:
107            - const: aux
108            - const: ref
109            - const: cfg_ahb
110            - const: pipe
111
112  - if:
113      properties:
114        compatible:
115          contains:
116            enum:
117              - qcom,qcs8300-qmp-usb3-uni-phy
118              - qcom,qdu1000-qmp-usb3-uni-phy
119              - qcom,sa8775p-qmp-usb3-uni-phy
120              - qcom,sc8180x-qmp-usb3-uni-phy
121              - qcom,sc8280xp-qmp-usb3-uni-phy
122              - qcom,sm8150-qmp-usb3-uni-phy
123              - qcom,sm8250-qmp-usb3-uni-phy
124              - qcom,sm8350-qmp-usb3-uni-phy
125              - qcom,x1e80100-qmp-usb3-uni-phy
126    then:
127      properties:
128        clocks:
129          maxItems: 4
130        clock-names:
131          items:
132            - const: aux
133            - const: ref
134            - const: com_aux
135            - const: pipe
136
137  - if:
138      properties:
139        compatible:
140          contains:
141            enum:
142              - qcom,sdm845-qmp-usb3-uni-phy
143    then:
144      properties:
145        clocks:
146          maxItems: 5
147        clock-names:
148          items:
149            - const: aux
150            - const: cfg_ahb
151            - const: ref
152            - const: com_aux
153            - const: pipe
154
155  - if:
156      properties:
157        compatible:
158          contains:
159            enum:
160              - qcom,sa8775p-qmp-usb3-uni-phy
161              - qcom,sc8180x-qmp-usb3-uni-phy
162              - qcom,sc8280xp-qmp-usb3-uni-phy
163              - qcom,x1e80100-qmp-usb3-uni-phy
164    then:
165      required:
166        - power-domains
167
168additionalProperties: false
169
170examples:
171  - |
172    #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
173    #include <dt-bindings/clock/qcom,rpmh.h>
174
175    phy@88ef000 {
176      compatible = "qcom,sc8280xp-qmp-usb3-uni-phy";
177      reg = <0x088ef000 0x2000>;
178
179      clocks = <&gcc GCC_USB3_MP_PHY_AUX_CLK>,
180               <&gcc GCC_USB3_MP0_CLKREF_CLK>,
181               <&gcc GCC_USB3_MP_PHY_COM_AUX_CLK>,
182               <&gcc GCC_USB3_MP_PHY_PIPE_0_CLK>;
183      clock-names = "aux", "ref", "com_aux", "pipe";
184
185      power-domains = <&gcc USB30_MP_GDSC>;
186
187      resets = <&gcc GCC_USB3_UNIPHY_MP0_BCR>,
188               <&gcc GCC_USB3UNIPHY_PHY_MP0_BCR>;
189      reset-names = "phy", "phy_phy";
190
191      vdda-phy-supply = <&vreg_l3a>;
192      vdda-pll-supply = <&vreg_l5a>;
193
194      #clock-cells = <0>;
195      clock-output-names = "usb2_phy0_pipe_clk";
196
197      #phy-cells = <0>;
198    };
199