On Wed, 22 Dec 2021 at 19:19, Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> wrote: > > 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@xxxxxxxxxx> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> We've had more or less the same change for sm8450 after adding my regmap-mux fix (with the only difference that on sm8450 symbol clocks are provided by the phy). > --- > > Changes since v1: > - Updated commit message to clarify that the removed numbers are correct. > > arch/arm64/boot/dts/qcom/sm8350.dtsi | 28 +++++++++++++++++++++++----- > 1 file changed, 23 insertions(+), 5 deletions(-) > > diff --git a/arch/arm64/boot/dts/qcom/sm8350.dtsi b/arch/arm64/boot/dts/qcom/sm8350.dtsi > index bc176c252bca..ceb064a83038 100644 > --- a/arch/arm64/boot/dts/qcom/sm8350.dtsi > +++ b/arch/arm64/boot/dts/qcom/sm8350.dtsi > @@ -38,6 +38,24 @@ sleep_clk: sleep-clk { > 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 { > @@ -606,9 +624,9 @@ gcc: clock-controller@100000 { > <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>; > }; > @@ -2079,8 +2097,8 @@ ufs_mem_hc: ufshc@1d84000 { > <75000000 300000000>, > <0 0>, > <0 0>, > - <75000000 300000000>, > - <75000000 300000000>; > + <0 0>, > + <0 0>; > status = "disabled"; > }; > > -- > 2.33.1 > -- With best wishes Dmitry