14506dc82SJohan Hovold# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 24506dc82SJohan Hovold%YAML 1.2 34506dc82SJohan Hovold--- 44506dc82SJohan Hovold$id: http://devicetree.org/schemas/phy/qcom,msm8996-qmp-pcie-phy.yaml# 54506dc82SJohan Hovold$schema: http://devicetree.org/meta-schemas/core.yaml# 64506dc82SJohan Hovold 74506dc82SJohan Hovoldtitle: Qualcomm QMP PHY controller (MSM8996 PCIe) 84506dc82SJohan Hovold 94506dc82SJohan Hovoldmaintainers: 104506dc82SJohan Hovold - Vinod Koul <vkoul@kernel.org> 114506dc82SJohan Hovold 124506dc82SJohan Hovolddescription: 134506dc82SJohan Hovold QMP PHY controller supports physical layer functionality for a number of 144506dc82SJohan Hovold controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB. 154506dc82SJohan Hovold 164506dc82SJohan Hovoldproperties: 174506dc82SJohan Hovold compatible: 184506dc82SJohan Hovold const: qcom,msm8996-qmp-pcie-phy 194506dc82SJohan Hovold 204506dc82SJohan Hovold reg: 214506dc82SJohan Hovold items: 224506dc82SJohan Hovold - description: serdes 234506dc82SJohan Hovold 244506dc82SJohan Hovold "#address-cells": 254506dc82SJohan Hovold enum: [ 1, 2 ] 264506dc82SJohan Hovold 274506dc82SJohan Hovold "#size-cells": 284506dc82SJohan Hovold enum: [ 1, 2 ] 294506dc82SJohan Hovold 304506dc82SJohan Hovold ranges: true 314506dc82SJohan Hovold 324506dc82SJohan Hovold clocks: 334506dc82SJohan Hovold maxItems: 3 344506dc82SJohan Hovold 354506dc82SJohan Hovold clock-names: 364506dc82SJohan Hovold items: 374506dc82SJohan Hovold - const: aux 384506dc82SJohan Hovold - const: cfg_ahb 394506dc82SJohan Hovold - const: ref 404506dc82SJohan Hovold 414506dc82SJohan Hovold resets: 424506dc82SJohan Hovold maxItems: 3 434506dc82SJohan Hovold 444506dc82SJohan Hovold reset-names: 454506dc82SJohan Hovold items: 464506dc82SJohan Hovold - const: phy 474506dc82SJohan Hovold - const: common 484506dc82SJohan Hovold - const: cfg 494506dc82SJohan Hovold 504506dc82SJohan Hovold vdda-phy-supply: true 514506dc82SJohan Hovold 524506dc82SJohan Hovold vdda-pll-supply: true 534506dc82SJohan Hovold 544506dc82SJohan Hovold vddp-ref-clk-supply: true 554506dc82SJohan Hovold 564506dc82SJohan HovoldpatternProperties: 574506dc82SJohan Hovold "^phy@[0-9a-f]+$": 584506dc82SJohan Hovold type: object 594506dc82SJohan Hovold description: one child node per PHY provided by this block 60*ea188846SJohan Hovold properties: 61*ea188846SJohan Hovold reg: 62*ea188846SJohan Hovold items: 63*ea188846SJohan Hovold - description: TX 64*ea188846SJohan Hovold - description: RX 65*ea188846SJohan Hovold - description: PCS 66*ea188846SJohan Hovold 67*ea188846SJohan Hovold clocks: 68*ea188846SJohan Hovold items: 69*ea188846SJohan Hovold - description: PIPE clock 70*ea188846SJohan Hovold 71*ea188846SJohan Hovold clock-names: 72*ea188846SJohan Hovold items: 73*ea188846SJohan Hovold - enum: 74*ea188846SJohan Hovold - pipe0 75*ea188846SJohan Hovold - pipe1 76*ea188846SJohan Hovold - pipe2 77*ea188846SJohan Hovold 78*ea188846SJohan Hovold resets: 79*ea188846SJohan Hovold items: 80*ea188846SJohan Hovold - description: PHY (lane) reset 81*ea188846SJohan Hovold 82*ea188846SJohan Hovold reset-names: 83*ea188846SJohan Hovold items: 84*ea188846SJohan Hovold - enum: 85*ea188846SJohan Hovold - lane0 86*ea188846SJohan Hovold - lane1 87*ea188846SJohan Hovold - lane2 88*ea188846SJohan Hovold 89*ea188846SJohan Hovold "#clock-cells": 90*ea188846SJohan Hovold const: 0 91*ea188846SJohan Hovold 92*ea188846SJohan Hovold clock-output-names: 93*ea188846SJohan Hovold maxItems: 1 94*ea188846SJohan Hovold 95*ea188846SJohan Hovold "#phy-cells": 96*ea188846SJohan Hovold const: 0 97*ea188846SJohan Hovold 98*ea188846SJohan Hovold required: 99*ea188846SJohan Hovold - reg 100*ea188846SJohan Hovold - clocks 101*ea188846SJohan Hovold - clock-names 102*ea188846SJohan Hovold - resets 103*ea188846SJohan Hovold - reset-names 104*ea188846SJohan Hovold - "#clock-cells" 105*ea188846SJohan Hovold - clock-output-names 106*ea188846SJohan Hovold - "#phy-cells" 107*ea188846SJohan Hovold 108*ea188846SJohan Hovold additionalProperties: false 1094506dc82SJohan Hovold 1104506dc82SJohan Hovoldrequired: 1114506dc82SJohan Hovold - compatible 1124506dc82SJohan Hovold - reg 1134506dc82SJohan Hovold - "#address-cells" 1144506dc82SJohan Hovold - "#size-cells" 1154506dc82SJohan Hovold - ranges 1164506dc82SJohan Hovold - clocks 1174506dc82SJohan Hovold - clock-names 1184506dc82SJohan Hovold - resets 1194506dc82SJohan Hovold - reset-names 1204506dc82SJohan Hovold - vdda-phy-supply 1214506dc82SJohan Hovold - vdda-pll-supply 1224506dc82SJohan Hovold 1234506dc82SJohan HovoldadditionalProperties: false 1244506dc82SJohan Hovold 1254506dc82SJohan Hovoldexamples: 1264506dc82SJohan Hovold - | 1274506dc82SJohan Hovold #include <dt-bindings/clock/qcom,gcc-msm8996.h> 1284506dc82SJohan Hovold pcie_phy: phy-wrapper@34000 { 1294506dc82SJohan Hovold compatible = "qcom,msm8996-qmp-pcie-phy"; 1304506dc82SJohan Hovold reg = <0x34000 0x488>; 1314506dc82SJohan Hovold #address-cells = <1>; 1324506dc82SJohan Hovold #size-cells = <1>; 1334506dc82SJohan Hovold ranges = <0x0 0x34000 0x4000>; 1344506dc82SJohan Hovold 1354506dc82SJohan Hovold clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>, 1364506dc82SJohan Hovold <&gcc GCC_PCIE_PHY_CFG_AHB_CLK>, 1374506dc82SJohan Hovold <&gcc GCC_PCIE_CLKREF_CLK>; 1384506dc82SJohan Hovold clock-names = "aux", "cfg_ahb", "ref"; 1394506dc82SJohan Hovold 1404506dc82SJohan Hovold resets = <&gcc GCC_PCIE_PHY_BCR>, 1414506dc82SJohan Hovold <&gcc GCC_PCIE_PHY_COM_BCR>, 1424506dc82SJohan Hovold <&gcc GCC_PCIE_PHY_COM_NOCSR_BCR>; 1434506dc82SJohan Hovold reset-names = "phy", "common", "cfg"; 1444506dc82SJohan Hovold 1454506dc82SJohan Hovold vdda-phy-supply = <&vreg_l28a_0p925>; 1464506dc82SJohan Hovold vdda-pll-supply = <&vreg_l12a_1p8>; 1474506dc82SJohan Hovold 1484506dc82SJohan Hovold pciephy_0: phy@1000 { 1494506dc82SJohan Hovold reg = <0x1000 0x130>, 1504506dc82SJohan Hovold <0x1200 0x200>, 1514506dc82SJohan Hovold <0x1400 0x1dc>; 1524506dc82SJohan Hovold 1534506dc82SJohan Hovold clocks = <&gcc GCC_PCIE_0_PIPE_CLK>; 1544506dc82SJohan Hovold clock-names = "pipe0"; 1554506dc82SJohan Hovold resets = <&gcc GCC_PCIE_0_PHY_BCR>; 1564506dc82SJohan Hovold reset-names = "lane0"; 1574506dc82SJohan Hovold 1584506dc82SJohan Hovold #clock-cells = <0>; 1594506dc82SJohan Hovold clock-output-names = "pcie_0_pipe_clk_src"; 1604506dc82SJohan Hovold 1614506dc82SJohan Hovold #phy-cells = <0>; 1624506dc82SJohan Hovold }; 1634506dc82SJohan Hovold 1644506dc82SJohan Hovold pciephy_1: phy@2000 { 1654506dc82SJohan Hovold reg = <0x2000 0x130>, 1664506dc82SJohan Hovold <0x2200 0x200>, 1674506dc82SJohan Hovold <0x2400 0x1dc>; 1684506dc82SJohan Hovold 1694506dc82SJohan Hovold clocks = <&gcc GCC_PCIE_1_PIPE_CLK>; 1704506dc82SJohan Hovold clock-names = "pipe1"; 1714506dc82SJohan Hovold resets = <&gcc GCC_PCIE_1_PHY_BCR>; 1724506dc82SJohan Hovold reset-names = "lane1"; 1734506dc82SJohan Hovold 1744506dc82SJohan Hovold #clock-cells = <0>; 1754506dc82SJohan Hovold clock-output-names = "pcie_1_pipe_clk_src"; 1764506dc82SJohan Hovold 1774506dc82SJohan Hovold #phy-cells = <0>; 1784506dc82SJohan Hovold }; 1794506dc82SJohan Hovold 1804506dc82SJohan Hovold pciephy_2: phy@3000 { 1814506dc82SJohan Hovold reg = <0x3000 0x130>, 1824506dc82SJohan Hovold <0x3200 0x200>, 1834506dc82SJohan Hovold <0x3400 0x1dc>; 1844506dc82SJohan Hovold 1854506dc82SJohan Hovold clocks = <&gcc GCC_PCIE_2_PIPE_CLK>; 1864506dc82SJohan Hovold clock-names = "pipe2"; 1874506dc82SJohan Hovold resets = <&gcc GCC_PCIE_2_PHY_BCR>; 1884506dc82SJohan Hovold reset-names = "lane2"; 1894506dc82SJohan Hovold 1904506dc82SJohan Hovold #clock-cells = <0>; 1914506dc82SJohan Hovold clock-output-names = "pcie_2_pipe_clk_src"; 1924506dc82SJohan Hovold 1934506dc82SJohan Hovold #phy-cells = <0>; 1944506dc82SJohan Hovold }; 1954506dc82SJohan Hovold }; 196