arm64: dts: qcom: sc8280xp: fix ufs_card_phy ref clock
PATCH 1/1 arm64: dts: qcom: sc8280xp: fix ufs_card_phy ref clock
The GCC_UFS_REF_CLKREF_CLK must be enabled or the second UFS controller fails to enumerate on sa8295p-adp.
Note that the vendor kernel enables both GCC_UFS_REF_CLKREF_CLK and GCC_UFS_1_CARD_CLKREF_CLK and it is possible that the former should be modelled as a parent of the latter. The clock driver also has a GCC_UFS_CARD_CLKREF_CLK clock which the firmware appears to enable on the ADP.
The usual lack of documentation for Qualcomm SoCs makes this a highly annoying guessing game, but as the second controller works on the ADP without either card reference clock enabled, only enable GCC_UFS_REF_CLKREF_CLK for now.
---
The related issue for the first controller is being fixed here:
https://lore.kernel.org/lkml/[email protected]/T/#u
Johan
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm64/boot/dts/qcom/sc8280xp.dtsi +1 -1
@@ -960,7 +960,7 @@ ufs_card_phy: phy@1da7000 { ranges; clock-names = "ref", "ref_aux"; - clocks = <&gcc GCC_UFS_1_CARD_CLKREF_CLK>, + clocks = <&gcc GCC_UFS_REF_CLKREF_CLK>, <&gcc GCC_UFS_CARD_PHY_AUX_CLK>; resets = <&ufs_card_hc 0>;
Signature · 1 line
2.35.1
Quoted 9 lines · Johan Hovold
The
GCC_UFS_REF_CLKREF_CLKmust be enabled or the second UFS controller fails to enumerate on sa8295p-adp.Note that the vendor kernel enables both
GCC_UFS_REF_CLKREF_CLKandGCC_UFS_1_CARD_CLKREF_CLKand it is possible that the former should be modelled as a parent of the latter. The clock driver also has aGCC_UFS_CARD_CLKREF_CLKclock which the firmware appears to enable on the ADP.
Quoted 7 lines
The usual lack of documentation for Qualcomm SoCs makes this a highly annoying guessing game, but as the second controller works on the ADP without either card reference clock enabled, only enable
GCC_UFS_REF_CLKREF_CLKfor now.Fixes 152d1faf1e2f ("arm64: dts: qcom: add SC8280XP platform")Signed-off-by Johan Hovold <[email protected]>
Quoted 8 lines · Johan Hovold
The
GCC_UFS_REF_CLKREF_CLKmust be enabled or the second UFS controller fails to enumerate on sa8295p-adp.Note that the vendor kernel enables both
GCC_UFS_REF_CLKREF_CLKandGCC_UFS_1_CARD_CLKREF_CLKand it is possible that the former should be modelled as a parent of the latter. The clock driver also has aGCC_UFS_CARD_CLKREF_CLKclock which the firmware appears to enable on the ADP.
My guess would be that XBL/whatever other bootloader enables all of them as it scans for bootable devices and only gates one afterwards..
Konrad
Quoted 33 lines
The usual lack of documentation for Qualcomm SoCs makes this a highly annoying guessing game, but as the second controller works on the ADP without either card reference clock enabled, only enable
GCC_UFS_REF_CLKREF_CLKfor now.Fixes 152d1faf1e2f ("arm64: dts: qcom: add SC8280XP platform")Signed-off-by Johan Hovold <[email protected]>---
The related issue for the first controller is being fixed here:
https://lore.kernel.org/lkml/[email protected]/T/#uJohan
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/arm64/boot/dts/qcom/sc8280xp.dtsi +1
-1@@ -960,7 +960,7 @@ ufs_card_phy: phy@1da7000 { ranges; clock-names = "ref", "ref_aux"; - clocks = <&gcc GCC_UFS_1_CARD_CLKREF_CLK>, + clocks = <&gcc GCC_UFS_REF_CLKREF_CLK>, <&gcc GCC_UFS_CARD_PHY_AUX_CLK>; resets = <&ufs_card_hc 0>;
Quoted 10 lines · Johan Hovold
The
GCC_UFS_REF_CLKREF_CLKmust be enabled or the second UFS controller fails to enumerate on sa8295p-adp.Note that the vendor kernel enables both
GCC_UFS_REF_CLKREF_CLKandGCC_UFS_1_CARD_CLKREF_CLKand it is possible that the former should be modelled as a parent of the latter. The clock driver also has aGCC_UFS_CARD_CLKREF_CLKclock which the firmware appears to enable on the ADP.[...]
Applied, thanks!
[1/1] arm64: dts: qcom: sc8280xp: fix ufs_card_phy ref clock
commit: 8d6b458ce6e93286a607e54f787f7a86067f58bd
Best regards,
Signature · 1 line
Bjorn Andersson <[email protected]>