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 60ea188846SJohan Hovold properties: 61ea188846SJohan Hovold reg: 62ea188846SJohan Hovold items: 63ea188846SJohan Hovold - description: TX 64ea188846SJohan Hovold - description: RX 65ea188846SJohan Hovold - description: PCS 66ea188846SJohan Hovold 67ea188846SJohan Hovold clocks: 68ea188846SJohan Hovold items: 69ea188846SJohan Hovold - description: PIPE clock 70ea188846SJohan Hovold 71ea188846SJohan Hovold clock-names: 72*dd346f5aSJohan Hovold deprecated: true 73ea188846SJohan Hovold items: 74ea188846SJohan Hovold - enum: 75ea188846SJohan Hovold - pipe0 76ea188846SJohan Hovold - pipe1 77ea188846SJohan Hovold - pipe2 78ea188846SJohan Hovold 79ea188846SJohan Hovold resets: 80ea188846SJohan Hovold items: 81ea188846SJohan Hovold - description: PHY (lane) reset 82ea188846SJohan Hovold 83ea188846SJohan Hovold reset-names: 84ea188846SJohan Hovold items: 85ea188846SJohan Hovold - enum: 86ea188846SJohan Hovold - lane0 87ea188846SJohan Hovold - lane1 88ea188846SJohan Hovold - lane2 89ea188846SJohan Hovold 90ea188846SJohan Hovold "#clock-cells": 91ea188846SJohan Hovold const: 0 92ea188846SJohan Hovold 93ea188846SJohan Hovold clock-output-names: 94ea188846SJohan Hovold maxItems: 1 95ea188846SJohan Hovold 96ea188846SJohan Hovold "#phy-cells": 97ea188846SJohan Hovold const: 0 98ea188846SJohan Hovold 99ea188846SJohan Hovold required: 100ea188846SJohan Hovold - reg 101ea188846SJohan Hovold - clocks 102ea188846SJohan Hovold - resets 103ea188846SJohan Hovold - reset-names 104ea188846SJohan Hovold - "#clock-cells" 105ea188846SJohan Hovold - clock-output-names 106ea188846SJohan Hovold - "#phy-cells" 107ea188846SJohan Hovold 108ea188846SJohan 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 resets = <&gcc GCC_PCIE_0_PHY_BCR>; 1554506dc82SJohan Hovold reset-names = "lane0"; 1564506dc82SJohan Hovold 1574506dc82SJohan Hovold #clock-cells = <0>; 1584506dc82SJohan Hovold clock-output-names = "pcie_0_pipe_clk_src"; 1594506dc82SJohan Hovold 1604506dc82SJohan Hovold #phy-cells = <0>; 1614506dc82SJohan Hovold }; 1624506dc82SJohan Hovold 1634506dc82SJohan Hovold pciephy_1: phy@2000 { 1644506dc82SJohan Hovold reg = <0x2000 0x130>, 1654506dc82SJohan Hovold <0x2200 0x200>, 1664506dc82SJohan Hovold <0x2400 0x1dc>; 1674506dc82SJohan Hovold 1684506dc82SJohan Hovold clocks = <&gcc GCC_PCIE_1_PIPE_CLK>; 1694506dc82SJohan Hovold resets = <&gcc GCC_PCIE_1_PHY_BCR>; 1704506dc82SJohan Hovold reset-names = "lane1"; 1714506dc82SJohan Hovold 1724506dc82SJohan Hovold #clock-cells = <0>; 1734506dc82SJohan Hovold clock-output-names = "pcie_1_pipe_clk_src"; 1744506dc82SJohan Hovold 1754506dc82SJohan Hovold #phy-cells = <0>; 1764506dc82SJohan Hovold }; 1774506dc82SJohan Hovold 1784506dc82SJohan Hovold pciephy_2: phy@3000 { 1794506dc82SJohan Hovold reg = <0x3000 0x130>, 1804506dc82SJohan Hovold <0x3200 0x200>, 1814506dc82SJohan Hovold <0x3400 0x1dc>; 1824506dc82SJohan Hovold 1834506dc82SJohan Hovold clocks = <&gcc GCC_PCIE_2_PIPE_CLK>; 1844506dc82SJohan Hovold resets = <&gcc GCC_PCIE_2_PHY_BCR>; 1854506dc82SJohan Hovold reset-names = "lane2"; 1864506dc82SJohan Hovold 1874506dc82SJohan Hovold #clock-cells = <0>; 1884506dc82SJohan Hovold clock-output-names = "pcie_2_pipe_clk_src"; 1894506dc82SJohan Hovold 1904506dc82SJohan Hovold #phy-cells = <0>; 1914506dc82SJohan Hovold }; 1924506dc82SJohan Hovold }; 193