130638230SJohan Hovold# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 230638230SJohan Hovold%YAML 1.2 330638230SJohan Hovold--- 430638230SJohan Hovold$id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-pcie-phy.yaml# 530638230SJohan Hovold$schema: http://devicetree.org/meta-schemas/core.yaml# 630638230SJohan Hovold 730638230SJohan Hovoldtitle: Qualcomm QMP PHY controller (PCIe, SC8280XP) 830638230SJohan Hovold 930638230SJohan Hovoldmaintainers: 1030638230SJohan Hovold - Vinod Koul <vkoul@kernel.org> 1130638230SJohan Hovold 1230638230SJohan Hovolddescription: 1330638230SJohan Hovold The QMP PHY controller supports physical layer functionality for a number of 1430638230SJohan Hovold controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB. 1530638230SJohan Hovold 1630638230SJohan Hovoldproperties: 1730638230SJohan Hovold compatible: 1830638230SJohan Hovold enum: 1930638230SJohan Hovold - qcom,sc8280xp-qmp-gen3x1-pcie-phy 2030638230SJohan Hovold - qcom,sc8280xp-qmp-gen3x2-pcie-phy 2130638230SJohan Hovold - qcom,sc8280xp-qmp-gen3x4-pcie-phy 2243a6a29bSDmitry Baryshkov - qcom,sm8350-qmp-gen3x1-pcie-phy 23*496d068eSAbel Vesa - qcom,sm8550-qmp-gen3x2-pcie-phy 24*496d068eSAbel Vesa - qcom,sm8550-qmp-gen4x2-pcie-phy 2530638230SJohan Hovold 2630638230SJohan Hovold reg: 2730638230SJohan Hovold minItems: 1 2830638230SJohan Hovold maxItems: 2 2930638230SJohan Hovold 3030638230SJohan Hovold clocks: 3143a6a29bSDmitry Baryshkov minItems: 5 3230638230SJohan Hovold maxItems: 6 3330638230SJohan Hovold 3430638230SJohan Hovold clock-names: 3543a6a29bSDmitry Baryshkov minItems: 5 3630638230SJohan Hovold items: 3730638230SJohan Hovold - const: aux 3830638230SJohan Hovold - const: cfg_ahb 3930638230SJohan Hovold - const: ref 4030638230SJohan Hovold - const: rchng 4130638230SJohan Hovold - const: pipe 4230638230SJohan Hovold - const: pipediv2 4330638230SJohan Hovold 4430638230SJohan Hovold power-domains: 4530638230SJohan Hovold maxItems: 1 4630638230SJohan Hovold 4730638230SJohan Hovold resets: 48*496d068eSAbel Vesa minItems: 1 49*496d068eSAbel Vesa maxItems: 2 5030638230SJohan Hovold 5130638230SJohan Hovold reset-names: 52*496d068eSAbel Vesa minItems: 1 5330638230SJohan Hovold items: 5430638230SJohan Hovold - const: phy 55*496d068eSAbel Vesa - const: phy_nocsr 5630638230SJohan Hovold 5730638230SJohan Hovold vdda-phy-supply: true 5830638230SJohan Hovold 5930638230SJohan Hovold vdda-pll-supply: true 6030638230SJohan Hovold 61*496d068eSAbel Vesa vdda-qref-supply: true 62*496d068eSAbel Vesa 6330638230SJohan Hovold qcom,4ln-config-sel: 6430638230SJohan Hovold description: PCIe 4-lane configuration 6530638230SJohan Hovold $ref: /schemas/types.yaml#/definitions/phandle-array 6630638230SJohan Hovold items: 6730638230SJohan Hovold - items: 6830638230SJohan Hovold - description: phandle of TCSR syscon 6930638230SJohan Hovold - description: offset of PCIe 4-lane configuration register 7030638230SJohan Hovold - description: offset of configuration bit for this PHY 7130638230SJohan Hovold 7230638230SJohan Hovold "#clock-cells": 7330638230SJohan Hovold const: 0 7430638230SJohan Hovold 7530638230SJohan Hovold clock-output-names: 7630638230SJohan Hovold maxItems: 1 7730638230SJohan Hovold 7830638230SJohan Hovold "#phy-cells": 7930638230SJohan Hovold const: 0 8030638230SJohan Hovold 8130638230SJohan Hovoldrequired: 8230638230SJohan Hovold - compatible 8330638230SJohan Hovold - reg 8430638230SJohan Hovold - clocks 8530638230SJohan Hovold - clock-names 8630638230SJohan Hovold - power-domains 8730638230SJohan Hovold - resets 8830638230SJohan Hovold - reset-names 8930638230SJohan Hovold - vdda-phy-supply 9030638230SJohan Hovold - vdda-pll-supply 9130638230SJohan Hovold - "#clock-cells" 9230638230SJohan Hovold - clock-output-names 9330638230SJohan Hovold - "#phy-cells" 9430638230SJohan Hovold 9530638230SJohan HovoldadditionalProperties: false 9630638230SJohan Hovold 9730638230SJohan HovoldallOf: 9830638230SJohan Hovold - if: 9930638230SJohan Hovold properties: 10030638230SJohan Hovold compatible: 10130638230SJohan Hovold contains: 10230638230SJohan Hovold enum: 10330638230SJohan Hovold - qcom,sc8280xp-qmp-gen3x4-pcie-phy 10430638230SJohan Hovold then: 10530638230SJohan Hovold properties: 10630638230SJohan Hovold reg: 10730638230SJohan Hovold items: 10830638230SJohan Hovold - description: port a 10930638230SJohan Hovold - description: port b 11030638230SJohan Hovold required: 11130638230SJohan Hovold - qcom,4ln-config-sel 11230638230SJohan Hovold else: 11330638230SJohan Hovold properties: 11430638230SJohan Hovold reg: 11530638230SJohan Hovold maxItems: 1 11630638230SJohan Hovold 11743a6a29bSDmitry Baryshkov - if: 11843a6a29bSDmitry Baryshkov properties: 11943a6a29bSDmitry Baryshkov compatible: 12043a6a29bSDmitry Baryshkov contains: 12143a6a29bSDmitry Baryshkov enum: 12243a6a29bSDmitry Baryshkov - qcom,sm8350-qmp-gen3x1-pcie-phy 123*496d068eSAbel Vesa - qcom,sm8550-qmp-gen3x2-pcie-phy 124*496d068eSAbel Vesa - qcom,sm8550-qmp-gen4x2-pcie-phy 12543a6a29bSDmitry Baryshkov then: 12643a6a29bSDmitry Baryshkov properties: 12743a6a29bSDmitry Baryshkov clocks: 12843a6a29bSDmitry Baryshkov maxItems: 5 12943a6a29bSDmitry Baryshkov clock-names: 13043a6a29bSDmitry Baryshkov maxItems: 5 13143a6a29bSDmitry Baryshkov else: 13243a6a29bSDmitry Baryshkov properties: 13343a6a29bSDmitry Baryshkov clocks: 13443a6a29bSDmitry Baryshkov minItems: 6 13543a6a29bSDmitry Baryshkov clock-names: 13643a6a29bSDmitry Baryshkov minItems: 6 13743a6a29bSDmitry Baryshkov 138*496d068eSAbel Vesa - if: 139*496d068eSAbel Vesa properties: 140*496d068eSAbel Vesa compatible: 141*496d068eSAbel Vesa contains: 142*496d068eSAbel Vesa enum: 143*496d068eSAbel Vesa - qcom,sm8550-qmp-gen4x2-pcie-phy 144*496d068eSAbel Vesa then: 145*496d068eSAbel Vesa properties: 146*496d068eSAbel Vesa resets: 147*496d068eSAbel Vesa minItems: 2 148*496d068eSAbel Vesa reset-names: 149*496d068eSAbel Vesa minItems: 2 150*496d068eSAbel Vesa else: 151*496d068eSAbel Vesa properties: 152*496d068eSAbel Vesa resets: 153*496d068eSAbel Vesa maxItems: 1 154*496d068eSAbel Vesa reset-names: 155*496d068eSAbel Vesa maxItems: 1 156*496d068eSAbel Vesa 15730638230SJohan Hovoldexamples: 15830638230SJohan Hovold - | 15930638230SJohan Hovold #include <dt-bindings/clock/qcom,gcc-sc8280xp.h> 16030638230SJohan Hovold 16130638230SJohan Hovold pcie2b_phy: phy@1c18000 { 16230638230SJohan Hovold compatible = "qcom,sc8280xp-qmp-gen3x2-pcie-phy"; 16330638230SJohan Hovold reg = <0x01c18000 0x2000>; 16430638230SJohan Hovold 16530638230SJohan Hovold clocks = <&gcc GCC_PCIE_2B_AUX_CLK>, 16630638230SJohan Hovold <&gcc GCC_PCIE_2B_CFG_AHB_CLK>, 16730638230SJohan Hovold <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 16830638230SJohan Hovold <&gcc GCC_PCIE2B_PHY_RCHNG_CLK>, 16930638230SJohan Hovold <&gcc GCC_PCIE_2B_PIPE_CLK>, 17030638230SJohan Hovold <&gcc GCC_PCIE_2B_PIPEDIV2_CLK>; 17130638230SJohan Hovold clock-names = "aux", "cfg_ahb", "ref", "rchng", 17230638230SJohan Hovold "pipe", "pipediv2"; 17330638230SJohan Hovold 17430638230SJohan Hovold power-domains = <&gcc PCIE_2B_GDSC>; 17530638230SJohan Hovold 17630638230SJohan Hovold resets = <&gcc GCC_PCIE_2B_PHY_BCR>; 17730638230SJohan Hovold reset-names = "phy"; 17830638230SJohan Hovold 17930638230SJohan Hovold vdda-phy-supply = <&vreg_l6d>; 18030638230SJohan Hovold vdda-pll-supply = <&vreg_l4d>; 18130638230SJohan Hovold 18230638230SJohan Hovold #clock-cells = <0>; 18330638230SJohan Hovold clock-output-names = "pcie_2b_pipe_clk"; 18430638230SJohan Hovold 18530638230SJohan Hovold #phy-cells = <0>; 18630638230SJohan Hovold }; 18730638230SJohan Hovold 18830638230SJohan Hovold pcie2a_phy: phy@1c24000 { 18930638230SJohan Hovold compatible = "qcom,sc8280xp-qmp-gen3x4-pcie-phy"; 19030638230SJohan Hovold reg = <0x01c24000 0x2000>, <0x01c26000 0x2000>; 19130638230SJohan Hovold 19230638230SJohan Hovold clocks = <&gcc GCC_PCIE_2A_AUX_CLK>, 19330638230SJohan Hovold <&gcc GCC_PCIE_2A_CFG_AHB_CLK>, 19430638230SJohan Hovold <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 19530638230SJohan Hovold <&gcc GCC_PCIE2A_PHY_RCHNG_CLK>, 19630638230SJohan Hovold <&gcc GCC_PCIE_2A_PIPE_CLK>, 19730638230SJohan Hovold <&gcc GCC_PCIE_2A_PIPEDIV2_CLK>; 19830638230SJohan Hovold clock-names = "aux", "cfg_ahb", "ref", "rchng", 19930638230SJohan Hovold "pipe", "pipediv2"; 20030638230SJohan Hovold 20130638230SJohan Hovold power-domains = <&gcc PCIE_2A_GDSC>; 20230638230SJohan Hovold 20330638230SJohan Hovold resets = <&gcc GCC_PCIE_2A_PHY_BCR>; 20430638230SJohan Hovold reset-names = "phy"; 20530638230SJohan Hovold 20630638230SJohan Hovold vdda-phy-supply = <&vreg_l6d>; 20730638230SJohan Hovold vdda-pll-supply = <&vreg_l4d>; 20830638230SJohan Hovold 20930638230SJohan Hovold qcom,4ln-config-sel = <&tcsr 0xa044 0>; 21030638230SJohan Hovold 21130638230SJohan Hovold #clock-cells = <0>; 21230638230SJohan Hovold clock-output-names = "pcie_2a_pipe_clk"; 21330638230SJohan Hovold 21430638230SJohan Hovold #phy-cells = <0>; 21530638230SJohan Hovold }; 216