]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
arm64: dts: qcom: sm8350: Correct UFS symbol clocks
authorBjorn Andersson <bjorn.andersson@linaro.org>
Wed, 22 Dec 2021 16:20:58 +0000 (08:20 -0800)
committerPaolo Pisati <paolo.pisati@canonical.com>
Wed, 23 Mar 2022 10:48:59 +0000 (11:48 +0100)
BugLink: https://bugs.launchpad.net/bugs/1966056
[ Upstream commit 0fd4dcb607ce29110d6c0b481a98c4ff3d300551 ]

The introduction of '9a61f813fcc8 ("clk: qcom: regmap-mux: fix parent
clock lookup")' broke UFS support on SM8350.

The cause for this is that the symbol clocks have a specified rate in
the "freq-table-hz" table in the UFS node, which causes the UFS code to
request a rate change, for which the "bi_tcxo" happens to provide the
closest rate.  Prior to the change in regmap-mux it was determined
(incorrectly) that no change was needed and everything worked.

The rates of 75 and 300MHz matches the documentation for the symbol
clocks, but we don't represent the parent clocks today. So let's mimic
the configuration found in other platforms, by omitting the rate for the
symbol clocks as well to avoid the rate change.

While at it also fill in the dummy symbol clocks that was dropped from
the GCC driver as it was upstreamed.

Fixes: 59c7cf814783 ("arm64: dts: qcom: sm8350: Add UFS nodes")
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Vinod Koul <vkoul@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20211222162058.3418902-1-bjorn.andersson@linaro.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
arch/arm64/boot/dts/qcom/sm8350.dtsi

index 09d91979375810b09c43a09364d5ae4fe8a3057f..a8886adaaf3773842d8f716b564b8970b8311573 100644 (file)
                        clock-frequency = <32000>;
                        #clock-cells = <0>;
                };
+
+               ufs_phy_rx_symbol_0_clk: ufs-phy-rx-symbol-0 {
+                       compatible = "fixed-clock";
+                       clock-frequency = <1000>;
+                       #clock-cells = <0>;
+               };
+
+               ufs_phy_rx_symbol_1_clk: ufs-phy-rx-symbol-1 {
+                       compatible = "fixed-clock";
+                       clock-frequency = <1000>;
+                       #clock-cells = <0>;
+               };
+
+               ufs_phy_tx_symbol_0_clk: ufs-phy-tx-symbol-0 {
+                       compatible = "fixed-clock";
+                       clock-frequency = <1000>;
+                       #clock-cells = <0>;
+               };
        };
 
        cpus {
                                 <0>,
                                 <0>,
                                 <0>,
-                                <0>,
-                                <0>,
-                                <0>,
+                                <&ufs_phy_rx_symbol_0_clk>,
+                                <&ufs_phy_rx_symbol_1_clk>,
+                                <&ufs_phy_tx_symbol_0_clk>,
                                 <0>,
                                 <0>;
                };
                                <75000000 300000000>,
                                <0 0>,
                                <0 0>,
-                               <75000000 300000000>,
-                               <75000000 300000000>;
+                               <0>,
+                               <0>;
                        status = "disabled";
                };