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: 19fd2d4e4cSMrinmay Sarkar - qcom,sa8775p-qmp-gen4x2-pcie-phy 20fd2d4e4cSMrinmay Sarkar - qcom,sa8775p-qmp-gen4x4-pcie-phy 21*505fb254SDmitry Baryshkov - qcom,sc8180x-qmp-pcie-phy 2230638230SJohan Hovold - qcom,sc8280xp-qmp-gen3x1-pcie-phy 2330638230SJohan Hovold - qcom,sc8280xp-qmp-gen3x2-pcie-phy 2430638230SJohan Hovold - qcom,sc8280xp-qmp-gen3x4-pcie-phy 25*505fb254SDmitry Baryshkov - qcom,sdm845-qhp-pcie-phy 26*505fb254SDmitry Baryshkov - qcom,sdm845-qmp-pcie-phy 27*505fb254SDmitry Baryshkov - qcom,sdx55-qmp-pcie-phy 280d678713SRohit Agarwal - qcom,sdx65-qmp-gen4x2-pcie-phy 29*505fb254SDmitry Baryshkov - qcom,sm8250-qmp-gen3x1-pcie-phy 30*505fb254SDmitry Baryshkov - qcom,sm8250-qmp-gen3x2-pcie-phy 31*505fb254SDmitry Baryshkov - qcom,sm8250-qmp-modem-pcie-phy 3243a6a29bSDmitry Baryshkov - qcom,sm8350-qmp-gen3x1-pcie-phy 33*505fb254SDmitry Baryshkov - qcom,sm8450-qmp-gen3x1-pcie-phy 34*505fb254SDmitry Baryshkov - qcom,sm8450-qmp-gen4x2-pcie-phy 35496d068eSAbel Vesa - qcom,sm8550-qmp-gen3x2-pcie-phy 36496d068eSAbel Vesa - qcom,sm8550-qmp-gen4x2-pcie-phy 3730638230SJohan Hovold 3830638230SJohan Hovold reg: 3930638230SJohan Hovold minItems: 1 4030638230SJohan Hovold maxItems: 2 4130638230SJohan Hovold 4230638230SJohan Hovold clocks: 4343a6a29bSDmitry Baryshkov minItems: 5 44fd2d4e4cSMrinmay Sarkar maxItems: 7 4530638230SJohan Hovold 4630638230SJohan Hovold clock-names: 4743a6a29bSDmitry Baryshkov minItems: 5 4830638230SJohan Hovold items: 4930638230SJohan Hovold - const: aux 5030638230SJohan Hovold - const: cfg_ahb 5130638230SJohan Hovold - const: ref 52*505fb254SDmitry Baryshkov - enum: [rchng, refgen] 5330638230SJohan Hovold - const: pipe 5430638230SJohan Hovold - const: pipediv2 55fd2d4e4cSMrinmay Sarkar - const: phy_aux 5630638230SJohan Hovold 5730638230SJohan Hovold power-domains: 5830638230SJohan Hovold maxItems: 1 5930638230SJohan Hovold 6030638230SJohan Hovold resets: 61496d068eSAbel Vesa minItems: 1 62496d068eSAbel Vesa maxItems: 2 6330638230SJohan Hovold 6430638230SJohan Hovold reset-names: 65496d068eSAbel Vesa minItems: 1 6630638230SJohan Hovold items: 6730638230SJohan Hovold - const: phy 68496d068eSAbel Vesa - const: phy_nocsr 6930638230SJohan Hovold 7030638230SJohan Hovold vdda-phy-supply: true 7130638230SJohan Hovold 7230638230SJohan Hovold vdda-pll-supply: true 7330638230SJohan Hovold 74496d068eSAbel Vesa vdda-qref-supply: true 75496d068eSAbel Vesa 7630638230SJohan Hovold qcom,4ln-config-sel: 7730638230SJohan Hovold description: PCIe 4-lane configuration 7830638230SJohan Hovold $ref: /schemas/types.yaml#/definitions/phandle-array 7930638230SJohan Hovold items: 8030638230SJohan Hovold - items: 8130638230SJohan Hovold - description: phandle of TCSR syscon 8230638230SJohan Hovold - description: offset of PCIe 4-lane configuration register 8330638230SJohan Hovold - description: offset of configuration bit for this PHY 8430638230SJohan Hovold 8530638230SJohan Hovold "#clock-cells": 8630638230SJohan Hovold const: 0 8730638230SJohan Hovold 8830638230SJohan Hovold clock-output-names: 8930638230SJohan Hovold maxItems: 1 9030638230SJohan Hovold 9130638230SJohan Hovold "#phy-cells": 9230638230SJohan Hovold const: 0 9330638230SJohan Hovold 9430638230SJohan Hovoldrequired: 9530638230SJohan Hovold - compatible 9630638230SJohan Hovold - reg 9730638230SJohan Hovold - clocks 9830638230SJohan Hovold - clock-names 9930638230SJohan Hovold - resets 10030638230SJohan Hovold - reset-names 10130638230SJohan Hovold - vdda-phy-supply 10230638230SJohan Hovold - vdda-pll-supply 10330638230SJohan Hovold - "#clock-cells" 10430638230SJohan Hovold - clock-output-names 10530638230SJohan Hovold - "#phy-cells" 10630638230SJohan Hovold 10730638230SJohan HovoldadditionalProperties: false 10830638230SJohan Hovold 10930638230SJohan HovoldallOf: 11030638230SJohan Hovold - if: 11130638230SJohan Hovold properties: 11230638230SJohan Hovold compatible: 11330638230SJohan Hovold contains: 11430638230SJohan Hovold enum: 11530638230SJohan Hovold - qcom,sc8280xp-qmp-gen3x4-pcie-phy 11630638230SJohan Hovold then: 11730638230SJohan Hovold properties: 11830638230SJohan Hovold reg: 11930638230SJohan Hovold items: 12030638230SJohan Hovold - description: port a 12130638230SJohan Hovold - description: port b 12230638230SJohan Hovold required: 12330638230SJohan Hovold - qcom,4ln-config-sel 12430638230SJohan Hovold else: 12530638230SJohan Hovold properties: 12630638230SJohan Hovold reg: 12730638230SJohan Hovold maxItems: 1 12830638230SJohan Hovold 12943a6a29bSDmitry Baryshkov - if: 13043a6a29bSDmitry Baryshkov properties: 13143a6a29bSDmitry Baryshkov compatible: 13243a6a29bSDmitry Baryshkov contains: 13343a6a29bSDmitry Baryshkov enum: 134*505fb254SDmitry Baryshkov - qcom,sc8180x-qmp-pcie-phy 135*505fb254SDmitry Baryshkov - qcom,sdm845-qhp-pcie-phy 136*505fb254SDmitry Baryshkov - qcom,sdm845-qmp-pcie-phy 137*505fb254SDmitry Baryshkov - qcom,sdx55-qmp-pcie-phy 138*505fb254SDmitry Baryshkov - qcom,sm8250-qmp-gen3x1-pcie-phy 139*505fb254SDmitry Baryshkov - qcom,sm8250-qmp-gen3x2-pcie-phy 140*505fb254SDmitry Baryshkov - qcom,sm8250-qmp-modem-pcie-phy 14143a6a29bSDmitry Baryshkov - qcom,sm8350-qmp-gen3x1-pcie-phy 142*505fb254SDmitry Baryshkov - qcom,sm8450-qmp-gen3x1-pcie-phy 143*505fb254SDmitry Baryshkov - qcom,sm8450-qmp-gen3x2-pcie-phy 144496d068eSAbel Vesa - qcom,sm8550-qmp-gen3x2-pcie-phy 145496d068eSAbel Vesa - qcom,sm8550-qmp-gen4x2-pcie-phy 14643a6a29bSDmitry Baryshkov then: 14743a6a29bSDmitry Baryshkov properties: 14843a6a29bSDmitry Baryshkov clocks: 14943a6a29bSDmitry Baryshkov maxItems: 5 15043a6a29bSDmitry Baryshkov clock-names: 15143a6a29bSDmitry Baryshkov maxItems: 5 152*505fb254SDmitry Baryshkov 153*505fb254SDmitry Baryshkov - if: 154*505fb254SDmitry Baryshkov properties: 155*505fb254SDmitry Baryshkov compatible: 156*505fb254SDmitry Baryshkov contains: 157*505fb254SDmitry Baryshkov enum: 158*505fb254SDmitry Baryshkov - qcom,sc8280xp-qmp-gen3x1-pcie-phy 159*505fb254SDmitry Baryshkov - qcom,sc8280xp-qmp-gen3x2-pcie-phy 160*505fb254SDmitry Baryshkov - qcom,sc8280xp-qmp-gen3x4-pcie-phy 161*505fb254SDmitry Baryshkov then: 16243a6a29bSDmitry Baryshkov properties: 16343a6a29bSDmitry Baryshkov clocks: 16443a6a29bSDmitry Baryshkov minItems: 6 16543a6a29bSDmitry Baryshkov clock-names: 16643a6a29bSDmitry Baryshkov minItems: 6 16743a6a29bSDmitry Baryshkov 168496d068eSAbel Vesa - if: 169496d068eSAbel Vesa properties: 170496d068eSAbel Vesa compatible: 171496d068eSAbel Vesa contains: 172496d068eSAbel Vesa enum: 173fd2d4e4cSMrinmay Sarkar - qcom,sa8775p-qmp-gen4x2-pcie-phy 174fd2d4e4cSMrinmay Sarkar - qcom,sa8775p-qmp-gen4x4-pcie-phy 175fd2d4e4cSMrinmay Sarkar then: 176fd2d4e4cSMrinmay Sarkar properties: 177fd2d4e4cSMrinmay Sarkar clocks: 178fd2d4e4cSMrinmay Sarkar minItems: 7 179fd2d4e4cSMrinmay Sarkar clock-names: 180fd2d4e4cSMrinmay Sarkar minItems: 7 181fd2d4e4cSMrinmay Sarkar 182fd2d4e4cSMrinmay Sarkar - if: 183fd2d4e4cSMrinmay Sarkar properties: 184fd2d4e4cSMrinmay Sarkar compatible: 185fd2d4e4cSMrinmay Sarkar contains: 186fd2d4e4cSMrinmay Sarkar enum: 187496d068eSAbel Vesa - qcom,sm8550-qmp-gen4x2-pcie-phy 188496d068eSAbel Vesa then: 189496d068eSAbel Vesa properties: 190496d068eSAbel Vesa resets: 191496d068eSAbel Vesa minItems: 2 192496d068eSAbel Vesa reset-names: 193496d068eSAbel Vesa minItems: 2 194496d068eSAbel Vesa else: 195496d068eSAbel Vesa properties: 196496d068eSAbel Vesa resets: 197496d068eSAbel Vesa maxItems: 1 198496d068eSAbel Vesa reset-names: 199496d068eSAbel Vesa maxItems: 1 200496d068eSAbel Vesa 20130638230SJohan Hovoldexamples: 20230638230SJohan Hovold - | 20330638230SJohan Hovold #include <dt-bindings/clock/qcom,gcc-sc8280xp.h> 20430638230SJohan Hovold 20530638230SJohan Hovold pcie2b_phy: phy@1c18000 { 20630638230SJohan Hovold compatible = "qcom,sc8280xp-qmp-gen3x2-pcie-phy"; 20730638230SJohan Hovold reg = <0x01c18000 0x2000>; 20830638230SJohan Hovold 20930638230SJohan Hovold clocks = <&gcc GCC_PCIE_2B_AUX_CLK>, 21030638230SJohan Hovold <&gcc GCC_PCIE_2B_CFG_AHB_CLK>, 21130638230SJohan Hovold <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 21230638230SJohan Hovold <&gcc GCC_PCIE2B_PHY_RCHNG_CLK>, 21330638230SJohan Hovold <&gcc GCC_PCIE_2B_PIPE_CLK>, 21430638230SJohan Hovold <&gcc GCC_PCIE_2B_PIPEDIV2_CLK>; 21530638230SJohan Hovold clock-names = "aux", "cfg_ahb", "ref", "rchng", 21630638230SJohan Hovold "pipe", "pipediv2"; 21730638230SJohan Hovold 21830638230SJohan Hovold power-domains = <&gcc PCIE_2B_GDSC>; 21930638230SJohan Hovold 22030638230SJohan Hovold resets = <&gcc GCC_PCIE_2B_PHY_BCR>; 22130638230SJohan Hovold reset-names = "phy"; 22230638230SJohan Hovold 22330638230SJohan Hovold vdda-phy-supply = <&vreg_l6d>; 22430638230SJohan Hovold vdda-pll-supply = <&vreg_l4d>; 22530638230SJohan Hovold 22630638230SJohan Hovold #clock-cells = <0>; 22730638230SJohan Hovold clock-output-names = "pcie_2b_pipe_clk"; 22830638230SJohan Hovold 22930638230SJohan Hovold #phy-cells = <0>; 23030638230SJohan Hovold }; 23130638230SJohan Hovold 23230638230SJohan Hovold pcie2a_phy: phy@1c24000 { 23330638230SJohan Hovold compatible = "qcom,sc8280xp-qmp-gen3x4-pcie-phy"; 23430638230SJohan Hovold reg = <0x01c24000 0x2000>, <0x01c26000 0x2000>; 23530638230SJohan Hovold 23630638230SJohan Hovold clocks = <&gcc GCC_PCIE_2A_AUX_CLK>, 23730638230SJohan Hovold <&gcc GCC_PCIE_2A_CFG_AHB_CLK>, 23830638230SJohan Hovold <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 23930638230SJohan Hovold <&gcc GCC_PCIE2A_PHY_RCHNG_CLK>, 24030638230SJohan Hovold <&gcc GCC_PCIE_2A_PIPE_CLK>, 24130638230SJohan Hovold <&gcc GCC_PCIE_2A_PIPEDIV2_CLK>; 24230638230SJohan Hovold clock-names = "aux", "cfg_ahb", "ref", "rchng", 24330638230SJohan Hovold "pipe", "pipediv2"; 24430638230SJohan Hovold 24530638230SJohan Hovold power-domains = <&gcc PCIE_2A_GDSC>; 24630638230SJohan Hovold 24730638230SJohan Hovold resets = <&gcc GCC_PCIE_2A_PHY_BCR>; 24830638230SJohan Hovold reset-names = "phy"; 24930638230SJohan Hovold 25030638230SJohan Hovold vdda-phy-supply = <&vreg_l6d>; 25130638230SJohan Hovold vdda-pll-supply = <&vreg_l4d>; 25230638230SJohan Hovold 25330638230SJohan Hovold qcom,4ln-config-sel = <&tcsr 0xa044 0>; 25430638230SJohan Hovold 25530638230SJohan Hovold #clock-cells = <0>; 25630638230SJohan Hovold clock-output-names = "pcie_2a_pipe_clk"; 25730638230SJohan Hovold 25830638230SJohan Hovold #phy-cells = <0>; 25930638230SJohan Hovold }; 260