1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel Vadot%YAML 1.2
4c66ec88fSEmmanuel Vadot---
5c66ec88fSEmmanuel Vadot$id: "http://devicetree.org/schemas/phy/qcom,qmp-usb3-dp-phy.yaml#"
6c66ec88fSEmmanuel Vadot$schema: "http://devicetree.org/meta-schemas/core.yaml#"
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel Vadottitle: Qualcomm QMP USB3 DP PHY controller
9c66ec88fSEmmanuel Vadot
10c66ec88fSEmmanuel Vadotmaintainers:
11d5b0e70fSEmmanuel Vadot  - Wesley Cheng <quic_wcheng@quicinc.com>
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadotproperties:
14c66ec88fSEmmanuel Vadot  compatible:
15c66ec88fSEmmanuel Vadot    enum:
166be33864SEmmanuel Vadot      - qcom,sc7180-qmp-usb3-dp-phy
17354d7675SEmmanuel Vadot      - qcom,sc7280-qmp-usb3-dp-phy
18354d7675SEmmanuel Vadot      - qcom,sc8180x-qmp-usb3-dp-phy
19*7ef62cebSEmmanuel Vadot      - qcom,sc8280xp-qmp-usb43dp-phy
206be33864SEmmanuel Vadot      - qcom,sdm845-qmp-usb3-dp-phy
212eb4d8dcSEmmanuel Vadot      - qcom,sm8250-qmp-usb3-dp-phy
22c66ec88fSEmmanuel Vadot  reg:
23c66ec88fSEmmanuel Vadot    items:
246be33864SEmmanuel Vadot      - description: Address and length of PHY's USB serdes block.
25c66ec88fSEmmanuel Vadot      - description: Address and length of the DP_COM control block.
266be33864SEmmanuel Vadot      - description: Address and length of PHY's DP serdes block.
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel Vadot  reg-names:
29c66ec88fSEmmanuel Vadot    items:
306be33864SEmmanuel Vadot      - const: usb
31c66ec88fSEmmanuel Vadot      - const: dp_com
326be33864SEmmanuel Vadot      - const: dp
33c66ec88fSEmmanuel Vadot
34c66ec88fSEmmanuel Vadot  "#address-cells":
35c66ec88fSEmmanuel Vadot    enum: [ 1, 2 ]
36c66ec88fSEmmanuel Vadot
37c66ec88fSEmmanuel Vadot  "#size-cells":
38c66ec88fSEmmanuel Vadot    enum: [ 1, 2 ]
39c66ec88fSEmmanuel Vadot
40c66ec88fSEmmanuel Vadot  ranges: true
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot  clocks:
43c66ec88fSEmmanuel Vadot    items:
44c66ec88fSEmmanuel Vadot      - description: Phy aux clock.
45c66ec88fSEmmanuel Vadot      - description: Phy config clock.
46c66ec88fSEmmanuel Vadot      - description: 19.2 MHz ref clk.
47c66ec88fSEmmanuel Vadot      - description: Phy common block aux clock.
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot  clock-names:
50c66ec88fSEmmanuel Vadot    items:
51c66ec88fSEmmanuel Vadot      - const: aux
52c66ec88fSEmmanuel Vadot      - const: cfg_ahb
53c66ec88fSEmmanuel Vadot      - const: ref
54c66ec88fSEmmanuel Vadot      - const: com_aux
55c66ec88fSEmmanuel Vadot
56*7ef62cebSEmmanuel Vadot  power-domains:
57*7ef62cebSEmmanuel Vadot    maxItems: 1
58*7ef62cebSEmmanuel Vadot
59c66ec88fSEmmanuel Vadot  resets:
60c66ec88fSEmmanuel Vadot    items:
61c66ec88fSEmmanuel Vadot      - description: reset of phy block.
62c66ec88fSEmmanuel Vadot      - description: phy common block reset.
63c66ec88fSEmmanuel Vadot
64c66ec88fSEmmanuel Vadot  reset-names:
65c66ec88fSEmmanuel Vadot    items:
66c66ec88fSEmmanuel Vadot      - const: phy
67c66ec88fSEmmanuel Vadot      - const: common
68c66ec88fSEmmanuel Vadot
69c66ec88fSEmmanuel Vadot  vdda-phy-supply:
70c66ec88fSEmmanuel Vadot    description:
71c66ec88fSEmmanuel Vadot      Phandle to a regulator supply to PHY core block.
72c66ec88fSEmmanuel Vadot
73c66ec88fSEmmanuel Vadot  vdda-pll-supply:
74c66ec88fSEmmanuel Vadot    description:
75c66ec88fSEmmanuel Vadot      Phandle to 1.8V regulator supply to PHY refclk pll block.
76c66ec88fSEmmanuel Vadot
77c66ec88fSEmmanuel Vadot  vddp-ref-clk-supply:
78c66ec88fSEmmanuel Vadot    description:
79c66ec88fSEmmanuel Vadot      Phandle to a regulator supply to any specific refclk pll block.
80c66ec88fSEmmanuel Vadot
81c66ec88fSEmmanuel Vadot#Required nodes:
82c66ec88fSEmmanuel VadotpatternProperties:
836be33864SEmmanuel Vadot  "^usb3-phy@[0-9a-f]+$":
84c66ec88fSEmmanuel Vadot    type: object
85*7ef62cebSEmmanuel Vadot    additionalProperties: false
86c66ec88fSEmmanuel Vadot    description:
876be33864SEmmanuel Vadot      The USB3 PHY.
886be33864SEmmanuel Vadot
896be33864SEmmanuel Vadot    properties:
906be33864SEmmanuel Vadot      reg:
916be33864SEmmanuel Vadot        items:
926be33864SEmmanuel Vadot          - description: Address and length of TX.
936be33864SEmmanuel Vadot          - description: Address and length of RX.
946be33864SEmmanuel Vadot          - description: Address and length of PCS.
956be33864SEmmanuel Vadot          - description: Address and length of TX2.
966be33864SEmmanuel Vadot          - description: Address and length of RX2.
976be33864SEmmanuel Vadot          - description: Address and length of pcs_misc.
986be33864SEmmanuel Vadot
996be33864SEmmanuel Vadot      clocks:
1006be33864SEmmanuel Vadot        items:
1016be33864SEmmanuel Vadot          - description: pipe clock
1026be33864SEmmanuel Vadot
1036be33864SEmmanuel Vadot      clock-names:
104*7ef62cebSEmmanuel Vadot        deprecated: true
1056be33864SEmmanuel Vadot        items:
1066be33864SEmmanuel Vadot          - const: pipe0
1076be33864SEmmanuel Vadot
1086be33864SEmmanuel Vadot      clock-output-names:
1096be33864SEmmanuel Vadot        items:
1106be33864SEmmanuel Vadot          - const: usb3_phy_pipe_clk_src
1116be33864SEmmanuel Vadot
1126be33864SEmmanuel Vadot      '#clock-cells':
1136be33864SEmmanuel Vadot        const: 0
1146be33864SEmmanuel Vadot
1156be33864SEmmanuel Vadot      '#phy-cells':
1166be33864SEmmanuel Vadot        const: 0
1176be33864SEmmanuel Vadot
1186be33864SEmmanuel Vadot    required:
1196be33864SEmmanuel Vadot      - reg
1206be33864SEmmanuel Vadot      - clocks
1216be33864SEmmanuel Vadot      - '#clock-cells'
1226be33864SEmmanuel Vadot      - '#phy-cells'
1236be33864SEmmanuel Vadot
1246be33864SEmmanuel Vadot  "^dp-phy@[0-9a-f]+$":
1256be33864SEmmanuel Vadot    type: object
126*7ef62cebSEmmanuel Vadot    additionalProperties: false
1276be33864SEmmanuel Vadot    description:
1286be33864SEmmanuel Vadot      The DP PHY.
1296be33864SEmmanuel Vadot
1306be33864SEmmanuel Vadot    properties:
1316be33864SEmmanuel Vadot      reg:
1326be33864SEmmanuel Vadot        items:
1336be33864SEmmanuel Vadot          - description: Address and length of TX.
1346be33864SEmmanuel Vadot          - description: Address and length of RX.
1356be33864SEmmanuel Vadot          - description: Address and length of PCS.
1366be33864SEmmanuel Vadot          - description: Address and length of TX2.
1376be33864SEmmanuel Vadot          - description: Address and length of RX2.
1386be33864SEmmanuel Vadot
1396be33864SEmmanuel Vadot      '#clock-cells':
1406be33864SEmmanuel Vadot        const: 1
1416be33864SEmmanuel Vadot
1426be33864SEmmanuel Vadot      '#phy-cells':
1436be33864SEmmanuel Vadot        const: 0
1446be33864SEmmanuel Vadot
1456be33864SEmmanuel Vadot    required:
1466be33864SEmmanuel Vadot      - reg
1476be33864SEmmanuel Vadot      - '#clock-cells'
1486be33864SEmmanuel Vadot      - '#phy-cells'
149c66ec88fSEmmanuel Vadot
150c66ec88fSEmmanuel Vadotrequired:
151c66ec88fSEmmanuel Vadot  - compatible
152c66ec88fSEmmanuel Vadot  - reg
153c66ec88fSEmmanuel Vadot  - "#address-cells"
154c66ec88fSEmmanuel Vadot  - "#size-cells"
155c66ec88fSEmmanuel Vadot  - ranges
156c66ec88fSEmmanuel Vadot  - clocks
157c66ec88fSEmmanuel Vadot  - clock-names
158c66ec88fSEmmanuel Vadot  - resets
159c66ec88fSEmmanuel Vadot  - reset-names
160c66ec88fSEmmanuel Vadot  - vdda-phy-supply
161c66ec88fSEmmanuel Vadot  - vdda-pll-supply
162c66ec88fSEmmanuel Vadot
163c66ec88fSEmmanuel VadotadditionalProperties: false
164c66ec88fSEmmanuel Vadot
165*7ef62cebSEmmanuel VadotallOf:
166*7ef62cebSEmmanuel Vadot  - if:
167*7ef62cebSEmmanuel Vadot      properties:
168*7ef62cebSEmmanuel Vadot        compatible:
169*7ef62cebSEmmanuel Vadot          contains:
170*7ef62cebSEmmanuel Vadot            enum:
171*7ef62cebSEmmanuel Vadot              - qcom,sc8280xp-qmp-usb43dp-phy
172*7ef62cebSEmmanuel Vadot    then:
173*7ef62cebSEmmanuel Vadot      required:
174*7ef62cebSEmmanuel Vadot        - power-domains
175*7ef62cebSEmmanuel Vadot
176c66ec88fSEmmanuel Vadotexamples:
177c66ec88fSEmmanuel Vadot  - |
178c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
179c66ec88fSEmmanuel Vadot    usb_1_qmpphy: phy-wrapper@88e9000 {
1806be33864SEmmanuel Vadot        compatible = "qcom,sdm845-qmp-usb3-dp-phy";
181c66ec88fSEmmanuel Vadot        reg = <0x088e9000 0x18c>,
1826be33864SEmmanuel Vadot              <0x088e8000 0x10>,
1836be33864SEmmanuel Vadot              <0x088ea000 0x40>;
1846be33864SEmmanuel Vadot        reg-names = "usb", "dp_com", "dp";
185c66ec88fSEmmanuel Vadot        #address-cells = <1>;
186c66ec88fSEmmanuel Vadot        #size-cells = <1>;
1876be33864SEmmanuel Vadot        ranges = <0x0 0x088e9000 0x2000>;
188c66ec88fSEmmanuel Vadot
189c66ec88fSEmmanuel Vadot        clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
190c66ec88fSEmmanuel Vadot                 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
191c66ec88fSEmmanuel Vadot                 <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
192c66ec88fSEmmanuel Vadot                 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
193c66ec88fSEmmanuel Vadot        clock-names = "aux", "cfg_ahb", "ref", "com_aux";
194c66ec88fSEmmanuel Vadot
195c66ec88fSEmmanuel Vadot        resets = <&gcc GCC_USB3_PHY_PRIM_BCR>,
196c66ec88fSEmmanuel Vadot                 <&gcc GCC_USB3_DP_PHY_PRIM_BCR>;
197c66ec88fSEmmanuel Vadot        reset-names = "phy", "common";
198c66ec88fSEmmanuel Vadot
199c66ec88fSEmmanuel Vadot        vdda-phy-supply = <&vdda_usb2_ss_1p2>;
200c66ec88fSEmmanuel Vadot        vdda-pll-supply = <&vdda_usb2_ss_core>;
201c66ec88fSEmmanuel Vadot
2026be33864SEmmanuel Vadot        usb3-phy@200 {
203c66ec88fSEmmanuel Vadot            reg = <0x200 0x128>,
204c66ec88fSEmmanuel Vadot                  <0x400 0x200>,
205c66ec88fSEmmanuel Vadot                  <0xc00 0x218>,
206c66ec88fSEmmanuel Vadot                  <0x600 0x128>,
207c66ec88fSEmmanuel Vadot                  <0x800 0x200>,
208c66ec88fSEmmanuel Vadot                  <0xa00 0x100>;
209c66ec88fSEmmanuel Vadot            #clock-cells = <0>;
210c66ec88fSEmmanuel Vadot            #phy-cells = <0>;
211c66ec88fSEmmanuel Vadot            clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
212c66ec88fSEmmanuel Vadot            clock-output-names = "usb3_phy_pipe_clk_src";
213c66ec88fSEmmanuel Vadot        };
2146be33864SEmmanuel Vadot
2156be33864SEmmanuel Vadot        dp-phy@88ea200 {
2166be33864SEmmanuel Vadot            reg = <0xa200 0x200>,
2176be33864SEmmanuel Vadot                  <0xa400 0x200>,
2186be33864SEmmanuel Vadot                  <0xaa00 0x200>,
2196be33864SEmmanuel Vadot                  <0xa600 0x200>,
2206be33864SEmmanuel Vadot                  <0xa800 0x200>;
2216be33864SEmmanuel Vadot            #clock-cells = <1>;
2226be33864SEmmanuel Vadot            #phy-cells = <0>;
2236be33864SEmmanuel Vadot        };
224c66ec88fSEmmanuel Vadot    };
225