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:
19*bfd73c85SShazad Hussain      - qcom,sa8775p-qmp-usb3-uni-phy
20e8e58e29SJohan Hovold      - qcom,sc8280xp-qmp-usb3-uni-phy
21e8e58e29SJohan Hovold
22e8e58e29SJohan Hovold  reg:
23e8e58e29SJohan Hovold    maxItems: 1
24e8e58e29SJohan Hovold
25e8e58e29SJohan Hovold  clocks:
261446d03eSJohan Hovold    maxItems: 4
27e8e58e29SJohan Hovold
28e8e58e29SJohan Hovold  clock-names:
29e8e58e29SJohan Hovold    items:
30e8e58e29SJohan Hovold      - const: aux
31e8e58e29SJohan Hovold      - const: ref
32e8e58e29SJohan Hovold      - const: com_aux
33e8e58e29SJohan Hovold      - const: pipe
34e8e58e29SJohan Hovold
35e8e58e29SJohan Hovold  power-domains:
36e8e58e29SJohan Hovold    maxItems: 1
37e8e58e29SJohan Hovold
38e8e58e29SJohan Hovold  resets:
39e8e58e29SJohan Hovold    maxItems: 2
40e8e58e29SJohan Hovold
41e8e58e29SJohan Hovold  reset-names:
42e8e58e29SJohan Hovold    items:
43e8e58e29SJohan Hovold      - const: phy
44e8e58e29SJohan Hovold      - const: phy_phy
45e8e58e29SJohan Hovold
46e8e58e29SJohan Hovold  vdda-phy-supply: true
47e8e58e29SJohan Hovold
48e8e58e29SJohan Hovold  vdda-pll-supply: true
49e8e58e29SJohan Hovold
50e8e58e29SJohan Hovold  "#clock-cells":
51e8e58e29SJohan Hovold    const: 0
52e8e58e29SJohan Hovold
53e8e58e29SJohan Hovold  clock-output-names:
54e8e58e29SJohan Hovold    maxItems: 1
55e8e58e29SJohan Hovold
56e8e58e29SJohan Hovold  "#phy-cells":
57e8e58e29SJohan Hovold    const: 0
58e8e58e29SJohan Hovold
59e8e58e29SJohan Hovoldrequired:
60e8e58e29SJohan Hovold  - compatible
61e8e58e29SJohan Hovold  - reg
62e8e58e29SJohan Hovold  - clocks
63e8e58e29SJohan Hovold  - clock-names
64e8e58e29SJohan Hovold  - power-domains
65e8e58e29SJohan Hovold  - resets
66e8e58e29SJohan Hovold  - reset-names
67e8e58e29SJohan Hovold  - vdda-phy-supply
68e8e58e29SJohan Hovold  - vdda-pll-supply
69e8e58e29SJohan Hovold  - "#clock-cells"
70e8e58e29SJohan Hovold  - clock-output-names
71e8e58e29SJohan Hovold  - "#phy-cells"
72e8e58e29SJohan Hovold
73e8e58e29SJohan HovoldadditionalProperties: false
74e8e58e29SJohan Hovold
75e8e58e29SJohan Hovoldexamples:
76e8e58e29SJohan Hovold  - |
77e8e58e29SJohan Hovold    #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
78e8e58e29SJohan Hovold    #include <dt-bindings/clock/qcom,rpmh.h>
79e8e58e29SJohan Hovold
80e8e58e29SJohan Hovold    phy@88ef000 {
81e8e58e29SJohan Hovold      compatible = "qcom,sc8280xp-qmp-usb3-uni-phy";
82e8e58e29SJohan Hovold      reg = <0x088ef000 0x2000>;
83e8e58e29SJohan Hovold
84e8e58e29SJohan Hovold      clocks = <&gcc GCC_USB3_MP_PHY_AUX_CLK>,
85e8e58e29SJohan Hovold               <&gcc GCC_USB3_MP0_CLKREF_CLK>,
86e8e58e29SJohan Hovold               <&gcc GCC_USB3_MP_PHY_COM_AUX_CLK>,
87e8e58e29SJohan Hovold               <&gcc GCC_USB3_MP_PHY_PIPE_0_CLK>;
881446d03eSJohan Hovold      clock-names = "aux", "ref", "com_aux", "pipe";
89e8e58e29SJohan Hovold
90e8e58e29SJohan Hovold      power-domains = <&gcc USB30_MP_GDSC>;
91e8e58e29SJohan Hovold
92e8e58e29SJohan Hovold      resets = <&gcc GCC_USB3_UNIPHY_MP0_BCR>,
93e8e58e29SJohan Hovold               <&gcc GCC_USB3UNIPHY_PHY_MP0_BCR>;
94e8e58e29SJohan Hovold      reset-names = "phy", "phy_phy";
95e8e58e29SJohan Hovold
96e8e58e29SJohan Hovold      vdda-phy-supply = <&vreg_l3a>;
97e8e58e29SJohan Hovold      vdda-pll-supply = <&vreg_l5a>;
98e8e58e29SJohan Hovold
99e8e58e29SJohan Hovold      #clock-cells = <0>;
100e8e58e29SJohan Hovold      clock-output-names = "usb2_phy0_pipe_clk";
101e8e58e29SJohan Hovold
102e8e58e29SJohan Hovold      #phy-cells = <0>;
103e8e58e29SJohan Hovold    };
104