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
202daece5eSBhupesh Sharma      - qcom,qcm2290-qmp-usb3-phy
21bfd73c85SShazad Hussain      - qcom,sa8775p-qmp-usb3-uni-phy
22e8e58e29SJohan Hovold      - qcom,sc8280xp-qmp-usb3-uni-phy
232daece5eSBhupesh 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:
922daece5eSBhupesh Sharma              - qcom,qcm2290-qmp-usb3-phy
932daece5eSBhupesh Sharma              - qcom,sm6115-qmp-usb3-phy
942daece5eSBhupesh Sharma    then:
952daece5eSBhupesh Sharma      properties:
962daece5eSBhupesh Sharma        clocks:
972daece5eSBhupesh Sharma          maxItems: 4
982daece5eSBhupesh Sharma        clock-names:
992daece5eSBhupesh Sharma          items:
1002daece5eSBhupesh Sharma            - const: cfg_ahb
1012daece5eSBhupesh Sharma            - const: ref
1022daece5eSBhupesh Sharma            - const: com_aux
1032daece5eSBhupesh Sharma            - const: pipe
1042daece5eSBhupesh Sharma
1052daece5eSBhupesh Sharma  - if:
1062daece5eSBhupesh Sharma      properties:
1072daece5eSBhupesh Sharma        compatible:
1082daece5eSBhupesh Sharma          contains:
1092daece5eSBhupesh Sharma            enum:
110*1eac0f95SDmitry Baryshkov              - qcom,sa8775p-qmp-usb3-uni-phy
1112daece5eSBhupesh Sharma              - qcom,sc8280xp-qmp-usb3-uni-phy
1122daece5eSBhupesh Sharma    then:
1132daece5eSBhupesh Sharma      properties:
1142daece5eSBhupesh Sharma        clocks:
1152daece5eSBhupesh Sharma          maxItems: 4
1162daece5eSBhupesh Sharma        clock-names:
1172daece5eSBhupesh Sharma          items:
1182daece5eSBhupesh Sharma            - const: aux
1192daece5eSBhupesh Sharma            - const: ref
1202daece5eSBhupesh Sharma            - const: com_aux
1212daece5eSBhupesh Sharma            - const: pipe
122*1eac0f95SDmitry Baryshkov      required:
123*1eac0f95SDmitry Baryshkov        - power-domains
124*1eac0f95SDmitry Baryshkov
125*1eac0f95SDmitry BaryshkovadditionalProperties: false
1262daece5eSBhupesh Sharma
127e8e58e29SJohan Hovoldexamples:
128e8e58e29SJohan Hovold  - |
129e8e58e29SJohan Hovold    #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
130e8e58e29SJohan Hovold    #include <dt-bindings/clock/qcom,rpmh.h>
131e8e58e29SJohan Hovold
132e8e58e29SJohan Hovold    phy@88ef000 {
133e8e58e29SJohan Hovold      compatible = "qcom,sc8280xp-qmp-usb3-uni-phy";
134e8e58e29SJohan Hovold      reg = <0x088ef000 0x2000>;
135e8e58e29SJohan Hovold
136e8e58e29SJohan Hovold      clocks = <&gcc GCC_USB3_MP_PHY_AUX_CLK>,
137e8e58e29SJohan Hovold               <&gcc GCC_USB3_MP0_CLKREF_CLK>,
138e8e58e29SJohan Hovold               <&gcc GCC_USB3_MP_PHY_COM_AUX_CLK>,
139e8e58e29SJohan Hovold               <&gcc GCC_USB3_MP_PHY_PIPE_0_CLK>;
1401446d03eSJohan Hovold      clock-names = "aux", "ref", "com_aux", "pipe";
141e8e58e29SJohan Hovold
142e8e58e29SJohan Hovold      power-domains = <&gcc USB30_MP_GDSC>;
143e8e58e29SJohan Hovold
144e8e58e29SJohan Hovold      resets = <&gcc GCC_USB3_UNIPHY_MP0_BCR>,
145e8e58e29SJohan Hovold               <&gcc GCC_USB3UNIPHY_PHY_MP0_BCR>;
146e8e58e29SJohan Hovold      reset-names = "phy", "phy_phy";
147e8e58e29SJohan Hovold
148e8e58e29SJohan Hovold      vdda-phy-supply = <&vreg_l3a>;
149e8e58e29SJohan Hovold      vdda-pll-supply = <&vreg_l5a>;
150e8e58e29SJohan Hovold
151e8e58e29SJohan Hovold      #clock-cells = <0>;
152e8e58e29SJohan Hovold      clock-output-names = "usb2_phy0_pipe_clk";
153e8e58e29SJohan Hovold
154e8e58e29SJohan Hovold      #phy-cells = <0>;
155e8e58e29SJohan Hovold    };
156