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 22*43a6a29bSDmitry Baryshkov - qcom,sm8350-qmp-gen3x1-pcie-phy 2330638230SJohan Hovold 2430638230SJohan Hovold reg: 2530638230SJohan Hovold minItems: 1 2630638230SJohan Hovold maxItems: 2 2730638230SJohan Hovold 2830638230SJohan Hovold clocks: 29*43a6a29bSDmitry Baryshkov minItems: 5 3030638230SJohan Hovold maxItems: 6 3130638230SJohan Hovold 3230638230SJohan Hovold clock-names: 33*43a6a29bSDmitry Baryshkov minItems: 5 3430638230SJohan Hovold items: 3530638230SJohan Hovold - const: aux 3630638230SJohan Hovold - const: cfg_ahb 3730638230SJohan Hovold - const: ref 3830638230SJohan Hovold - const: rchng 3930638230SJohan Hovold - const: pipe 4030638230SJohan Hovold - const: pipediv2 4130638230SJohan Hovold 4230638230SJohan Hovold power-domains: 4330638230SJohan Hovold maxItems: 1 4430638230SJohan Hovold 4530638230SJohan Hovold resets: 4630638230SJohan Hovold maxItems: 1 4730638230SJohan Hovold 4830638230SJohan Hovold reset-names: 4930638230SJohan Hovold items: 5030638230SJohan Hovold - const: phy 5130638230SJohan Hovold 5230638230SJohan Hovold vdda-phy-supply: true 5330638230SJohan Hovold 5430638230SJohan Hovold vdda-pll-supply: true 5530638230SJohan Hovold 5630638230SJohan Hovold qcom,4ln-config-sel: 5730638230SJohan Hovold description: PCIe 4-lane configuration 5830638230SJohan Hovold $ref: /schemas/types.yaml#/definitions/phandle-array 5930638230SJohan Hovold items: 6030638230SJohan Hovold - items: 6130638230SJohan Hovold - description: phandle of TCSR syscon 6230638230SJohan Hovold - description: offset of PCIe 4-lane configuration register 6330638230SJohan Hovold - description: offset of configuration bit for this PHY 6430638230SJohan Hovold 6530638230SJohan Hovold "#clock-cells": 6630638230SJohan Hovold const: 0 6730638230SJohan Hovold 6830638230SJohan Hovold clock-output-names: 6930638230SJohan Hovold maxItems: 1 7030638230SJohan Hovold 7130638230SJohan Hovold "#phy-cells": 7230638230SJohan Hovold const: 0 7330638230SJohan Hovold 7430638230SJohan Hovoldrequired: 7530638230SJohan Hovold - compatible 7630638230SJohan Hovold - reg 7730638230SJohan Hovold - clocks 7830638230SJohan Hovold - clock-names 7930638230SJohan Hovold - power-domains 8030638230SJohan Hovold - resets 8130638230SJohan Hovold - reset-names 8230638230SJohan Hovold - vdda-phy-supply 8330638230SJohan Hovold - vdda-pll-supply 8430638230SJohan Hovold - "#clock-cells" 8530638230SJohan Hovold - clock-output-names 8630638230SJohan Hovold - "#phy-cells" 8730638230SJohan Hovold 8830638230SJohan HovoldadditionalProperties: false 8930638230SJohan Hovold 9030638230SJohan HovoldallOf: 9130638230SJohan Hovold - if: 9230638230SJohan Hovold properties: 9330638230SJohan Hovold compatible: 9430638230SJohan Hovold contains: 9530638230SJohan Hovold enum: 9630638230SJohan Hovold - qcom,sc8280xp-qmp-gen3x4-pcie-phy 9730638230SJohan Hovold then: 9830638230SJohan Hovold properties: 9930638230SJohan Hovold reg: 10030638230SJohan Hovold items: 10130638230SJohan Hovold - description: port a 10230638230SJohan Hovold - description: port b 10330638230SJohan Hovold required: 10430638230SJohan Hovold - qcom,4ln-config-sel 10530638230SJohan Hovold else: 10630638230SJohan Hovold properties: 10730638230SJohan Hovold reg: 10830638230SJohan Hovold maxItems: 1 10930638230SJohan Hovold 110*43a6a29bSDmitry Baryshkov - if: 111*43a6a29bSDmitry Baryshkov properties: 112*43a6a29bSDmitry Baryshkov compatible: 113*43a6a29bSDmitry Baryshkov contains: 114*43a6a29bSDmitry Baryshkov enum: 115*43a6a29bSDmitry Baryshkov - qcom,sm8350-qmp-gen3x1-pcie-phy 116*43a6a29bSDmitry Baryshkov then: 117*43a6a29bSDmitry Baryshkov properties: 118*43a6a29bSDmitry Baryshkov clocks: 119*43a6a29bSDmitry Baryshkov maxItems: 5 120*43a6a29bSDmitry Baryshkov clock-names: 121*43a6a29bSDmitry Baryshkov maxItems: 5 122*43a6a29bSDmitry Baryshkov else: 123*43a6a29bSDmitry Baryshkov properties: 124*43a6a29bSDmitry Baryshkov clocks: 125*43a6a29bSDmitry Baryshkov minItems: 6 126*43a6a29bSDmitry Baryshkov clock-names: 127*43a6a29bSDmitry Baryshkov minItems: 6 128*43a6a29bSDmitry Baryshkov 12930638230SJohan Hovoldexamples: 13030638230SJohan Hovold - | 13130638230SJohan Hovold #include <dt-bindings/clock/qcom,gcc-sc8280xp.h> 13230638230SJohan Hovold 13330638230SJohan Hovold pcie2b_phy: phy@1c18000 { 13430638230SJohan Hovold compatible = "qcom,sc8280xp-qmp-gen3x2-pcie-phy"; 13530638230SJohan Hovold reg = <0x01c18000 0x2000>; 13630638230SJohan Hovold 13730638230SJohan Hovold clocks = <&gcc GCC_PCIE_2B_AUX_CLK>, 13830638230SJohan Hovold <&gcc GCC_PCIE_2B_CFG_AHB_CLK>, 13930638230SJohan Hovold <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 14030638230SJohan Hovold <&gcc GCC_PCIE2B_PHY_RCHNG_CLK>, 14130638230SJohan Hovold <&gcc GCC_PCIE_2B_PIPE_CLK>, 14230638230SJohan Hovold <&gcc GCC_PCIE_2B_PIPEDIV2_CLK>; 14330638230SJohan Hovold clock-names = "aux", "cfg_ahb", "ref", "rchng", 14430638230SJohan Hovold "pipe", "pipediv2"; 14530638230SJohan Hovold 14630638230SJohan Hovold power-domains = <&gcc PCIE_2B_GDSC>; 14730638230SJohan Hovold 14830638230SJohan Hovold resets = <&gcc GCC_PCIE_2B_PHY_BCR>; 14930638230SJohan Hovold reset-names = "phy"; 15030638230SJohan Hovold 15130638230SJohan Hovold vdda-phy-supply = <&vreg_l6d>; 15230638230SJohan Hovold vdda-pll-supply = <&vreg_l4d>; 15330638230SJohan Hovold 15430638230SJohan Hovold #clock-cells = <0>; 15530638230SJohan Hovold clock-output-names = "pcie_2b_pipe_clk"; 15630638230SJohan Hovold 15730638230SJohan Hovold #phy-cells = <0>; 15830638230SJohan Hovold }; 15930638230SJohan Hovold 16030638230SJohan Hovold pcie2a_phy: phy@1c24000 { 16130638230SJohan Hovold compatible = "qcom,sc8280xp-qmp-gen3x4-pcie-phy"; 16230638230SJohan Hovold reg = <0x01c24000 0x2000>, <0x01c26000 0x2000>; 16330638230SJohan Hovold 16430638230SJohan Hovold clocks = <&gcc GCC_PCIE_2A_AUX_CLK>, 16530638230SJohan Hovold <&gcc GCC_PCIE_2A_CFG_AHB_CLK>, 16630638230SJohan Hovold <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 16730638230SJohan Hovold <&gcc GCC_PCIE2A_PHY_RCHNG_CLK>, 16830638230SJohan Hovold <&gcc GCC_PCIE_2A_PIPE_CLK>, 16930638230SJohan Hovold <&gcc GCC_PCIE_2A_PIPEDIV2_CLK>; 17030638230SJohan Hovold clock-names = "aux", "cfg_ahb", "ref", "rchng", 17130638230SJohan Hovold "pipe", "pipediv2"; 17230638230SJohan Hovold 17330638230SJohan Hovold power-domains = <&gcc PCIE_2A_GDSC>; 17430638230SJohan Hovold 17530638230SJohan Hovold resets = <&gcc GCC_PCIE_2A_PHY_BCR>; 17630638230SJohan Hovold reset-names = "phy"; 17730638230SJohan Hovold 17830638230SJohan Hovold vdda-phy-supply = <&vreg_l6d>; 17930638230SJohan Hovold vdda-pll-supply = <&vreg_l4d>; 18030638230SJohan Hovold 18130638230SJohan Hovold qcom,4ln-config-sel = <&tcsr 0xa044 0>; 18230638230SJohan Hovold 18330638230SJohan Hovold #clock-cells = <0>; 18430638230SJohan Hovold clock-output-names = "pcie_2a_pipe_clk"; 18530638230SJohan Hovold 18630638230SJohan Hovold #phy-cells = <0>; 18730638230SJohan Hovold }; 188