arm64: dts: qcom: sc8280xp: correct ref clock for ufs_mem_phy
authorBrian Masney <bmasney@redhat.com>
Thu, 6 Oct 2022 14:55:29 +0000 (10:55 -0400)
committerBjorn Andersson <andersson@kernel.org>
Mon, 17 Oct 2022 19:32:38 +0000 (14:32 -0500)
The first UFS host controller fails to start on the SA8540P automotive
board (QDrive3) due to the following errors:

    ufshcd-qcom 1d84000.ufs: ufshcd_query_flag: Sending flag query for idn 18 failed, err = 253
    ufshcd-qcom 1d84000.ufs: ufshcd_query_flag: Sending flag query for idn 18 failed, err = 253
    ufshcd-qcom 1d84000.ufs: ufshcd_query_flag: Sending flag query for idn 18 failed, err = 253
    ufshcd-qcom 1d84000.ufs: ufshcd_query_flag_retry: query attribute, opcode 5, idn 18, failed
        with error 253 after 3 retries

The system eventually fails to boot with the warning:

    gcc_ufs_phy_axi_clk status stuck at 'off'

This issue can be worked around by adding clk_ignore_unused to the
kernel command line since the system firmware sets up this clock for us.

Let's fix this issue by updating the ref clock on ufs_mem_phy. Note
that the downstream MSM 5.4 sources list this as ref_clk_parent. With
this patch, the SA8540P is able to be booted without clk_ignore_unused.

Signed-off-by: Brian Masney <bmasney@redhat.com>
Fixes: 152d1faf1e2f ("arm64: dts: qcom: add SC8280XP platform")
Tested-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20221006145529.755521-1-bmasney@redhat.com
arch/arm64/boot/dts/qcom/sc8280xp.dtsi

index 4921bbaf5caf7dc9ebd9123e88442bec3fd3773d..f5824f44e15f4af80c31c7fb147d9f46259578bb 100644 (file)
                        ranges;
                        clock-names = "ref",
                                      "ref_aux";
-                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                       clocks = <&gcc GCC_UFS_REF_CLKREF_CLK>,
                                 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>;
 
                        resets = <&ufs_mem_hc 0>;