summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/phy/qcom,qmp-usb3-dp-phy.yaml
blob: b770e637df1d9ee68a0d7ddd4347243e01f1d6bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)

%YAML 1.2
---
$id: "http://devicetree.org/schemas/phy/qcom,qmp-usb3-dp-phy.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Qualcomm QMP USB3 DP PHY controller

maintainers:
  - Manu Gautam <mgautam@codeaurora.org>

properties:
  compatible:
    enum:
      - qcom,sc7180-qmp-usb3-phy
      - qcom,sdm845-qmp-usb3-phy
  reg:
    items:
      - description: Address and length of PHY's common serdes block.
      - description: Address and length of the DP_COM control block.

  reg-names:
    items:
      - const: reg-base
      - const: dp_com

  "#clock-cells":
     enum: [ 1, 2 ]

  "#address-cells":
    enum: [ 1, 2 ]

  "#size-cells":
    enum: [ 1, 2 ]

  clocks:
    items:
      - description: Phy aux clock.
      - description: Phy config clock.
      - description: 19.2 MHz ref clk.
      - description: Phy common block aux clock.

  clock-names:
    items:
      - const: aux
      - const: cfg_ahb
      - const: ref
      - const: com_aux

  resets:
    items:
      - description: reset of phy block.
      - description: phy common block reset.

  reset-names:
    items:
      - const: phy
      - const: common

  vdda-phy-supply:
    description:
        Phandle to a regulator supply to PHY core block.

  vdda-pll-supply:
    description:
        Phandle to 1.8V regulator supply to PHY refclk pll block.

  vddp-ref-clk-supply:
    description:
        Phandle to a regulator supply to any specific refclk
        pll block.

#Required nodes:
patternProperties:
  "^phy@[0-9a-f]+$":
    type: object
    description:
      Each device node of QMP phy is required to have as many child nodes as
      the number of lanes the PHY has.

required:
  - compatible
  - reg
  - reg-names
  - "#clock-cells"
  - "#address-cells"
  - "#size-cells"
  - clocks
  - clock-names
  - resets
  - reset-names
  - vdda-phy-supply
  - vdda-pll-supply

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
    usb_1_qmpphy: phy-wrapper@88e9000 {
        compatible = "qcom,sdm845-qmp-usb3-phy";
        reg = <0 0x088e9000 0 0x18c>,
              <0 0x088e8000 0 0x10>;
        reg-names = "reg-base", "dp_com";
        #clock-cells = <1>;
        #address-cells = <2>;
        #size-cells = <2>;

        clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
                 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
                 <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
                 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
        clock-names = "aux", "cfg_ahb", "ref", "com_aux";

        resets = <&gcc GCC_USB3_PHY_PRIM_BCR>,
                 <&gcc GCC_USB3_DP_PHY_PRIM_BCR>;
        reset-names = "phy", "common";

        vdda-phy-supply = <&vdda_usb2_ss_1p2>;
        vdda-pll-supply = <&vdda_usb2_ss_core>;

        usb_1_ssphy: phy@88e9200 {
                reg = <0 0x088e9200 0 0x128>,
                      <0 0x088e9400 0 0x200>,
                      <0 0x088e9c00 0 0x218>,
                      <0 0x088e9600 0 0x128>,
                      <0 0x088e9800 0 0x200>,
                      <0 0x088e9a00 0 0x100>;
                #clock-cells = <0>;
                #phy-cells = <0>;
                clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
                clock-names = "pipe0";
                clock-output-names = "usb3_phy_pipe_clk_src";
            };
        };