18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci%YAML 1.2
48c2ecf20Sopenharmony_ci---
58c2ecf20Sopenharmony_ci$id: "http://devicetree.org/schemas/phy/qcom,qmp-usb3-dp-phy.yaml#"
68c2ecf20Sopenharmony_ci$schema: "http://devicetree.org/meta-schemas/core.yaml#"
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_cititle: Qualcomm QMP USB3 DP PHY controller
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_cimaintainers:
118c2ecf20Sopenharmony_ci  - Manu Gautam <mgautam@codeaurora.org>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ciproperties:
148c2ecf20Sopenharmony_ci  compatible:
158c2ecf20Sopenharmony_ci    enum:
168c2ecf20Sopenharmony_ci      - qcom,sc7180-qmp-usb3-dp-phy
178c2ecf20Sopenharmony_ci      - qcom,sc7180-qmp-usb3-phy
188c2ecf20Sopenharmony_ci      - qcom,sdm845-qmp-usb3-dp-phy
198c2ecf20Sopenharmony_ci      - qcom,sdm845-qmp-usb3-phy
208c2ecf20Sopenharmony_ci  reg:
218c2ecf20Sopenharmony_ci    items:
228c2ecf20Sopenharmony_ci      - description: Address and length of PHY's USB serdes block.
238c2ecf20Sopenharmony_ci      - description: Address and length of the DP_COM control block.
248c2ecf20Sopenharmony_ci      - description: Address and length of PHY's DP serdes block.
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci  reg-names:
278c2ecf20Sopenharmony_ci    items:
288c2ecf20Sopenharmony_ci      - const: usb
298c2ecf20Sopenharmony_ci      - const: dp_com
308c2ecf20Sopenharmony_ci      - const: dp
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci  "#clock-cells":
338c2ecf20Sopenharmony_ci    enum: [ 1, 2 ]
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci  "#address-cells":
368c2ecf20Sopenharmony_ci    enum: [ 1, 2 ]
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci  "#size-cells":
398c2ecf20Sopenharmony_ci    enum: [ 1, 2 ]
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci  ranges: true
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci  clocks:
448c2ecf20Sopenharmony_ci    items:
458c2ecf20Sopenharmony_ci      - description: Phy aux clock.
468c2ecf20Sopenharmony_ci      - description: Phy config clock.
478c2ecf20Sopenharmony_ci      - description: 19.2 MHz ref clk.
488c2ecf20Sopenharmony_ci      - description: Phy common block aux clock.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci  clock-names:
518c2ecf20Sopenharmony_ci    items:
528c2ecf20Sopenharmony_ci      - const: aux
538c2ecf20Sopenharmony_ci      - const: cfg_ahb
548c2ecf20Sopenharmony_ci      - const: ref
558c2ecf20Sopenharmony_ci      - const: com_aux
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci  resets:
588c2ecf20Sopenharmony_ci    items:
598c2ecf20Sopenharmony_ci      - description: reset of phy block.
608c2ecf20Sopenharmony_ci      - description: phy common block reset.
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci  reset-names:
638c2ecf20Sopenharmony_ci    items:
648c2ecf20Sopenharmony_ci      - const: phy
658c2ecf20Sopenharmony_ci      - const: common
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci  vdda-phy-supply:
688c2ecf20Sopenharmony_ci    description:
698c2ecf20Sopenharmony_ci      Phandle to a regulator supply to PHY core block.
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci  vdda-pll-supply:
728c2ecf20Sopenharmony_ci    description:
738c2ecf20Sopenharmony_ci      Phandle to 1.8V regulator supply to PHY refclk pll block.
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci  vddp-ref-clk-supply:
768c2ecf20Sopenharmony_ci    description:
778c2ecf20Sopenharmony_ci      Phandle to a regulator supply to any specific refclk pll block.
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci#Required nodes:
808c2ecf20Sopenharmony_cipatternProperties:
818c2ecf20Sopenharmony_ci  "^usb3-phy@[0-9a-f]+$":
828c2ecf20Sopenharmony_ci    type: object
838c2ecf20Sopenharmony_ci    description:
848c2ecf20Sopenharmony_ci      The USB3 PHY.
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci    properties:
878c2ecf20Sopenharmony_ci      reg:
888c2ecf20Sopenharmony_ci        items:
898c2ecf20Sopenharmony_ci          - description: Address and length of TX.
908c2ecf20Sopenharmony_ci          - description: Address and length of RX.
918c2ecf20Sopenharmony_ci          - description: Address and length of PCS.
928c2ecf20Sopenharmony_ci          - description: Address and length of TX2.
938c2ecf20Sopenharmony_ci          - description: Address and length of RX2.
948c2ecf20Sopenharmony_ci          - description: Address and length of pcs_misc.
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ci      clocks:
978c2ecf20Sopenharmony_ci        items:
988c2ecf20Sopenharmony_ci          - description: pipe clock
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci      clock-names:
1018c2ecf20Sopenharmony_ci        items:
1028c2ecf20Sopenharmony_ci          - const: pipe0
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci      clock-output-names:
1058c2ecf20Sopenharmony_ci        items:
1068c2ecf20Sopenharmony_ci          - const: usb3_phy_pipe_clk_src
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ci      '#clock-cells':
1098c2ecf20Sopenharmony_ci        const: 0
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci      '#phy-cells':
1128c2ecf20Sopenharmony_ci        const: 0
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci    required:
1158c2ecf20Sopenharmony_ci      - reg
1168c2ecf20Sopenharmony_ci      - clocks
1178c2ecf20Sopenharmony_ci      - clock-names
1188c2ecf20Sopenharmony_ci      - '#clock-cells'
1198c2ecf20Sopenharmony_ci      - '#phy-cells'
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci  "^dp-phy@[0-9a-f]+$":
1228c2ecf20Sopenharmony_ci    type: object
1238c2ecf20Sopenharmony_ci    description:
1248c2ecf20Sopenharmony_ci      The DP PHY.
1258c2ecf20Sopenharmony_ci
1268c2ecf20Sopenharmony_ci    properties:
1278c2ecf20Sopenharmony_ci      reg:
1288c2ecf20Sopenharmony_ci        items:
1298c2ecf20Sopenharmony_ci          - description: Address and length of TX.
1308c2ecf20Sopenharmony_ci          - description: Address and length of RX.
1318c2ecf20Sopenharmony_ci          - description: Address and length of PCS.
1328c2ecf20Sopenharmony_ci          - description: Address and length of TX2.
1338c2ecf20Sopenharmony_ci          - description: Address and length of RX2.
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ci      '#clock-cells':
1368c2ecf20Sopenharmony_ci        const: 1
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci      '#phy-cells':
1398c2ecf20Sopenharmony_ci        const: 0
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ci    required:
1428c2ecf20Sopenharmony_ci      - reg
1438c2ecf20Sopenharmony_ci      - '#clock-cells'
1448c2ecf20Sopenharmony_ci      - '#phy-cells'
1458c2ecf20Sopenharmony_ci
1468c2ecf20Sopenharmony_cirequired:
1478c2ecf20Sopenharmony_ci  - compatible
1488c2ecf20Sopenharmony_ci  - reg
1498c2ecf20Sopenharmony_ci  - "#clock-cells"
1508c2ecf20Sopenharmony_ci  - "#address-cells"
1518c2ecf20Sopenharmony_ci  - "#size-cells"
1528c2ecf20Sopenharmony_ci  - ranges
1538c2ecf20Sopenharmony_ci  - clocks
1548c2ecf20Sopenharmony_ci  - clock-names
1558c2ecf20Sopenharmony_ci  - resets
1568c2ecf20Sopenharmony_ci  - reset-names
1578c2ecf20Sopenharmony_ci  - vdda-phy-supply
1588c2ecf20Sopenharmony_ci  - vdda-pll-supply
1598c2ecf20Sopenharmony_ci
1608c2ecf20Sopenharmony_ciadditionalProperties: false
1618c2ecf20Sopenharmony_ci
1628c2ecf20Sopenharmony_ciexamples:
1638c2ecf20Sopenharmony_ci  - |
1648c2ecf20Sopenharmony_ci    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
1658c2ecf20Sopenharmony_ci    usb_1_qmpphy: phy-wrapper@88e9000 {
1668c2ecf20Sopenharmony_ci        compatible = "qcom,sdm845-qmp-usb3-dp-phy";
1678c2ecf20Sopenharmony_ci        reg = <0x088e9000 0x18c>,
1688c2ecf20Sopenharmony_ci              <0x088e8000 0x10>,
1698c2ecf20Sopenharmony_ci              <0x088ea000 0x40>;
1708c2ecf20Sopenharmony_ci        reg-names = "usb", "dp_com", "dp";
1718c2ecf20Sopenharmony_ci        #clock-cells = <1>;
1728c2ecf20Sopenharmony_ci        #address-cells = <1>;
1738c2ecf20Sopenharmony_ci        #size-cells = <1>;
1748c2ecf20Sopenharmony_ci        ranges = <0x0 0x088e9000 0x2000>;
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_ci        clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
1778c2ecf20Sopenharmony_ci                 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
1788c2ecf20Sopenharmony_ci                 <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
1798c2ecf20Sopenharmony_ci                 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
1808c2ecf20Sopenharmony_ci        clock-names = "aux", "cfg_ahb", "ref", "com_aux";
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci        resets = <&gcc GCC_USB3_PHY_PRIM_BCR>,
1838c2ecf20Sopenharmony_ci                 <&gcc GCC_USB3_DP_PHY_PRIM_BCR>;
1848c2ecf20Sopenharmony_ci        reset-names = "phy", "common";
1858c2ecf20Sopenharmony_ci
1868c2ecf20Sopenharmony_ci        vdda-phy-supply = <&vdda_usb2_ss_1p2>;
1878c2ecf20Sopenharmony_ci        vdda-pll-supply = <&vdda_usb2_ss_core>;
1888c2ecf20Sopenharmony_ci
1898c2ecf20Sopenharmony_ci        usb3-phy@200 {
1908c2ecf20Sopenharmony_ci            reg = <0x200 0x128>,
1918c2ecf20Sopenharmony_ci                  <0x400 0x200>,
1928c2ecf20Sopenharmony_ci                  <0xc00 0x218>,
1938c2ecf20Sopenharmony_ci                  <0x600 0x128>,
1948c2ecf20Sopenharmony_ci                  <0x800 0x200>,
1958c2ecf20Sopenharmony_ci                  <0xa00 0x100>;
1968c2ecf20Sopenharmony_ci            #clock-cells = <0>;
1978c2ecf20Sopenharmony_ci            #phy-cells = <0>;
1988c2ecf20Sopenharmony_ci            clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
1998c2ecf20Sopenharmony_ci            clock-names = "pipe0";
2008c2ecf20Sopenharmony_ci            clock-output-names = "usb3_phy_pipe_clk_src";
2018c2ecf20Sopenharmony_ci        };
2028c2ecf20Sopenharmony_ci
2038c2ecf20Sopenharmony_ci        dp-phy@88ea200 {
2048c2ecf20Sopenharmony_ci            reg = <0xa200 0x200>,
2058c2ecf20Sopenharmony_ci                  <0xa400 0x200>,
2068c2ecf20Sopenharmony_ci                  <0xaa00 0x200>,
2078c2ecf20Sopenharmony_ci                  <0xa600 0x200>,
2088c2ecf20Sopenharmony_ci                  <0xa800 0x200>;
2098c2ecf20Sopenharmony_ci            #clock-cells = <1>;
2108c2ecf20Sopenharmony_ci            #phy-cells = <0>;
2118c2ecf20Sopenharmony_ci        };
2128c2ecf20Sopenharmony_ci    };
213