Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/20240131-ufs-phy-clock-v3-1-58a49d2f4605@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>

authored by

Manivannan Sadhasivam and committed by
Vinod Koul
b0bcec86 25ee21fc

+21 -27
+21 -27
Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-ufs-phy.yaml
··· 39 39 maxItems: 1 40 40 41 41 clocks: 42 - minItems: 1 42 + minItems: 2 43 43 maxItems: 3 44 44 45 45 clock-names: 46 - minItems: 1 47 - items: 48 - - const: ref 49 - - const: ref_aux 50 - - const: qref 46 + minItems: 2 47 + maxItems: 3 51 48 52 49 power-domains: 53 50 maxItems: 1 ··· 84 87 compatible: 85 88 contains: 86 89 enum: 90 + - qcom,msm8998-qmp-ufs-phy 87 91 - qcom,sa8775p-qmp-ufs-phy 88 92 - qcom,sc7280-qmp-ufs-phy 89 - - qcom,sm8450-qmp-ufs-phy 90 - then: 91 - properties: 92 - clocks: 93 - minItems: 3 94 - clock-names: 95 - minItems: 3 96 - 97 - - if: 98 - properties: 99 - compatible: 100 - contains: 101 - enum: 102 - - qcom,msm8998-qmp-ufs-phy 103 - - qcom,sc7180-qmp-ufs-phy 104 93 - qcom,sc8180x-qmp-ufs-phy 105 94 - qcom,sc8280xp-qmp-ufs-phy 106 95 - qcom,sdm845-qmp-ufs-phy ··· 97 114 - qcom,sm8150-qmp-ufs-phy 98 115 - qcom,sm8250-qmp-ufs-phy 99 116 - qcom,sm8350-qmp-ufs-phy 117 + - qcom,sm8450-qmp-ufs-phy 100 118 - qcom,sm8550-qmp-ufs-phy 101 119 - qcom,sm8650-qmp-ufs-phy 102 120 then: 103 121 properties: 104 122 clocks: 105 - maxItems: 2 123 + minItems: 3 124 + maxItems: 3 106 125 clock-names: 107 - maxItems: 2 126 + items: 127 + - const: ref 128 + - const: ref_aux 129 + - const: qref 108 130 109 131 - if: 110 132 properties: ··· 120 132 then: 121 133 properties: 122 134 clocks: 123 - maxItems: 1 135 + minItems: 2 136 + maxItems: 2 124 137 clock-names: 125 - maxItems: 1 138 + items: 139 + - const: ref 140 + - const: qref 126 141 127 142 additionalProperties: false 128 143 129 144 examples: 130 145 - | 131 146 #include <dt-bindings/clock/qcom,gcc-sc8280xp.h> 147 + #include <dt-bindings/clock/qcom,rpmh.h> 132 148 133 149 ufs_mem_phy: phy@1d87000 { 134 150 compatible = "qcom,sc8280xp-qmp-ufs-phy"; 135 151 reg = <0x01d87000 0x1000>; 136 152 137 - clocks = <&gcc GCC_UFS_REF_CLKREF_CLK>, <&gcc GCC_UFS_PHY_PHY_AUX_CLK>; 138 - clock-names = "ref", "ref_aux"; 153 + clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_UFS_PHY_PHY_AUX_CLK>, 154 + <&gcc GCC_UFS_REF_CLKREF_CLK>; 155 + 156 + clock-names = "ref", "ref_aux", "qref"; 139 157 140 158 power-domains = <&gcc UFS_PHY_GDSC>; 141 159