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