Commit b0bcec86 authored by Manivannan Sadhasivam's avatar Manivannan Sadhasivam Committed by Vinod Koul
Browse files

dt-bindings: phy: qmp-ufs: Fix PHY clocks



All QMP UFS PHYs except MSM8996 require 3 clocks:

* ref - 19.2MHz reference clock from RPMh
* ref_aux - Auxiliary reference clock from GCC
* qref - QREF clock from GCC or TCSR (since SM8550)

MSM8996 only requires 'ref' and 'qref' clocks. Hence, fix the binding to
reflect the actual clock topology.

This change obviously breaks the ABI, but it is inevitable since the
clock topology needs to be accurately described in the binding.

Reviewed-by: default avatarConor Dooley <conor.dooley@microchip.com>
Signed-off-by: default avatarManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/20240131-ufs-phy-clock-v3-1-58a49d2f4605@linaro.org


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 25ee21fc
Loading
Loading
Loading
Loading
+21 −27
Original line number Diff line number Diff line
@@ -39,15 +39,12 @@ properties:
    maxItems: 1

  clocks:
    minItems: 1
    minItems: 2
    maxItems: 3

  clock-names:
    minItems: 1
    items:
      - const: ref
      - const: ref_aux
      - const: qref
    minItems: 2
    maxItems: 3

  power-domains:
    maxItems: 1
@@ -87,23 +84,9 @@ allOf:
        compatible:
          contains:
            enum:
              - qcom,msm8998-qmp-ufs-phy
              - qcom,sa8775p-qmp-ufs-phy
              - qcom,sc7280-qmp-ufs-phy
              - qcom,sm8450-qmp-ufs-phy
    then:
      properties:
        clocks:
          minItems: 3
        clock-names:
          minItems: 3

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8998-qmp-ufs-phy
              - qcom,sc7180-qmp-ufs-phy
              - qcom,sc8180x-qmp-ufs-phy
              - qcom,sc8280xp-qmp-ufs-phy
              - qcom,sdm845-qmp-ufs-phy
@@ -114,14 +97,19 @@ allOf:
              - qcom,sm8150-qmp-ufs-phy
              - qcom,sm8250-qmp-ufs-phy
              - qcom,sm8350-qmp-ufs-phy
              - qcom,sm8450-qmp-ufs-phy
              - qcom,sm8550-qmp-ufs-phy
              - qcom,sm8650-qmp-ufs-phy
    then:
      properties:
        clocks:
          maxItems: 2
          minItems: 3
          maxItems: 3
        clock-names:
          maxItems: 2
          items:
            - const: ref
            - const: ref_aux
            - const: qref

  - if:
      properties:
@@ -132,22 +120,28 @@ allOf:
    then:
      properties:
        clocks:
          maxItems: 1
          minItems: 2
          maxItems: 2
        clock-names:
          maxItems: 1
          items:
            - const: ref
            - const: qref

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
    #include <dt-bindings/clock/qcom,rpmh.h>

    ufs_mem_phy: phy@1d87000 {
        compatible = "qcom,sc8280xp-qmp-ufs-phy";
        reg = <0x01d87000 0x1000>;

        clocks = <&gcc GCC_UFS_REF_CLKREF_CLK>, <&gcc GCC_UFS_PHY_PHY_AUX_CLK>;
        clock-names = "ref", "ref_aux";
        clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
                 <&gcc GCC_UFS_REF_CLKREF_CLK>;

        clock-names = "ref", "ref_aux", "qref";

        power-domains = <&gcc UFS_PHY_GDSC>;