1*8bab661aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*8bab661aSEmmanuel Vadot%YAML 1.2 3*8bab661aSEmmanuel Vadot--- 4*8bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/phy/qcom,sc8280xp-qmp-pcie-phy.yaml# 5*8bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8bab661aSEmmanuel Vadot 7*8bab661aSEmmanuel Vadottitle: Qualcomm QMP PHY controller (PCIe, SC8280XP) 8*8bab661aSEmmanuel Vadot 9*8bab661aSEmmanuel Vadotmaintainers: 10*8bab661aSEmmanuel Vadot - Vinod Koul <vkoul@kernel.org> 11*8bab661aSEmmanuel Vadot 12*8bab661aSEmmanuel Vadotdescription: 13*8bab661aSEmmanuel Vadot The QMP PHY controller supports physical layer functionality for a number of 14*8bab661aSEmmanuel Vadot controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB. 15*8bab661aSEmmanuel Vadot 16*8bab661aSEmmanuel Vadotproperties: 17*8bab661aSEmmanuel Vadot compatible: 18*8bab661aSEmmanuel Vadot enum: 19*8bab661aSEmmanuel Vadot - qcom,sc8280xp-qmp-gen3x1-pcie-phy 20*8bab661aSEmmanuel Vadot - qcom,sc8280xp-qmp-gen3x2-pcie-phy 21*8bab661aSEmmanuel Vadot - qcom,sc8280xp-qmp-gen3x4-pcie-phy 22*8bab661aSEmmanuel Vadot 23*8bab661aSEmmanuel Vadot reg: 24*8bab661aSEmmanuel Vadot minItems: 1 25*8bab661aSEmmanuel Vadot maxItems: 2 26*8bab661aSEmmanuel Vadot 27*8bab661aSEmmanuel Vadot clocks: 28*8bab661aSEmmanuel Vadot maxItems: 6 29*8bab661aSEmmanuel Vadot 30*8bab661aSEmmanuel Vadot clock-names: 31*8bab661aSEmmanuel Vadot items: 32*8bab661aSEmmanuel Vadot - const: aux 33*8bab661aSEmmanuel Vadot - const: cfg_ahb 34*8bab661aSEmmanuel Vadot - const: ref 35*8bab661aSEmmanuel Vadot - const: rchng 36*8bab661aSEmmanuel Vadot - const: pipe 37*8bab661aSEmmanuel Vadot - const: pipediv2 38*8bab661aSEmmanuel Vadot 39*8bab661aSEmmanuel Vadot power-domains: 40*8bab661aSEmmanuel Vadot maxItems: 1 41*8bab661aSEmmanuel Vadot 42*8bab661aSEmmanuel Vadot resets: 43*8bab661aSEmmanuel Vadot maxItems: 1 44*8bab661aSEmmanuel Vadot 45*8bab661aSEmmanuel Vadot reset-names: 46*8bab661aSEmmanuel Vadot items: 47*8bab661aSEmmanuel Vadot - const: phy 48*8bab661aSEmmanuel Vadot 49*8bab661aSEmmanuel Vadot vdda-phy-supply: true 50*8bab661aSEmmanuel Vadot 51*8bab661aSEmmanuel Vadot vdda-pll-supply: true 52*8bab661aSEmmanuel Vadot 53*8bab661aSEmmanuel Vadot qcom,4ln-config-sel: 54*8bab661aSEmmanuel Vadot description: PCIe 4-lane configuration 55*8bab661aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 56*8bab661aSEmmanuel Vadot items: 57*8bab661aSEmmanuel Vadot - items: 58*8bab661aSEmmanuel Vadot - description: phandle of TCSR syscon 59*8bab661aSEmmanuel Vadot - description: offset of PCIe 4-lane configuration register 60*8bab661aSEmmanuel Vadot - description: offset of configuration bit for this PHY 61*8bab661aSEmmanuel Vadot 62*8bab661aSEmmanuel Vadot "#clock-cells": 63*8bab661aSEmmanuel Vadot const: 0 64*8bab661aSEmmanuel Vadot 65*8bab661aSEmmanuel Vadot clock-output-names: 66*8bab661aSEmmanuel Vadot maxItems: 1 67*8bab661aSEmmanuel Vadot 68*8bab661aSEmmanuel Vadot "#phy-cells": 69*8bab661aSEmmanuel Vadot const: 0 70*8bab661aSEmmanuel Vadot 71*8bab661aSEmmanuel Vadotrequired: 72*8bab661aSEmmanuel Vadot - compatible 73*8bab661aSEmmanuel Vadot - reg 74*8bab661aSEmmanuel Vadot - clocks 75*8bab661aSEmmanuel Vadot - clock-names 76*8bab661aSEmmanuel Vadot - power-domains 77*8bab661aSEmmanuel Vadot - resets 78*8bab661aSEmmanuel Vadot - reset-names 79*8bab661aSEmmanuel Vadot - vdda-phy-supply 80*8bab661aSEmmanuel Vadot - vdda-pll-supply 81*8bab661aSEmmanuel Vadot - "#clock-cells" 82*8bab661aSEmmanuel Vadot - clock-output-names 83*8bab661aSEmmanuel Vadot - "#phy-cells" 84*8bab661aSEmmanuel Vadot 85*8bab661aSEmmanuel VadotadditionalProperties: false 86*8bab661aSEmmanuel Vadot 87*8bab661aSEmmanuel VadotallOf: 88*8bab661aSEmmanuel Vadot - if: 89*8bab661aSEmmanuel Vadot properties: 90*8bab661aSEmmanuel Vadot compatible: 91*8bab661aSEmmanuel Vadot contains: 92*8bab661aSEmmanuel Vadot enum: 93*8bab661aSEmmanuel Vadot - qcom,sc8280xp-qmp-gen3x4-pcie-phy 94*8bab661aSEmmanuel Vadot then: 95*8bab661aSEmmanuel Vadot properties: 96*8bab661aSEmmanuel Vadot reg: 97*8bab661aSEmmanuel Vadot items: 98*8bab661aSEmmanuel Vadot - description: port a 99*8bab661aSEmmanuel Vadot - description: port b 100*8bab661aSEmmanuel Vadot required: 101*8bab661aSEmmanuel Vadot - qcom,4ln-config-sel 102*8bab661aSEmmanuel Vadot else: 103*8bab661aSEmmanuel Vadot properties: 104*8bab661aSEmmanuel Vadot reg: 105*8bab661aSEmmanuel Vadot maxItems: 1 106*8bab661aSEmmanuel Vadot 107*8bab661aSEmmanuel Vadotexamples: 108*8bab661aSEmmanuel Vadot - | 109*8bab661aSEmmanuel Vadot #include <dt-bindings/clock/qcom,gcc-sc8280xp.h> 110*8bab661aSEmmanuel Vadot 111*8bab661aSEmmanuel Vadot pcie2b_phy: phy@1c18000 { 112*8bab661aSEmmanuel Vadot compatible = "qcom,sc8280xp-qmp-gen3x2-pcie-phy"; 113*8bab661aSEmmanuel Vadot reg = <0x01c18000 0x2000>; 114*8bab661aSEmmanuel Vadot 115*8bab661aSEmmanuel Vadot clocks = <&gcc GCC_PCIE_2B_AUX_CLK>, 116*8bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2B_CFG_AHB_CLK>, 117*8bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 118*8bab661aSEmmanuel Vadot <&gcc GCC_PCIE2B_PHY_RCHNG_CLK>, 119*8bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2B_PIPE_CLK>, 120*8bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2B_PIPEDIV2_CLK>; 121*8bab661aSEmmanuel Vadot clock-names = "aux", "cfg_ahb", "ref", "rchng", 122*8bab661aSEmmanuel Vadot "pipe", "pipediv2"; 123*8bab661aSEmmanuel Vadot 124*8bab661aSEmmanuel Vadot power-domains = <&gcc PCIE_2B_GDSC>; 125*8bab661aSEmmanuel Vadot 126*8bab661aSEmmanuel Vadot resets = <&gcc GCC_PCIE_2B_PHY_BCR>; 127*8bab661aSEmmanuel Vadot reset-names = "phy"; 128*8bab661aSEmmanuel Vadot 129*8bab661aSEmmanuel Vadot vdda-phy-supply = <&vreg_l6d>; 130*8bab661aSEmmanuel Vadot vdda-pll-supply = <&vreg_l4d>; 131*8bab661aSEmmanuel Vadot 132*8bab661aSEmmanuel Vadot #clock-cells = <0>; 133*8bab661aSEmmanuel Vadot clock-output-names = "pcie_2b_pipe_clk"; 134*8bab661aSEmmanuel Vadot 135*8bab661aSEmmanuel Vadot #phy-cells = <0>; 136*8bab661aSEmmanuel Vadot }; 137*8bab661aSEmmanuel Vadot 138*8bab661aSEmmanuel Vadot pcie2a_phy: phy@1c24000 { 139*8bab661aSEmmanuel Vadot compatible = "qcom,sc8280xp-qmp-gen3x4-pcie-phy"; 140*8bab661aSEmmanuel Vadot reg = <0x01c24000 0x2000>, <0x01c26000 0x2000>; 141*8bab661aSEmmanuel Vadot 142*8bab661aSEmmanuel Vadot clocks = <&gcc GCC_PCIE_2A_AUX_CLK>, 143*8bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A_CFG_AHB_CLK>, 144*8bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A2B_CLKREF_CLK>, 145*8bab661aSEmmanuel Vadot <&gcc GCC_PCIE2A_PHY_RCHNG_CLK>, 146*8bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A_PIPE_CLK>, 147*8bab661aSEmmanuel Vadot <&gcc GCC_PCIE_2A_PIPEDIV2_CLK>; 148*8bab661aSEmmanuel Vadot clock-names = "aux", "cfg_ahb", "ref", "rchng", 149*8bab661aSEmmanuel Vadot "pipe", "pipediv2"; 150*8bab661aSEmmanuel Vadot 151*8bab661aSEmmanuel Vadot power-domains = <&gcc PCIE_2A_GDSC>; 152*8bab661aSEmmanuel Vadot 153*8bab661aSEmmanuel Vadot resets = <&gcc GCC_PCIE_2A_PHY_BCR>; 154*8bab661aSEmmanuel Vadot reset-names = "phy"; 155*8bab661aSEmmanuel Vadot 156*8bab661aSEmmanuel Vadot vdda-phy-supply = <&vreg_l6d>; 157*8bab661aSEmmanuel Vadot vdda-pll-supply = <&vreg_l4d>; 158*8bab661aSEmmanuel Vadot 159*8bab661aSEmmanuel Vadot qcom,4ln-config-sel = <&tcsr 0xa044 0>; 160*8bab661aSEmmanuel Vadot 161*8bab661aSEmmanuel Vadot #clock-cells = <0>; 162*8bab661aSEmmanuel Vadot clock-output-names = "pcie_2a_pipe_clk"; 163*8bab661aSEmmanuel Vadot 164*8bab661aSEmmanuel Vadot #phy-cells = <0>; 165*8bab661aSEmmanuel Vadot }; 166