18bab661aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 28bab661aSEmmanuel Vadot%YAML 1.2 38bab661aSEmmanuel Vadot--- 48bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/phy/qcom,msm8996-qmp-ufs-phy.yaml# 58bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 68bab661aSEmmanuel Vadot 78bab661aSEmmanuel Vadottitle: Qualcomm QMP PHY controller (UFS, MSM8996) 88bab661aSEmmanuel Vadot 98bab661aSEmmanuel Vadotmaintainers: 108bab661aSEmmanuel Vadot - Vinod Koul <vkoul@kernel.org> 118bab661aSEmmanuel Vadot 128bab661aSEmmanuel Vadotdescription: 138bab661aSEmmanuel Vadot QMP PHY controller supports physical layer functionality for a number of 148bab661aSEmmanuel Vadot controllers on Qualcomm chipsets, such as, PCIe, UFS, and USB. 158bab661aSEmmanuel Vadot 168bab661aSEmmanuel Vadot Note that these bindings are for SoCs up to SC8180X. For newer SoCs, see 178bab661aSEmmanuel Vadot qcom,sc8280xp-qmp-ufs-phy.yaml. 188bab661aSEmmanuel Vadot 198bab661aSEmmanuel Vadotproperties: 208bab661aSEmmanuel Vadot compatible: 218bab661aSEmmanuel Vadot enum: 228bab661aSEmmanuel Vadot - qcom,msm8996-qmp-ufs-phy 238bab661aSEmmanuel Vadot - qcom,msm8998-qmp-ufs-phy 248bab661aSEmmanuel Vadot - qcom,sc8180x-qmp-ufs-phy 258bab661aSEmmanuel Vadot - qcom,sdm845-qmp-ufs-phy 268bab661aSEmmanuel Vadot - qcom,sm6115-qmp-ufs-phy 278bab661aSEmmanuel Vadot - qcom,sm6350-qmp-ufs-phy 288bab661aSEmmanuel Vadot - qcom,sm8150-qmp-ufs-phy 298bab661aSEmmanuel Vadot - qcom,sm8250-qmp-ufs-phy 308bab661aSEmmanuel Vadot - qcom,sm8350-qmp-ufs-phy 318bab661aSEmmanuel Vadot - qcom,sm8450-qmp-ufs-phy 328bab661aSEmmanuel Vadot 338bab661aSEmmanuel Vadot reg: 348bab661aSEmmanuel Vadot items: 358bab661aSEmmanuel Vadot - description: serdes 368bab661aSEmmanuel Vadot 378bab661aSEmmanuel Vadot "#address-cells": 388bab661aSEmmanuel Vadot enum: [ 1, 2 ] 398bab661aSEmmanuel Vadot 408bab661aSEmmanuel Vadot "#size-cells": 418bab661aSEmmanuel Vadot enum: [ 1, 2 ] 428bab661aSEmmanuel Vadot 438bab661aSEmmanuel Vadot ranges: true 448bab661aSEmmanuel Vadot 458bab661aSEmmanuel Vadot clocks: 468bab661aSEmmanuel Vadot minItems: 1 478bab661aSEmmanuel Vadot maxItems: 3 488bab661aSEmmanuel Vadot 498bab661aSEmmanuel Vadot clock-names: 508bab661aSEmmanuel Vadot minItems: 1 518bab661aSEmmanuel Vadot maxItems: 3 528bab661aSEmmanuel Vadot 538bab661aSEmmanuel Vadot power-domains: 548bab661aSEmmanuel Vadot maxItems: 1 558bab661aSEmmanuel Vadot 568bab661aSEmmanuel Vadot resets: 578bab661aSEmmanuel Vadot maxItems: 1 588bab661aSEmmanuel Vadot 598bab661aSEmmanuel Vadot reset-names: 608bab661aSEmmanuel Vadot items: 618bab661aSEmmanuel Vadot - const: ufsphy 628bab661aSEmmanuel Vadot 638bab661aSEmmanuel Vadot vdda-phy-supply: true 648bab661aSEmmanuel Vadot 658bab661aSEmmanuel Vadot vdda-pll-supply: true 668bab661aSEmmanuel Vadot 678bab661aSEmmanuel Vadot vddp-ref-clk-supply: true 688bab661aSEmmanuel Vadot 698bab661aSEmmanuel VadotpatternProperties: 708bab661aSEmmanuel Vadot "^phy@[0-9a-f]+$": 718bab661aSEmmanuel Vadot type: object 728bab661aSEmmanuel Vadot description: single PHY-provider child node 738bab661aSEmmanuel Vadot properties: 748bab661aSEmmanuel Vadot reg: 758bab661aSEmmanuel Vadot minItems: 3 768bab661aSEmmanuel Vadot maxItems: 6 778bab661aSEmmanuel Vadot 78cb7aa33aSEmmanuel Vadot "#clock-cells": 79cb7aa33aSEmmanuel Vadot const: 1 80cb7aa33aSEmmanuel Vadot 818bab661aSEmmanuel Vadot "#phy-cells": 828bab661aSEmmanuel Vadot const: 0 838bab661aSEmmanuel Vadot 848bab661aSEmmanuel Vadot required: 858bab661aSEmmanuel Vadot - reg 868bab661aSEmmanuel Vadot - "#phy-cells" 878bab661aSEmmanuel Vadot 888bab661aSEmmanuel Vadot additionalProperties: false 898bab661aSEmmanuel Vadot 908bab661aSEmmanuel Vadotrequired: 918bab661aSEmmanuel Vadot - compatible 928bab661aSEmmanuel Vadot - reg 938bab661aSEmmanuel Vadot - "#address-cells" 948bab661aSEmmanuel Vadot - "#size-cells" 958bab661aSEmmanuel Vadot - ranges 968bab661aSEmmanuel Vadot - clocks 978bab661aSEmmanuel Vadot - clock-names 988bab661aSEmmanuel Vadot - resets 998bab661aSEmmanuel Vadot - reset-names 1008bab661aSEmmanuel Vadot - vdda-phy-supply 1018bab661aSEmmanuel Vadot - vdda-pll-supply 1028bab661aSEmmanuel Vadot 1038bab661aSEmmanuel VadotadditionalProperties: false 1048bab661aSEmmanuel Vadot 1058bab661aSEmmanuel VadotallOf: 1068bab661aSEmmanuel Vadot - if: 1078bab661aSEmmanuel Vadot properties: 1088bab661aSEmmanuel Vadot compatible: 1098bab661aSEmmanuel Vadot contains: 1108bab661aSEmmanuel Vadot enum: 1118bab661aSEmmanuel Vadot - qcom,msm8996-qmp-ufs-phy 1128bab661aSEmmanuel Vadot then: 1138bab661aSEmmanuel Vadot properties: 1148bab661aSEmmanuel Vadot clocks: 1158bab661aSEmmanuel Vadot maxItems: 1 1168bab661aSEmmanuel Vadot clock-names: 1178bab661aSEmmanuel Vadot items: 1188bab661aSEmmanuel Vadot - const: ref 1198bab661aSEmmanuel Vadot 1208bab661aSEmmanuel Vadot - if: 1218bab661aSEmmanuel Vadot properties: 1228bab661aSEmmanuel Vadot compatible: 1238bab661aSEmmanuel Vadot contains: 1248bab661aSEmmanuel Vadot enum: 1258bab661aSEmmanuel Vadot - qcom,msm8998-qmp-ufs-phy 1268bab661aSEmmanuel Vadot - qcom,sc8180x-qmp-ufs-phy 1278bab661aSEmmanuel Vadot - qcom,sdm845-qmp-ufs-phy 1288bab661aSEmmanuel Vadot - qcom,sm6115-qmp-ufs-phy 1298bab661aSEmmanuel Vadot - qcom,sm6350-qmp-ufs-phy 1308bab661aSEmmanuel Vadot - qcom,sm8150-qmp-ufs-phy 1318bab661aSEmmanuel Vadot - qcom,sm8250-qmp-ufs-phy 1328bab661aSEmmanuel Vadot then: 1338bab661aSEmmanuel Vadot properties: 1348bab661aSEmmanuel Vadot clocks: 1358bab661aSEmmanuel Vadot maxItems: 2 1368bab661aSEmmanuel Vadot clock-names: 1378bab661aSEmmanuel Vadot items: 1388bab661aSEmmanuel Vadot - const: ref 1398bab661aSEmmanuel Vadot - const: ref_aux 1408bab661aSEmmanuel Vadot 1418bab661aSEmmanuel Vadot - if: 1428bab661aSEmmanuel Vadot properties: 1438bab661aSEmmanuel Vadot compatible: 1448bab661aSEmmanuel Vadot contains: 1458bab661aSEmmanuel Vadot enum: 1468bab661aSEmmanuel Vadot - qcom,sm8450-qmp-ufs-phy 1478bab661aSEmmanuel Vadot then: 1488bab661aSEmmanuel Vadot properties: 1498bab661aSEmmanuel Vadot clocks: 1508bab661aSEmmanuel Vadot maxItems: 3 1518bab661aSEmmanuel Vadot clock-names: 1528bab661aSEmmanuel Vadot items: 1538bab661aSEmmanuel Vadot - const: ref 1548bab661aSEmmanuel Vadot - const: ref_aux 1558bab661aSEmmanuel Vadot - const: qref 1568bab661aSEmmanuel Vadot 1578bab661aSEmmanuel Vadot - if: 1588bab661aSEmmanuel Vadot properties: 1598bab661aSEmmanuel Vadot compatible: 1608bab661aSEmmanuel Vadot contains: 1618bab661aSEmmanuel Vadot enum: 1628bab661aSEmmanuel Vadot - qcom,msm8998-qmp-ufs-phy 163*f126890aSEmmanuel Vadot - qcom,sc8180x-qmp-ufs-phy 1648bab661aSEmmanuel Vadot - qcom,sdm845-qmp-ufs-phy 1658bab661aSEmmanuel Vadot - qcom,sm6350-qmp-ufs-phy 1668bab661aSEmmanuel Vadot - qcom,sm8150-qmp-ufs-phy 1678bab661aSEmmanuel Vadot - qcom,sm8250-qmp-ufs-phy 1688bab661aSEmmanuel Vadot - qcom,sm8350-qmp-ufs-phy 1698bab661aSEmmanuel Vadot - qcom,sm8450-qmp-ufs-phy 1708bab661aSEmmanuel Vadot then: 1718bab661aSEmmanuel Vadot patternProperties: 1728bab661aSEmmanuel Vadot "^phy@[0-9a-f]+$": 1738bab661aSEmmanuel Vadot properties: 1748bab661aSEmmanuel Vadot reg: 1758bab661aSEmmanuel Vadot items: 1768bab661aSEmmanuel Vadot - description: TX lane 1 1778bab661aSEmmanuel Vadot - description: RX lane 1 1788bab661aSEmmanuel Vadot - description: PCS 1798bab661aSEmmanuel Vadot - description: TX lane 2 1808bab661aSEmmanuel Vadot - description: RX lane 2 1818bab661aSEmmanuel Vadot 1828bab661aSEmmanuel Vadot - if: 1838bab661aSEmmanuel Vadot properties: 1848bab661aSEmmanuel Vadot compatible: 1858bab661aSEmmanuel Vadot contains: 1868bab661aSEmmanuel Vadot enum: 1878bab661aSEmmanuel Vadot - qcom,msm8996-qmp-ufs-phy 1888bab661aSEmmanuel Vadot - qcom,sm6115-qmp-ufs-phy 1898bab661aSEmmanuel Vadot then: 1908bab661aSEmmanuel Vadot patternProperties: 1918bab661aSEmmanuel Vadot "^phy@[0-9a-f]+$": 1928bab661aSEmmanuel Vadot properties: 1938bab661aSEmmanuel Vadot reg: 1948bab661aSEmmanuel Vadot items: 1958bab661aSEmmanuel Vadot - description: TX 1968bab661aSEmmanuel Vadot - description: RX 1978bab661aSEmmanuel Vadot - description: PCS 1988bab661aSEmmanuel Vadot 1998bab661aSEmmanuel Vadotexamples: 2008bab661aSEmmanuel Vadot - | 2018bab661aSEmmanuel Vadot #include <dt-bindings/clock/qcom,gcc-sm8250.h> 2028bab661aSEmmanuel Vadot #include <dt-bindings/clock/qcom,rpmh.h> 2038bab661aSEmmanuel Vadot 2048bab661aSEmmanuel Vadot phy-wrapper@1d87000 { 2058bab661aSEmmanuel Vadot compatible = "qcom,sm8250-qmp-ufs-phy"; 2068bab661aSEmmanuel Vadot reg = <0x01d87000 0x1c0>; 2078bab661aSEmmanuel Vadot #address-cells = <1>; 2088bab661aSEmmanuel Vadot #size-cells = <1>; 2098bab661aSEmmanuel Vadot ranges = <0x0 0x01d87000 0x1000>; 2108bab661aSEmmanuel Vadot 2118bab661aSEmmanuel Vadot clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_UFS_PHY_PHY_AUX_CLK>; 2128bab661aSEmmanuel Vadot clock-names = "ref", "ref_aux"; 2138bab661aSEmmanuel Vadot 2148bab661aSEmmanuel Vadot resets = <&ufs_mem_hc 0>; 2158bab661aSEmmanuel Vadot reset-names = "ufsphy"; 2168bab661aSEmmanuel Vadot 2178bab661aSEmmanuel Vadot vdda-phy-supply = <&vreg_l6b>; 2188bab661aSEmmanuel Vadot vdda-pll-supply = <&vreg_l3b>; 2198bab661aSEmmanuel Vadot 2208bab661aSEmmanuel Vadot phy@400 { 2218bab661aSEmmanuel Vadot reg = <0x400 0x108>, 2228bab661aSEmmanuel Vadot <0x600 0x1e0>, 2238bab661aSEmmanuel Vadot <0xc00 0x1dc>, 2248bab661aSEmmanuel Vadot <0x800 0x108>, 2258bab661aSEmmanuel Vadot <0xa00 0x1e0>; 2268bab661aSEmmanuel Vadot #phy-cells = <0>; 2278bab661aSEmmanuel Vadot }; 2288bab661aSEmmanuel Vadot }; 229