xref: /freebsd/sys/contrib/device-tree/Bindings/phy/qcom,msm8996-qmp-ufs-phy.yaml (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
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