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-phy.yaml#" 68c2ecf20Sopenharmony_ci$schema: "http://devicetree.org/meta-schemas/core.yaml#" 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_cititle: Qualcomm QMP PHY controller 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_cimaintainers: 118c2ecf20Sopenharmony_ci - Manu Gautam <mgautam@codeaurora.org> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cidescription: 148c2ecf20Sopenharmony_ci QMP phy controller supports physical layer functionality for a number of 158c2ecf20Sopenharmony_ci controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB. 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciproperties: 188c2ecf20Sopenharmony_ci compatible: 198c2ecf20Sopenharmony_ci enum: 208c2ecf20Sopenharmony_ci - qcom,ipq8074-qmp-pcie-phy 218c2ecf20Sopenharmony_ci - qcom,ipq8074-qmp-usb3-phy 228c2ecf20Sopenharmony_ci - qcom,msm8996-qmp-pcie-phy 238c2ecf20Sopenharmony_ci - qcom,msm8996-qmp-ufs-phy 248c2ecf20Sopenharmony_ci - qcom,msm8996-qmp-usb3-phy 258c2ecf20Sopenharmony_ci - qcom,msm8998-qmp-pcie-phy 268c2ecf20Sopenharmony_ci - qcom,msm8998-qmp-ufs-phy 278c2ecf20Sopenharmony_ci - qcom,msm8998-qmp-usb3-phy 288c2ecf20Sopenharmony_ci - qcom,sdm845-qhp-pcie-phy 298c2ecf20Sopenharmony_ci - qcom,sdm845-qmp-pcie-phy 308c2ecf20Sopenharmony_ci - qcom,sdm845-qmp-ufs-phy 318c2ecf20Sopenharmony_ci - qcom,sdm845-qmp-usb3-uni-phy 328c2ecf20Sopenharmony_ci - qcom,sm8150-qmp-ufs-phy 338c2ecf20Sopenharmony_ci - qcom,sm8250-qmp-ufs-phy 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci reg: 368c2ecf20Sopenharmony_ci items: 378c2ecf20Sopenharmony_ci - description: Address and length of PHY's common serdes block. 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci "#clock-cells": 408c2ecf20Sopenharmony_ci enum: [ 1, 2 ] 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci "#address-cells": 438c2ecf20Sopenharmony_ci enum: [ 1, 2 ] 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci "#size-cells": 468c2ecf20Sopenharmony_ci enum: [ 1, 2 ] 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci ranges: true 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci clocks: 518c2ecf20Sopenharmony_ci minItems: 1 528c2ecf20Sopenharmony_ci maxItems: 4 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci clock-names: 558c2ecf20Sopenharmony_ci minItems: 1 568c2ecf20Sopenharmony_ci maxItems: 4 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci resets: 598c2ecf20Sopenharmony_ci minItems: 1 608c2ecf20Sopenharmony_ci maxItems: 3 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci reset-names: 638c2ecf20Sopenharmony_ci minItems: 1 648c2ecf20Sopenharmony_ci maxItems: 3 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ci vdda-phy-supply: 678c2ecf20Sopenharmony_ci description: 688c2ecf20Sopenharmony_ci Phandle to a regulator supply to PHY core block. 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci vdda-pll-supply: 718c2ecf20Sopenharmony_ci description: 728c2ecf20Sopenharmony_ci Phandle to 1.8V regulator supply to PHY refclk pll block. 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ci vddp-ref-clk-supply: 758c2ecf20Sopenharmony_ci description: 768c2ecf20Sopenharmony_ci Phandle to a regulator supply to any specific refclk pll block. 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci#Required nodes: 798c2ecf20Sopenharmony_cipatternProperties: 808c2ecf20Sopenharmony_ci "^phy@[0-9a-f]+$": 818c2ecf20Sopenharmony_ci type: object 828c2ecf20Sopenharmony_ci description: 838c2ecf20Sopenharmony_ci Each device node of QMP phy is required to have as many child nodes as 848c2ecf20Sopenharmony_ci the number of lanes the PHY has. 858c2ecf20Sopenharmony_ci 868c2ecf20Sopenharmony_cirequired: 878c2ecf20Sopenharmony_ci - compatible 888c2ecf20Sopenharmony_ci - reg 898c2ecf20Sopenharmony_ci - "#clock-cells" 908c2ecf20Sopenharmony_ci - "#address-cells" 918c2ecf20Sopenharmony_ci - "#size-cells" 928c2ecf20Sopenharmony_ci - ranges 938c2ecf20Sopenharmony_ci - clocks 948c2ecf20Sopenharmony_ci - clock-names 958c2ecf20Sopenharmony_ci - resets 968c2ecf20Sopenharmony_ci - reset-names 978c2ecf20Sopenharmony_ci - vdda-phy-supply 988c2ecf20Sopenharmony_ci - vdda-pll-supply 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ciadditionalProperties: false 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ciallOf: 1038c2ecf20Sopenharmony_ci - if: 1048c2ecf20Sopenharmony_ci properties: 1058c2ecf20Sopenharmony_ci compatible: 1068c2ecf20Sopenharmony_ci contains: 1078c2ecf20Sopenharmony_ci enum: 1088c2ecf20Sopenharmony_ci - qcom,sdm845-qmp-usb3-uni-phy 1098c2ecf20Sopenharmony_ci then: 1108c2ecf20Sopenharmony_ci properties: 1118c2ecf20Sopenharmony_ci clocks: 1128c2ecf20Sopenharmony_ci items: 1138c2ecf20Sopenharmony_ci - description: Phy aux clock. 1148c2ecf20Sopenharmony_ci - description: Phy config clock. 1158c2ecf20Sopenharmony_ci - description: 19.2 MHz ref clk. 1168c2ecf20Sopenharmony_ci - description: Phy common block aux clock. 1178c2ecf20Sopenharmony_ci clock-names: 1188c2ecf20Sopenharmony_ci items: 1198c2ecf20Sopenharmony_ci - const: aux 1208c2ecf20Sopenharmony_ci - const: cfg_ahb 1218c2ecf20Sopenharmony_ci - const: ref 1228c2ecf20Sopenharmony_ci - const: com_aux 1238c2ecf20Sopenharmony_ci resets: 1248c2ecf20Sopenharmony_ci items: 1258c2ecf20Sopenharmony_ci - description: reset of phy block. 1268c2ecf20Sopenharmony_ci - description: phy common block reset. 1278c2ecf20Sopenharmony_ci reset-names: 1288c2ecf20Sopenharmony_ci items: 1298c2ecf20Sopenharmony_ci - const: phy 1308c2ecf20Sopenharmony_ci - const: common 1318c2ecf20Sopenharmony_ci - if: 1328c2ecf20Sopenharmony_ci properties: 1338c2ecf20Sopenharmony_ci compatible: 1348c2ecf20Sopenharmony_ci contains: 1358c2ecf20Sopenharmony_ci enum: 1368c2ecf20Sopenharmony_ci - qcom,msm8996-qmp-pcie-phy 1378c2ecf20Sopenharmony_ci then: 1388c2ecf20Sopenharmony_ci properties: 1398c2ecf20Sopenharmony_ci clocks: 1408c2ecf20Sopenharmony_ci items: 1418c2ecf20Sopenharmony_ci - description: Phy aux clock. 1428c2ecf20Sopenharmony_ci - description: Phy config clock. 1438c2ecf20Sopenharmony_ci - description: 19.2 MHz ref clk. 1448c2ecf20Sopenharmony_ci clock-names: 1458c2ecf20Sopenharmony_ci items: 1468c2ecf20Sopenharmony_ci - const: aux 1478c2ecf20Sopenharmony_ci - const: cfg_ahb 1488c2ecf20Sopenharmony_ci - const: ref 1498c2ecf20Sopenharmony_ci resets: 1508c2ecf20Sopenharmony_ci items: 1518c2ecf20Sopenharmony_ci - description: reset of phy block. 1528c2ecf20Sopenharmony_ci - description: phy common block reset. 1538c2ecf20Sopenharmony_ci - description: phy's ahb cfg block reset. 1548c2ecf20Sopenharmony_ci reset-names: 1558c2ecf20Sopenharmony_ci items: 1568c2ecf20Sopenharmony_ci - const: phy 1578c2ecf20Sopenharmony_ci - const: common 1588c2ecf20Sopenharmony_ci - const: cfg 1598c2ecf20Sopenharmony_ci - if: 1608c2ecf20Sopenharmony_ci properties: 1618c2ecf20Sopenharmony_ci compatible: 1628c2ecf20Sopenharmony_ci contains: 1638c2ecf20Sopenharmony_ci enum: 1648c2ecf20Sopenharmony_ci - qcom,ipq8074-qmp-usb3-phy 1658c2ecf20Sopenharmony_ci - qcom,msm8996-qmp-usb3-phy 1668c2ecf20Sopenharmony_ci - qcom,msm8998-qmp-pcie-phy 1678c2ecf20Sopenharmony_ci - qcom,msm8998-qmp-usb3-phy 1688c2ecf20Sopenharmony_ci then: 1698c2ecf20Sopenharmony_ci properties: 1708c2ecf20Sopenharmony_ci clocks: 1718c2ecf20Sopenharmony_ci items: 1728c2ecf20Sopenharmony_ci - description: Phy aux clock. 1738c2ecf20Sopenharmony_ci - description: Phy config clock. 1748c2ecf20Sopenharmony_ci - description: 19.2 MHz ref clk. 1758c2ecf20Sopenharmony_ci clock-names: 1768c2ecf20Sopenharmony_ci items: 1778c2ecf20Sopenharmony_ci - const: aux 1788c2ecf20Sopenharmony_ci - const: cfg_ahb 1798c2ecf20Sopenharmony_ci - const: ref 1808c2ecf20Sopenharmony_ci resets: 1818c2ecf20Sopenharmony_ci items: 1828c2ecf20Sopenharmony_ci - description: reset of phy block. 1838c2ecf20Sopenharmony_ci - description: phy common block reset. 1848c2ecf20Sopenharmony_ci reset-names: 1858c2ecf20Sopenharmony_ci items: 1868c2ecf20Sopenharmony_ci - const: phy 1878c2ecf20Sopenharmony_ci - const: common 1888c2ecf20Sopenharmony_ci - if: 1898c2ecf20Sopenharmony_ci properties: 1908c2ecf20Sopenharmony_ci compatible: 1918c2ecf20Sopenharmony_ci contains: 1928c2ecf20Sopenharmony_ci enum: 1938c2ecf20Sopenharmony_ci - qcom,msm8996-qmp-ufs-phy 1948c2ecf20Sopenharmony_ci then: 1958c2ecf20Sopenharmony_ci properties: 1968c2ecf20Sopenharmony_ci clocks: 1978c2ecf20Sopenharmony_ci items: 1988c2ecf20Sopenharmony_ci - description: 19.2 MHz ref clk. 1998c2ecf20Sopenharmony_ci clock-names: 2008c2ecf20Sopenharmony_ci items: 2018c2ecf20Sopenharmony_ci - const: ref 2028c2ecf20Sopenharmony_ci resets: 2038c2ecf20Sopenharmony_ci items: 2048c2ecf20Sopenharmony_ci - description: PHY reset in the UFS controller. 2058c2ecf20Sopenharmony_ci reset-names: 2068c2ecf20Sopenharmony_ci items: 2078c2ecf20Sopenharmony_ci - const: ufsphy 2088c2ecf20Sopenharmony_ci - if: 2098c2ecf20Sopenharmony_ci properties: 2108c2ecf20Sopenharmony_ci compatible: 2118c2ecf20Sopenharmony_ci contains: 2128c2ecf20Sopenharmony_ci enum: 2138c2ecf20Sopenharmony_ci - qcom,msm8998-qmp-ufs-phy 2148c2ecf20Sopenharmony_ci - qcom,sdm845-qmp-ufs-phy 2158c2ecf20Sopenharmony_ci - qcom,sm8150-qmp-ufs-phy 2168c2ecf20Sopenharmony_ci - qcom,sm8250-qmp-ufs-phy 2178c2ecf20Sopenharmony_ci then: 2188c2ecf20Sopenharmony_ci properties: 2198c2ecf20Sopenharmony_ci clocks: 2208c2ecf20Sopenharmony_ci items: 2218c2ecf20Sopenharmony_ci - description: 19.2 MHz ref clk. 2228c2ecf20Sopenharmony_ci - description: Phy reference aux clock. 2238c2ecf20Sopenharmony_ci clock-names: 2248c2ecf20Sopenharmony_ci items: 2258c2ecf20Sopenharmony_ci - const: ref 2268c2ecf20Sopenharmony_ci - const: ref_aux 2278c2ecf20Sopenharmony_ci resets: 2288c2ecf20Sopenharmony_ci items: 2298c2ecf20Sopenharmony_ci - description: PHY reset in the UFS controller. 2308c2ecf20Sopenharmony_ci reset-names: 2318c2ecf20Sopenharmony_ci items: 2328c2ecf20Sopenharmony_ci - const: ufsphy 2338c2ecf20Sopenharmony_ci - if: 2348c2ecf20Sopenharmony_ci properties: 2358c2ecf20Sopenharmony_ci compatible: 2368c2ecf20Sopenharmony_ci contains: 2378c2ecf20Sopenharmony_ci enum: 2388c2ecf20Sopenharmony_ci - qcom,ipq8074-qmp-pcie-phy 2398c2ecf20Sopenharmony_ci then: 2408c2ecf20Sopenharmony_ci properties: 2418c2ecf20Sopenharmony_ci clocks: 2428c2ecf20Sopenharmony_ci items: 2438c2ecf20Sopenharmony_ci - description: pipe clk. 2448c2ecf20Sopenharmony_ci clock-names: 2458c2ecf20Sopenharmony_ci items: 2468c2ecf20Sopenharmony_ci - const: pipe_clk 2478c2ecf20Sopenharmony_ci resets: 2488c2ecf20Sopenharmony_ci items: 2498c2ecf20Sopenharmony_ci - description: reset of phy block. 2508c2ecf20Sopenharmony_ci - description: phy common block reset. 2518c2ecf20Sopenharmony_ci reset-names: 2528c2ecf20Sopenharmony_ci items: 2538c2ecf20Sopenharmony_ci - const: phy 2548c2ecf20Sopenharmony_ci - const: common 2558c2ecf20Sopenharmony_ci - if: 2568c2ecf20Sopenharmony_ci properties: 2578c2ecf20Sopenharmony_ci compatible: 2588c2ecf20Sopenharmony_ci contains: 2598c2ecf20Sopenharmony_ci enum: 2608c2ecf20Sopenharmony_ci - qcom,sdm845-qhp-pcie-phy 2618c2ecf20Sopenharmony_ci - qcom,sdm845-qmp-pcie-phy 2628c2ecf20Sopenharmony_ci then: 2638c2ecf20Sopenharmony_ci properties: 2648c2ecf20Sopenharmony_ci clocks: 2658c2ecf20Sopenharmony_ci items: 2668c2ecf20Sopenharmony_ci - description: Phy aux clock. 2678c2ecf20Sopenharmony_ci - description: Phy config clock. 2688c2ecf20Sopenharmony_ci - description: 19.2 MHz ref clk. 2698c2ecf20Sopenharmony_ci - description: Phy refgen clk. 2708c2ecf20Sopenharmony_ci clock-names: 2718c2ecf20Sopenharmony_ci items: 2728c2ecf20Sopenharmony_ci - const: aux 2738c2ecf20Sopenharmony_ci - const: cfg_ahb 2748c2ecf20Sopenharmony_ci - const: ref 2758c2ecf20Sopenharmony_ci - const: refgen 2768c2ecf20Sopenharmony_ci resets: 2778c2ecf20Sopenharmony_ci items: 2788c2ecf20Sopenharmony_ci - description: reset of phy block. 2798c2ecf20Sopenharmony_ci reset-names: 2808c2ecf20Sopenharmony_ci items: 2818c2ecf20Sopenharmony_ci - const: phy 2828c2ecf20Sopenharmony_ci 2838c2ecf20Sopenharmony_ciexamples: 2848c2ecf20Sopenharmony_ci - | 2858c2ecf20Sopenharmony_ci #include <dt-bindings/clock/qcom,gcc-sdm845.h> 2868c2ecf20Sopenharmony_ci usb_2_qmpphy: phy-wrapper@88eb000 { 2878c2ecf20Sopenharmony_ci compatible = "qcom,sdm845-qmp-usb3-uni-phy"; 2888c2ecf20Sopenharmony_ci reg = <0x088eb000 0x18c>; 2898c2ecf20Sopenharmony_ci #clock-cells = <1>; 2908c2ecf20Sopenharmony_ci #address-cells = <1>; 2918c2ecf20Sopenharmony_ci #size-cells = <1>; 2928c2ecf20Sopenharmony_ci ranges = <0x0 0x088eb000 0x2000>; 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ci clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK >, 2958c2ecf20Sopenharmony_ci <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>, 2968c2ecf20Sopenharmony_ci <&gcc GCC_USB3_SEC_CLKREF_CLK>, 2978c2ecf20Sopenharmony_ci <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>; 2988c2ecf20Sopenharmony_ci clock-names = "aux", "cfg_ahb", "ref", "com_aux"; 2998c2ecf20Sopenharmony_ci 3008c2ecf20Sopenharmony_ci resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>, 3018c2ecf20Sopenharmony_ci <&gcc GCC_USB3_PHY_SEC_BCR>; 3028c2ecf20Sopenharmony_ci reset-names = "phy", "common"; 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_ci vdda-phy-supply = <&vdda_usb2_ss_1p2>; 3058c2ecf20Sopenharmony_ci vdda-pll-supply = <&vdda_usb2_ss_core>; 3068c2ecf20Sopenharmony_ci 3078c2ecf20Sopenharmony_ci usb_2_ssphy: phy@200 { 3088c2ecf20Sopenharmony_ci reg = <0x200 0x128>, 3098c2ecf20Sopenharmony_ci <0x400 0x1fc>, 3108c2ecf20Sopenharmony_ci <0x800 0x218>, 3118c2ecf20Sopenharmony_ci <0x600 0x70>; 3128c2ecf20Sopenharmony_ci #clock-cells = <0>; 3138c2ecf20Sopenharmony_ci #phy-cells = <0>; 3148c2ecf20Sopenharmony_ci clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>; 3158c2ecf20Sopenharmony_ci clock-names = "pipe0"; 3168c2ecf20Sopenharmony_ci clock-output-names = "usb3_uni_phy_pipe_clk_src"; 3178c2ecf20Sopenharmony_ci }; 3188c2ecf20Sopenharmony_ci }; 319