1*e8e58e29SJohan Hovold# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*e8e58e29SJohan Hovold%YAML 1.2
3*e8e58e29SJohan Hovold---
4*e8e58e29SJohan Hovold$id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml#
5*e8e58e29SJohan Hovold$schema: http://devicetree.org/meta-schemas/core.yaml#
6*e8e58e29SJohan Hovold
7*e8e58e29SJohan Hovoldtitle: Qualcomm QMP PHY controller (USB, SC8280XP)
8*e8e58e29SJohan Hovold
9*e8e58e29SJohan Hovoldmaintainers:
10*e8e58e29SJohan Hovold  - Vinod Koul <vkoul@kernel.org>
11*e8e58e29SJohan Hovold
12*e8e58e29SJohan Hovolddescription:
13*e8e58e29SJohan Hovold  The QMP PHY controller supports physical layer functionality for a number of
14*e8e58e29SJohan Hovold  controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB.
15*e8e58e29SJohan Hovold
16*e8e58e29SJohan Hovoldproperties:
17*e8e58e29SJohan Hovold  compatible:
18*e8e58e29SJohan Hovold    enum:
19*e8e58e29SJohan Hovold      - qcom,sc8280xp-qmp-usb3-uni-phy
20*e8e58e29SJohan Hovold
21*e8e58e29SJohan Hovold  reg:
22*e8e58e29SJohan Hovold    maxItems: 1
23*e8e58e29SJohan Hovold
24*e8e58e29SJohan Hovold  clocks:
25*e8e58e29SJohan Hovold    maxItems: 5
26*e8e58e29SJohan Hovold
27*e8e58e29SJohan Hovold  clock-names:
28*e8e58e29SJohan Hovold    items:
29*e8e58e29SJohan Hovold      - const: aux
30*e8e58e29SJohan Hovold      - const: ref_clk_src
31*e8e58e29SJohan Hovold      - const: ref
32*e8e58e29SJohan Hovold      - const: com_aux
33*e8e58e29SJohan Hovold      - const: pipe
34*e8e58e29SJohan Hovold
35*e8e58e29SJohan Hovold  power-domains:
36*e8e58e29SJohan Hovold    maxItems: 1
37*e8e58e29SJohan Hovold
38*e8e58e29SJohan Hovold  resets:
39*e8e58e29SJohan Hovold    maxItems: 2
40*e8e58e29SJohan Hovold
41*e8e58e29SJohan Hovold  reset-names:
42*e8e58e29SJohan Hovold    items:
43*e8e58e29SJohan Hovold      - const: phy
44*e8e58e29SJohan Hovold      - const: phy_phy
45*e8e58e29SJohan Hovold
46*e8e58e29SJohan Hovold  vdda-phy-supply: true
47*e8e58e29SJohan Hovold
48*e8e58e29SJohan Hovold  vdda-pll-supply: true
49*e8e58e29SJohan Hovold
50*e8e58e29SJohan Hovold  "#clock-cells":
51*e8e58e29SJohan Hovold    const: 0
52*e8e58e29SJohan Hovold
53*e8e58e29SJohan Hovold  clock-output-names:
54*e8e58e29SJohan Hovold    maxItems: 1
55*e8e58e29SJohan Hovold
56*e8e58e29SJohan Hovold  "#phy-cells":
57*e8e58e29SJohan Hovold    const: 0
58*e8e58e29SJohan Hovold
59*e8e58e29SJohan Hovoldrequired:
60*e8e58e29SJohan Hovold  - compatible
61*e8e58e29SJohan Hovold  - reg
62*e8e58e29SJohan Hovold  - clocks
63*e8e58e29SJohan Hovold  - clock-names
64*e8e58e29SJohan Hovold  - power-domains
65*e8e58e29SJohan Hovold  - resets
66*e8e58e29SJohan Hovold  - reset-names
67*e8e58e29SJohan Hovold  - vdda-phy-supply
68*e8e58e29SJohan Hovold  - vdda-pll-supply
69*e8e58e29SJohan Hovold  - "#clock-cells"
70*e8e58e29SJohan Hovold  - clock-output-names
71*e8e58e29SJohan Hovold  - "#phy-cells"
72*e8e58e29SJohan Hovold
73*e8e58e29SJohan HovoldadditionalProperties: false
74*e8e58e29SJohan Hovold
75*e8e58e29SJohan Hovoldexamples:
76*e8e58e29SJohan Hovold  - |
77*e8e58e29SJohan Hovold    #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
78*e8e58e29SJohan Hovold    #include <dt-bindings/clock/qcom,rpmh.h>
79*e8e58e29SJohan Hovold
80*e8e58e29SJohan Hovold    phy@88ef000 {
81*e8e58e29SJohan Hovold      compatible = "qcom,sc8280xp-qmp-usb3-uni-phy";
82*e8e58e29SJohan Hovold      reg = <0x088ef000 0x2000>;
83*e8e58e29SJohan Hovold
84*e8e58e29SJohan Hovold      clocks = <&gcc GCC_USB3_MP_PHY_AUX_CLK>,
85*e8e58e29SJohan Hovold               <&rpmhcc RPMH_CXO_CLK>,
86*e8e58e29SJohan Hovold               <&gcc GCC_USB3_MP0_CLKREF_CLK>,
87*e8e58e29SJohan Hovold               <&gcc GCC_USB3_MP_PHY_COM_AUX_CLK>,
88*e8e58e29SJohan Hovold               <&gcc GCC_USB3_MP_PHY_PIPE_0_CLK>;
89*e8e58e29SJohan Hovold      clock-names = "aux", "ref_clk_src", "ref", "com_aux",
90*e8e58e29SJohan Hovold                    "pipe";
91*e8e58e29SJohan Hovold
92*e8e58e29SJohan Hovold      power-domains = <&gcc USB30_MP_GDSC>;
93*e8e58e29SJohan Hovold
94*e8e58e29SJohan Hovold      resets = <&gcc GCC_USB3_UNIPHY_MP0_BCR>,
95*e8e58e29SJohan Hovold               <&gcc GCC_USB3UNIPHY_PHY_MP0_BCR>;
96*e8e58e29SJohan Hovold      reset-names = "phy", "phy_phy";
97*e8e58e29SJohan Hovold
98*e8e58e29SJohan Hovold      vdda-phy-supply = <&vreg_l3a>;
99*e8e58e29SJohan Hovold      vdda-pll-supply = <&vreg_l5a>;
100*e8e58e29SJohan Hovold
101*e8e58e29SJohan Hovold      #clock-cells = <0>;
102*e8e58e29SJohan Hovold      clock-output-names = "usb2_phy0_pipe_clk";
103*e8e58e29SJohan Hovold
104*e8e58e29SJohan Hovold      #phy-cells = <0>;
105*e8e58e29SJohan Hovold    };
106