| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/phy/qcom,msm8996-qmp-pcie-phy.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Qualcomm QMP PHY controller (MSM8996 PCIe) |
| |
| maintainers: |
| - Vinod Koul <vkoul@kernel.org> |
| |
| description: |
| QMP PHY controller supports physical layer functionality for a number of |
| controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB. |
| |
| properties: |
| compatible: |
| const: qcom,msm8996-qmp-pcie-phy |
| |
| reg: |
| items: |
| - description: serdes |
| |
| "#address-cells": |
| enum: [ 1, 2 ] |
| |
| "#size-cells": |
| enum: [ 1, 2 ] |
| |
| ranges: true |
| |
| clocks: |
| maxItems: 3 |
| |
| clock-names: |
| items: |
| - const: aux |
| - const: cfg_ahb |
| - const: ref |
| |
| resets: |
| maxItems: 3 |
| |
| reset-names: |
| items: |
| - const: phy |
| - const: common |
| - const: cfg |
| |
| vdda-phy-supply: true |
| |
| vdda-pll-supply: true |
| |
| vddp-ref-clk-supply: true |
| |
| patternProperties: |
| "^phy@[0-9a-f]+$": |
| type: object |
| description: one child node per PHY provided by this block |
| properties: |
| reg: |
| items: |
| - description: TX |
| - description: RX |
| - description: PCS |
| |
| clocks: |
| items: |
| - description: PIPE clock |
| |
| clock-names: |
| deprecated: true |
| items: |
| - enum: |
| - pipe0 |
| - pipe1 |
| - pipe2 |
| |
| resets: |
| items: |
| - description: PHY reset |
| |
| reset-names: |
| deprecated: true |
| items: |
| - enum: |
| - lane0 |
| - lane1 |
| - lane2 |
| |
| "#clock-cells": |
| const: 0 |
| |
| clock-output-names: |
| maxItems: 1 |
| |
| "#phy-cells": |
| const: 0 |
| |
| required: |
| - reg |
| - clocks |
| - resets |
| - "#clock-cells" |
| - clock-output-names |
| - "#phy-cells" |
| |
| additionalProperties: false |
| |
| required: |
| - compatible |
| - reg |
| - "#address-cells" |
| - "#size-cells" |
| - ranges |
| - clocks |
| - clock-names |
| - resets |
| - reset-names |
| - vdda-phy-supply |
| - vdda-pll-supply |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/qcom,gcc-msm8996.h> |
| pcie_phy: phy-wrapper@34000 { |
| compatible = "qcom,msm8996-qmp-pcie-phy"; |
| reg = <0x34000 0x488>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| ranges = <0x0 0x34000 0x4000>; |
| |
| clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>, |
| <&gcc GCC_PCIE_PHY_CFG_AHB_CLK>, |
| <&gcc GCC_PCIE_CLKREF_CLK>; |
| clock-names = "aux", "cfg_ahb", "ref"; |
| |
| resets = <&gcc GCC_PCIE_PHY_BCR>, |
| <&gcc GCC_PCIE_PHY_COM_BCR>, |
| <&gcc GCC_PCIE_PHY_COM_NOCSR_BCR>; |
| reset-names = "phy", "common", "cfg"; |
| |
| vdda-phy-supply = <&vreg_l28a_0p925>; |
| vdda-pll-supply = <&vreg_l12a_1p8>; |
| |
| pciephy_0: phy@1000 { |
| reg = <0x1000 0x130>, |
| <0x1200 0x200>, |
| <0x1400 0x1dc>; |
| |
| clocks = <&gcc GCC_PCIE_0_PIPE_CLK>; |
| resets = <&gcc GCC_PCIE_0_PHY_BCR>; |
| |
| #clock-cells = <0>; |
| clock-output-names = "pcie_0_pipe_clk_src"; |
| |
| #phy-cells = <0>; |
| }; |
| |
| pciephy_1: phy@2000 { |
| reg = <0x2000 0x130>, |
| <0x2200 0x200>, |
| <0x2400 0x1dc>; |
| |
| clocks = <&gcc GCC_PCIE_1_PIPE_CLK>; |
| resets = <&gcc GCC_PCIE_1_PHY_BCR>; |
| |
| #clock-cells = <0>; |
| clock-output-names = "pcie_1_pipe_clk_src"; |
| |
| #phy-cells = <0>; |
| }; |
| |
| pciephy_2: phy@3000 { |
| reg = <0x3000 0x130>, |
| <0x3200 0x200>, |
| <0x3400 0x1dc>; |
| |
| clocks = <&gcc GCC_PCIE_2_PIPE_CLK>; |
| resets = <&gcc GCC_PCIE_2_PHY_BCR>; |
| |
| #clock-cells = <0>; |
| clock-output-names = "pcie_2_pipe_clk_src"; |
| |
| #phy-cells = <0>; |
| }; |
| }; |