xref: /freebsd/sys/contrib/device-tree/Bindings/phy/qcom,msm8998-qmp-pcie-phy.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1*aa1a8ff2SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*aa1a8ff2SEmmanuel Vadot%YAML 1.2
3*aa1a8ff2SEmmanuel Vadot---
4*aa1a8ff2SEmmanuel Vadot$id: http://devicetree.org/schemas/phy/qcom,msm8998-qmp-pcie-phy.yaml#
5*aa1a8ff2SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*aa1a8ff2SEmmanuel Vadot
7*aa1a8ff2SEmmanuel Vadottitle: Qualcomm QMP PHY controller (PCIe, MSM8998)
8*aa1a8ff2SEmmanuel Vadot
9*aa1a8ff2SEmmanuel Vadotmaintainers:
10*aa1a8ff2SEmmanuel Vadot  - Vinod Koul <vkoul@kernel.org>
11*aa1a8ff2SEmmanuel Vadot
12*aa1a8ff2SEmmanuel Vadotdescription:
13*aa1a8ff2SEmmanuel Vadot  The QMP PHY controller supports physical layer functionality for a number of
14*aa1a8ff2SEmmanuel Vadot  controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB.
15*aa1a8ff2SEmmanuel Vadot
16*aa1a8ff2SEmmanuel Vadotproperties:
17*aa1a8ff2SEmmanuel Vadot  compatible:
18*aa1a8ff2SEmmanuel Vadot    const: qcom,msm8998-qmp-pcie-phy
19*aa1a8ff2SEmmanuel Vadot
20*aa1a8ff2SEmmanuel Vadot  reg:
21*aa1a8ff2SEmmanuel Vadot    items:
22*aa1a8ff2SEmmanuel Vadot      - description: serdes
23*aa1a8ff2SEmmanuel Vadot
24*aa1a8ff2SEmmanuel Vadot  clocks:
25*aa1a8ff2SEmmanuel Vadot    maxItems: 4
26*aa1a8ff2SEmmanuel Vadot
27*aa1a8ff2SEmmanuel Vadot  clock-names:
28*aa1a8ff2SEmmanuel Vadot    items:
29*aa1a8ff2SEmmanuel Vadot      - const: aux
30*aa1a8ff2SEmmanuel Vadot      - const: cfg_ahb
31*aa1a8ff2SEmmanuel Vadot      - const: ref
32*aa1a8ff2SEmmanuel Vadot      - const: pipe
33*aa1a8ff2SEmmanuel Vadot
34*aa1a8ff2SEmmanuel Vadot  resets:
35*aa1a8ff2SEmmanuel Vadot    maxItems: 2
36*aa1a8ff2SEmmanuel Vadot
37*aa1a8ff2SEmmanuel Vadot  reset-names:
38*aa1a8ff2SEmmanuel Vadot    items:
39*aa1a8ff2SEmmanuel Vadot      - const: phy
40*aa1a8ff2SEmmanuel Vadot      - const: common
41*aa1a8ff2SEmmanuel Vadot
42*aa1a8ff2SEmmanuel Vadot  vdda-phy-supply: true
43*aa1a8ff2SEmmanuel Vadot
44*aa1a8ff2SEmmanuel Vadot  vdda-pll-supply: true
45*aa1a8ff2SEmmanuel Vadot
46*aa1a8ff2SEmmanuel Vadot  "#clock-cells":
47*aa1a8ff2SEmmanuel Vadot    const: 0
48*aa1a8ff2SEmmanuel Vadot
49*aa1a8ff2SEmmanuel Vadot  clock-output-names:
50*aa1a8ff2SEmmanuel Vadot    maxItems: 1
51*aa1a8ff2SEmmanuel Vadot
52*aa1a8ff2SEmmanuel Vadot  "#phy-cells":
53*aa1a8ff2SEmmanuel Vadot    const: 0
54*aa1a8ff2SEmmanuel Vadot
55*aa1a8ff2SEmmanuel Vadotrequired:
56*aa1a8ff2SEmmanuel Vadot  - compatible
57*aa1a8ff2SEmmanuel Vadot  - reg
58*aa1a8ff2SEmmanuel Vadot  - clocks
59*aa1a8ff2SEmmanuel Vadot  - clock-names
60*aa1a8ff2SEmmanuel Vadot  - resets
61*aa1a8ff2SEmmanuel Vadot  - reset-names
62*aa1a8ff2SEmmanuel Vadot  - vdda-phy-supply
63*aa1a8ff2SEmmanuel Vadot  - vdda-pll-supply
64*aa1a8ff2SEmmanuel Vadot  - "#clock-cells"
65*aa1a8ff2SEmmanuel Vadot  - clock-output-names
66*aa1a8ff2SEmmanuel Vadot  - "#phy-cells"
67*aa1a8ff2SEmmanuel Vadot
68*aa1a8ff2SEmmanuel VadotadditionalProperties: false
69*aa1a8ff2SEmmanuel Vadot
70*aa1a8ff2SEmmanuel Vadotexamples:
71*aa1a8ff2SEmmanuel Vadot  - |
72*aa1a8ff2SEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-msm8998.h>
73*aa1a8ff2SEmmanuel Vadot
74*aa1a8ff2SEmmanuel Vadot    phy@1c18000 {
75*aa1a8ff2SEmmanuel Vadot        compatible = "qcom,msm8998-qmp-pcie-phy";
76*aa1a8ff2SEmmanuel Vadot        reg = <0x01c06000 0x1000>;
77*aa1a8ff2SEmmanuel Vadot
78*aa1a8ff2SEmmanuel Vadot        clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
79*aa1a8ff2SEmmanuel Vadot                 <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
80*aa1a8ff2SEmmanuel Vadot                 <&gcc GCC_PCIE_CLKREF_CLK>,
81*aa1a8ff2SEmmanuel Vadot                 <&gcc GCC_PCIE_0_PIPE_CLK>;
82*aa1a8ff2SEmmanuel Vadot        clock-names = "aux",
83*aa1a8ff2SEmmanuel Vadot                      "cfg_ahb",
84*aa1a8ff2SEmmanuel Vadot                      "ref",
85*aa1a8ff2SEmmanuel Vadot                      "pipe";
86*aa1a8ff2SEmmanuel Vadot
87*aa1a8ff2SEmmanuel Vadot        clock-output-names = "pcie_0_pipe_clk_src";
88*aa1a8ff2SEmmanuel Vadot        #clock-cells = <0>;
89*aa1a8ff2SEmmanuel Vadot
90*aa1a8ff2SEmmanuel Vadot        #phy-cells = <0>;
91*aa1a8ff2SEmmanuel Vadot
92*aa1a8ff2SEmmanuel Vadot        resets = <&gcc GCC_PCIE_0_PHY_BCR>, <&gcc GCC_PCIE_PHY_BCR>;
93*aa1a8ff2SEmmanuel Vadot        reset-names = "phy", "common";
94*aa1a8ff2SEmmanuel Vadot
95*aa1a8ff2SEmmanuel Vadot        vdda-phy-supply = <&vreg_l1a_0p875>;
96*aa1a8ff2SEmmanuel Vadot        vdda-pll-supply = <&vreg_l2a_1p2>;
97*aa1a8ff2SEmmanuel Vadot    };
98