* [PATCH v2 0/6] arm64: dts: qcom: sm8x50: Enable UHS-I SDR50 and SDR104 SD card modes
@ 2026-03-14 2:37 Vladimir Zapolskiy
2026-03-14 2:37 ` [PATCH v2 1/6] arm64: dts: qcom: sm8550: Fix xo clock supply of platform SD host controller Vladimir Zapolskiy
` (6 more replies)
0 siblings, 7 replies; 16+ messages in thread
From: Vladimir Zapolskiy @ 2026-03-14 2:37 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio
Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Abel Vesa, linux-arm-msm, devicetree
The reported problem of some non-working UHS-I speed modes on SM8450
originates in commit 0a631a36f724 ("arm64: dts: qcom: Add device tree
for Sony Xperia 1 IV"), and then it was spread to all SM8450 powered
platforms by commit 9d561dc4e5cc ("arm64: dts: qcom: sm8450: disable
SDHCI SDR104/SDR50 on all boards").
The tests show that the rootcause of the problem was related to an
overclocking of SD cards, and it's fixed later on by commit a27ac3806b0a
("clk: qcom: gcc-sm8450: Use floor ops for SDCC RCGs").
Due to a missed setting of an appropriate SDCC clock operations in
platform GCC driver the workaround of dropping SD card speeds from UHS-I
to high speed was spread to SM8550 and SM8650 platforms, the fixes in
the clock controller drivers were applied to v7.0. In addition v2 of
the changeset corrects the "xo" clock frequency on the platforms,
and now it should be safe to remove the speed mode configuration
restrictions from SM8450, SM8550 and SM8650 platforms.
Changes from v1 to v2:
* added "xo" clock fixes, which provide the expected 19.2MHz clock rate,
* added Reviewed-by tags given by Neil and Konrad,
* added Fixes tags, since the changes are functional and performance fixes,
* rebased the changes.
Link to v1 of the changeset:
* https://lore.kernel.org/linux-arm-msm/20251126012043.3764567-1-vladimir.zapolskiy@linaro.org/
Vladimir Zapolskiy (6):
arm64: dts: qcom: sm8550: Fix xo clock supply of platform SD host controller
arm64: dts: qcom: sm8650: Fix xo clock supply of SD host controller
arm64: dts: qcom: hamoa: Fix xo clock supply of platform SD host controller
arm64: dts: qcom: sm8450: Enable UHS-I SDR50 and SDR104 SD card modes
arm64: dts: qcom: sm8550: Enable UHS-I SDR50 and SDR104 SD card modes
arm64: dts: qcom: sm8650: Enable UHS-I SDR50 and SDR104 SD card modes
arch/arm64/boot/dts/qcom/hamoa.dtsi | 4 ++--
arch/arm64/boot/dts/qcom/sm8450.dtsi | 3 ---
arch/arm64/boot/dts/qcom/sm8550.dtsi | 5 +----
arch/arm64/boot/dts/qcom/sm8650.dtsi | 5 +----
4 files changed, 4 insertions(+), 13 deletions(-)
--
2.49.0
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v2 1/6] arm64: dts: qcom: sm8550: Fix xo clock supply of platform SD host controller
2026-03-14 2:37 [PATCH v2 0/6] arm64: dts: qcom: sm8x50: Enable UHS-I SDR50 and SDR104 SD card modes Vladimir Zapolskiy
@ 2026-03-14 2:37 ` Vladimir Zapolskiy
2026-03-16 8:56 ` Neil Armstrong
2026-03-17 9:33 ` Konrad Dybcio
2026-03-14 2:37 ` [PATCH v2 2/6] arm64: dts: qcom: sm8650: Fix xo clock supply of " Vladimir Zapolskiy
` (5 subsequent siblings)
6 siblings, 2 replies; 16+ messages in thread
From: Vladimir Zapolskiy @ 2026-03-14 2:37 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio
Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Abel Vesa, linux-arm-msm, devicetree
The expected frequency of SD host controller core supply clock is 19.2MHz,
while RPMH_CXO_CLK clock frequency on SM8650 platform is 38.4MHz.
Apparently the overclocked supply clock could be good enough on some
boards and even with the most of SD cards, however some low-end UHS-I
SD cards in SDR104 mode of the host controller produce I/O errors in
runtime, fortunately this problem is gone, if the "xo" clock frequency
matches the expected 19.2MHz clock rate.
Fixes: ffc50b2d3828 ("arm64: dts: qcom: Add base SM8550 dtsi")
Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8550.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi
index e3f93f4f412d..03672df25eeb 100644
--- a/arch/arm64/boot/dts/qcom/sm8550.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi
@@ -3210,7 +3210,7 @@ sdhc_2: mmc@8804000 {
clocks = <&gcc GCC_SDCC2_AHB_CLK>,
<&gcc GCC_SDCC2_APPS_CLK>,
- <&rpmhcc RPMH_CXO_CLK>;
+ <&bi_tcxo_div2>;
clock-names = "iface", "core", "xo";
iommus = <&apps_smmu 0x540 0>;
qcom,dll-config = <0x0007642c>;
--
2.49.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 2/6] arm64: dts: qcom: sm8650: Fix xo clock supply of SD host controller
2026-03-14 2:37 [PATCH v2 0/6] arm64: dts: qcom: sm8x50: Enable UHS-I SDR50 and SDR104 SD card modes Vladimir Zapolskiy
2026-03-14 2:37 ` [PATCH v2 1/6] arm64: dts: qcom: sm8550: Fix xo clock supply of platform SD host controller Vladimir Zapolskiy
@ 2026-03-14 2:37 ` Vladimir Zapolskiy
2026-03-16 8:56 ` Neil Armstrong
2026-03-17 9:34 ` Konrad Dybcio
2026-03-14 2:37 ` [PATCH v2 3/6] arm64: dts: qcom: hamoa: Fix xo clock supply of platform " Vladimir Zapolskiy
` (4 subsequent siblings)
6 siblings, 2 replies; 16+ messages in thread
From: Vladimir Zapolskiy @ 2026-03-14 2:37 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio
Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Abel Vesa, linux-arm-msm, devicetree
The expected frequency of SD host controller core supply clock is 19.2MHz,
while RPMH_CXO_CLK clock frequency on SM8650 platform is 38.4MHz.
Apparently the overclocked supply clock could be good enough on some
boards and even with the most of SD cards, however some low-end UHS-I
SD cards in SDR104 mode of the host controller produce I/O errors in
runtime, fortunately this problem is gone, if the "xo" clock frequency
matches the expected 19.2MHz clock rate.
Fixes: 10e024671295 ("arm64: dts: qcom: sm8650: add interconnect dependent device nodes")
Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8650.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi
index 357e43b90740..e915e7209750 100644
--- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
@@ -4957,7 +4957,7 @@ sdhc_2: mmc@8804000 {
clocks = <&gcc GCC_SDCC2_AHB_CLK>,
<&gcc GCC_SDCC2_APPS_CLK>,
- <&rpmhcc RPMH_CXO_CLK>;
+ <&bi_tcxo_div2>;
clock-names = "iface",
"core",
"xo";
--
2.49.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 3/6] arm64: dts: qcom: hamoa: Fix xo clock supply of platform SD host controller
2026-03-14 2:37 [PATCH v2 0/6] arm64: dts: qcom: sm8x50: Enable UHS-I SDR50 and SDR104 SD card modes Vladimir Zapolskiy
2026-03-14 2:37 ` [PATCH v2 1/6] arm64: dts: qcom: sm8550: Fix xo clock supply of platform SD host controller Vladimir Zapolskiy
2026-03-14 2:37 ` [PATCH v2 2/6] arm64: dts: qcom: sm8650: Fix xo clock supply of " Vladimir Zapolskiy
@ 2026-03-14 2:37 ` Vladimir Zapolskiy
2026-03-16 8:58 ` Neil Armstrong
2026-03-17 9:35 ` Konrad Dybcio
2026-03-14 2:37 ` [PATCH v2 4/6] arm64: dts: qcom: sm8450: Enable UHS-I SDR50 and SDR104 SD card modes Vladimir Zapolskiy
` (3 subsequent siblings)
6 siblings, 2 replies; 16+ messages in thread
From: Vladimir Zapolskiy @ 2026-03-14 2:37 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio
Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Abel Vesa, linux-arm-msm, devicetree
The expected frequency of SD host controller core supply clock is 19.2MHz,
while RPMH_CXO_CLK clock frequency on SM8650 platform is 38.4MHz.
Apparently the overclocked supply clock could be good enough on some
boards and even with the most of SD cards, however some low-end UHS-I
SD cards in SDR104 mode of the host controller produce I/O errors in
runtime, fortunately this problem is gone, if the "xo" clock frequency
matches the expected 19.2MHz clock rate.
Fixes: ffb21c1e19b1 ("arm64: dts: qcom: x1e80100: Describe the SDHC controllers")
Reported-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
---
arch/arm64/boot/dts/qcom/hamoa.dtsi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/hamoa.dtsi b/arch/arm64/boot/dts/qcom/hamoa.dtsi
index a3a045732941..140c8f1237da 100644
--- a/arch/arm64/boot/dts/qcom/hamoa.dtsi
+++ b/arch/arm64/boot/dts/qcom/hamoa.dtsi
@@ -4714,7 +4714,7 @@ sdhc_2: mmc@8804000 {
clocks = <&gcc GCC_SDCC2_AHB_CLK>,
<&gcc GCC_SDCC2_APPS_CLK>,
- <&rpmhcc RPMH_CXO_CLK>;
+ <&bi_tcxo_div2>;
clock-names = "iface", "core", "xo";
iommus = <&apps_smmu 0x520 0>;
qcom,dll-config = <0x0007642c>;
@@ -4767,7 +4767,7 @@ sdhc_4: mmc@8844000 {
clocks = <&gcc GCC_SDCC4_AHB_CLK>,
<&gcc GCC_SDCC4_APPS_CLK>,
- <&rpmhcc RPMH_CXO_CLK>;
+ <&bi_tcxo_div2>;
clock-names = "iface", "core", "xo";
iommus = <&apps_smmu 0x160 0>;
qcom,dll-config = <0x0007642c>;
--
2.49.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 4/6] arm64: dts: qcom: sm8450: Enable UHS-I SDR50 and SDR104 SD card modes
2026-03-14 2:37 [PATCH v2 0/6] arm64: dts: qcom: sm8x50: Enable UHS-I SDR50 and SDR104 SD card modes Vladimir Zapolskiy
` (2 preceding siblings ...)
2026-03-14 2:37 ` [PATCH v2 3/6] arm64: dts: qcom: hamoa: Fix xo clock supply of platform " Vladimir Zapolskiy
@ 2026-03-14 2:37 ` Vladimir Zapolskiy
2026-03-14 2:37 ` [PATCH v2 5/6] arm64: dts: qcom: sm8550: " Vladimir Zapolskiy
` (2 subsequent siblings)
6 siblings, 0 replies; 16+ messages in thread
From: Vladimir Zapolskiy @ 2026-03-14 2:37 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio
Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Abel Vesa, linux-arm-msm, devicetree, Konrad Dybcio
The reported problem of some non-working UHS-I speed modes on SM8450
originates in commit 0a631a36f724 ("arm64: dts: qcom: Add device tree
for Sony Xperia 1 IV"), and then it was spread to all SM8450 powered
platforms by commit 9d561dc4e5cc ("arm64: dts: qcom: sm8450: disable
SDHCI SDR104/SDR50 on all boards").
The tests show that the rootcause of the problem was related to an
overclocking of SD cards, and it's fixed later on by commit a27ac3806b0a
("clk: qcom: gcc-sm8450: Use floor ops for SDCC RCGs").
Since then both SDR50 and SDR104 speed modes are working fine on SM8450,
tested on SM8450-HDK:
SDR50 speed mode:
mmc0: new UHS-I speed SDR50 SDHC card at address 0001
mmcblk0: mmc0:0001 00000 14.6 GiB
mmcblk0: p1
% dd if=/dev/mmcblk0p1 of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 24.6254 s, 43.6 MB/s
SDR104 speed mode:
mmc0: new UHS-I speed SDR104 SDHC card at address 59b4
mmcblk0: mmc0:59b4 USDU1 28.3 GiB
mmcblk0: p1
% dd if=/dev/mmcblk0p1 of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 12.3266 s, 87.1 MB/s
Remove the restrictions on SD card speed modes from the SM8450 platform
dtsi file and enable UHS-I speed modes.
Fixes: 9d561dc4e5cc ("arm64: dts: qcom: sm8450: disable SDHCI SDR104/SDR50 on all boards")
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8450.dtsi | 3 ---
1 file changed, 3 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi
index fd2d5648b92a..d34de55b0d48 100644
--- a/arch/arm64/boot/dts/qcom/sm8450.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi
@@ -5429,9 +5429,6 @@ sdhc_2: mmc@8804000 {
bus-width = <4>;
dma-coherent;
- /* Forbid SDR104/SDR50 - broken hw! */
- sdhci-caps-mask = <0x3 0x0>;
-
status = "disabled";
sdhc2_opp_table: opp-table {
--
2.49.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 5/6] arm64: dts: qcom: sm8550: Enable UHS-I SDR50 and SDR104 SD card modes
2026-03-14 2:37 [PATCH v2 0/6] arm64: dts: qcom: sm8x50: Enable UHS-I SDR50 and SDR104 SD card modes Vladimir Zapolskiy
` (3 preceding siblings ...)
2026-03-14 2:37 ` [PATCH v2 4/6] arm64: dts: qcom: sm8450: Enable UHS-I SDR50 and SDR104 SD card modes Vladimir Zapolskiy
@ 2026-03-14 2:37 ` Vladimir Zapolskiy
2026-03-23 13:05 ` Konrad Dybcio
2026-03-14 2:37 ` [PATCH v2 6/6] arm64: dts: qcom: sm8650: " Vladimir Zapolskiy
2026-03-19 3:31 ` [PATCH v2 0/6] arm64: dts: qcom: sm8x50: " Bjorn Andersson
6 siblings, 1 reply; 16+ messages in thread
From: Vladimir Zapolskiy @ 2026-03-14 2:37 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio
Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Abel Vesa, linux-arm-msm, devicetree
The restriction on UHS-I speed modes was added to all SM8550 platforms
by copying it from SM8450 dtsi file, and due to the overclocking of SD
cards it was an actually reproducible problem. Since the latter issue
has been fixed, UHS-I speed modes are working fine on SM8550 boards,
below is the test performed on SM8550-HDK:
SDR50 speed mode:
mmc0: new UHS-I speed SDR50 SDHC card at address 0001
mmcblk0: mmc0:0001 00000 14.6 GiB
mmcblk0: p1
% dd if=/dev/mmcblk0p1 of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 23.5468 s, 45.6 MB/s
SDR104 speed mode:
mmc0: new UHS-I speed SDR104 SDHC card at address 59b4
mmcblk0: mmc0:59b4 USDU1 28.3 GiB
mmcblk0: p1
% dd if=/dev/mmcblk0p1 of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 11.9819 s, 89.6 MB/s
Unset the UHS-I speed mode restrictions from the SM8550 platform dtsi
file, there is no indication that the SDHC controller is broken.
Fixes: ffc50b2d3828 ("arm64: dts: qcom: Add base SM8550 dtsi")
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8550.dtsi | 3 ---
1 file changed, 3 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi
index 03672df25eeb..333dbf84b631 100644
--- a/arch/arm64/boot/dts/qcom/sm8550.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi
@@ -3227,9 +3227,6 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
max-sd-hs-hz = <37500000>;
dma-coherent;
- /* Forbid SDR104/SDR50 - broken hw! */
- sdhci-caps-mask = <0x3 0>;
-
status = "disabled";
sdhc2_opp_table: opp-table {
--
2.49.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 6/6] arm64: dts: qcom: sm8650: Enable UHS-I SDR50 and SDR104 SD card modes
2026-03-14 2:37 [PATCH v2 0/6] arm64: dts: qcom: sm8x50: Enable UHS-I SDR50 and SDR104 SD card modes Vladimir Zapolskiy
` (4 preceding siblings ...)
2026-03-14 2:37 ` [PATCH v2 5/6] arm64: dts: qcom: sm8550: " Vladimir Zapolskiy
@ 2026-03-14 2:37 ` Vladimir Zapolskiy
2026-03-23 13:06 ` Konrad Dybcio
2026-03-19 3:31 ` [PATCH v2 0/6] arm64: dts: qcom: sm8x50: " Bjorn Andersson
6 siblings, 1 reply; 16+ messages in thread
From: Vladimir Zapolskiy @ 2026-03-14 2:37 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio
Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Abel Vesa, linux-arm-msm, devicetree, Konrad Dybcio
The restriction on UHS-I speed modes was added to all SM8650 platforms
by copying it from SM8450 and SM8550 dtsi files, and it was an actually
reproducible problem due to the overclocking of SD cards. Since the latter
issue has been fixed in the SM8650 GCC driver, UHS-I speed modes are
working fine on SM8650 boards, below is the test performed on SM8650-HDK:
SDR50 speed mode:
mmc0: new UHS-I speed SDR50 SDHC card at address 0001
mmcblk0: mmc0:0001 00000 14.6 GiB
mmcblk0: p1
% dd if=/dev/mmcblk0p1 of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 24.8086 s, 43.3 MB/s
SDR104 speed mode:
mmc0: new UHS-I speed SDR104 SDHC card at address 59b4
mmcblk0: mmc0:59b4 USDU1 28.3 GiB
mmcblk0: p1
% dd if=/dev/mmcblk0p1 of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 12.9448 s, 82.9 MB/s
Unset the UHS-I speed mode restrictions from the SM8550 platform dtsi
file, there is no indication that the SDHC controller is broken.
Fixes: 10e024671295 ("arm64: dts: qcom: sm8650: add interconnect dependent device nodes")
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8650.dtsi | 3 ---
1 file changed, 3 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi
index e915e7209750..d0180e871bdf 100644
--- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
@@ -4976,9 +4976,6 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
bus-width = <4>;
- /* Forbid SDR104/SDR50 - broken hw! */
- sdhci-caps-mask = <0x3 0>;
-
qcom,dll-config = <0x0007642c>;
qcom,ddr-config = <0x80040868>;
--
2.49.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v2 2/6] arm64: dts: qcom: sm8650: Fix xo clock supply of SD host controller
2026-03-14 2:37 ` [PATCH v2 2/6] arm64: dts: qcom: sm8650: Fix xo clock supply of " Vladimir Zapolskiy
@ 2026-03-16 8:56 ` Neil Armstrong
2026-03-17 9:34 ` Konrad Dybcio
1 sibling, 0 replies; 16+ messages in thread
From: Neil Armstrong @ 2026-03-16 8:56 UTC (permalink / raw)
To: Vladimir Zapolskiy, Bjorn Andersson, Konrad Dybcio
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Abel Vesa,
linux-arm-msm, devicetree
On 3/14/26 03:37, Vladimir Zapolskiy wrote:
> The expected frequency of SD host controller core supply clock is 19.2MHz,
> while RPMH_CXO_CLK clock frequency on SM8650 platform is 38.4MHz.
>
> Apparently the overclocked supply clock could be good enough on some
> boards and even with the most of SD cards, however some low-end UHS-I
> SD cards in SDR104 mode of the host controller produce I/O errors in
> runtime, fortunately this problem is gone, if the "xo" clock frequency
> matches the expected 19.2MHz clock rate.
>
> Fixes: 10e024671295 ("arm64: dts: qcom: sm8650: add interconnect dependent device nodes")
> Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
> ---
> arch/arm64/boot/dts/qcom/sm8650.dtsi | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi
> index 357e43b90740..e915e7209750 100644
> --- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
> @@ -4957,7 +4957,7 @@ sdhc_2: mmc@8804000 {
>
> clocks = <&gcc GCC_SDCC2_AHB_CLK>,
> <&gcc GCC_SDCC2_APPS_CLK>,
> - <&rpmhcc RPMH_CXO_CLK>;
> + <&bi_tcxo_div2>;
> clock-names = "iface",
> "core",
> "xo";
Thanks, I confirm the sdhc block is feed with the xo/2.
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Thanks,
Neil
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2 1/6] arm64: dts: qcom: sm8550: Fix xo clock supply of platform SD host controller
2026-03-14 2:37 ` [PATCH v2 1/6] arm64: dts: qcom: sm8550: Fix xo clock supply of platform SD host controller Vladimir Zapolskiy
@ 2026-03-16 8:56 ` Neil Armstrong
2026-03-17 9:33 ` Konrad Dybcio
1 sibling, 0 replies; 16+ messages in thread
From: Neil Armstrong @ 2026-03-16 8:56 UTC (permalink / raw)
To: Vladimir Zapolskiy, Bjorn Andersson, Konrad Dybcio
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Abel Vesa,
linux-arm-msm, devicetree
On 3/14/26 03:37, Vladimir Zapolskiy wrote:
> The expected frequency of SD host controller core supply clock is 19.2MHz,
> while RPMH_CXO_CLK clock frequency on SM8650 platform is 38.4MHz.
>
> Apparently the overclocked supply clock could be good enough on some
> boards and even with the most of SD cards, however some low-end UHS-I
> SD cards in SDR104 mode of the host controller produce I/O errors in
> runtime, fortunately this problem is gone, if the "xo" clock frequency
> matches the expected 19.2MHz clock rate.
>
> Fixes: ffc50b2d3828 ("arm64: dts: qcom: Add base SM8550 dtsi")
> Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
> ---
> arch/arm64/boot/dts/qcom/sm8550.dtsi | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi
> index e3f93f4f412d..03672df25eeb 100644
> --- a/arch/arm64/boot/dts/qcom/sm8550.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi
> @@ -3210,7 +3210,7 @@ sdhc_2: mmc@8804000 {
>
> clocks = <&gcc GCC_SDCC2_AHB_CLK>,
> <&gcc GCC_SDCC2_APPS_CLK>,
> - <&rpmhcc RPMH_CXO_CLK>;
> + <&bi_tcxo_div2>;
> clock-names = "iface", "core", "xo";
> iommus = <&apps_smmu 0x540 0>;
> qcom,dll-config = <0x0007642c>;
Thanks, I confirm the sdhc block is feed with the xo/2.
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Thanks,
Neil
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2 3/6] arm64: dts: qcom: hamoa: Fix xo clock supply of platform SD host controller
2026-03-14 2:37 ` [PATCH v2 3/6] arm64: dts: qcom: hamoa: Fix xo clock supply of platform " Vladimir Zapolskiy
@ 2026-03-16 8:58 ` Neil Armstrong
2026-03-17 9:35 ` Konrad Dybcio
1 sibling, 0 replies; 16+ messages in thread
From: Neil Armstrong @ 2026-03-16 8:58 UTC (permalink / raw)
To: Vladimir Zapolskiy, Bjorn Andersson, Konrad Dybcio
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Abel Vesa,
linux-arm-msm, devicetree
On 3/14/26 03:37, Vladimir Zapolskiy wrote:
> The expected frequency of SD host controller core supply clock is 19.2MHz,
> while RPMH_CXO_CLK clock frequency on SM8650 platform is 38.4MHz.
>
> Apparently the overclocked supply clock could be good enough on some
> boards and even with the most of SD cards, however some low-end UHS-I
> SD cards in SDR104 mode of the host controller produce I/O errors in
> runtime, fortunately this problem is gone, if the "xo" clock frequency
> matches the expected 19.2MHz clock rate.
>
> Fixes: ffb21c1e19b1 ("arm64: dts: qcom: x1e80100: Describe the SDHC controllers")
> Reported-by: Neil Armstrong <neil.armstrong@linaro.org>
> Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
> ---
> arch/arm64/boot/dts/qcom/hamoa.dtsi | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/hamoa.dtsi b/arch/arm64/boot/dts/qcom/hamoa.dtsi
> index a3a045732941..140c8f1237da 100644
> --- a/arch/arm64/boot/dts/qcom/hamoa.dtsi
> +++ b/arch/arm64/boot/dts/qcom/hamoa.dtsi
> @@ -4714,7 +4714,7 @@ sdhc_2: mmc@8804000 {
>
> clocks = <&gcc GCC_SDCC2_AHB_CLK>,
> <&gcc GCC_SDCC2_APPS_CLK>,
> - <&rpmhcc RPMH_CXO_CLK>;
> + <&bi_tcxo_div2>;
> clock-names = "iface", "core", "xo";
> iommus = <&apps_smmu 0x520 0>;
> qcom,dll-config = <0x0007642c>;
> @@ -4767,7 +4767,7 @@ sdhc_4: mmc@8844000 {
>
> clocks = <&gcc GCC_SDCC4_AHB_CLK>,
> <&gcc GCC_SDCC4_APPS_CLK>,
> - <&rpmhcc RPMH_CXO_CLK>;
> + <&bi_tcxo_div2>;
> clock-names = "iface", "core", "xo";
> iommus = <&apps_smmu 0x160 0>;
> qcom,dll-config = <0x0007642c>;
Since hamoa inherits the same xo scheme with a div/2 in rpmh,
it's coherent that it also needs xo/2 like 8550 & 8650.
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Thanks,
Neil
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2 1/6] arm64: dts: qcom: sm8550: Fix xo clock supply of platform SD host controller
2026-03-14 2:37 ` [PATCH v2 1/6] arm64: dts: qcom: sm8550: Fix xo clock supply of platform SD host controller Vladimir Zapolskiy
2026-03-16 8:56 ` Neil Armstrong
@ 2026-03-17 9:33 ` Konrad Dybcio
1 sibling, 0 replies; 16+ messages in thread
From: Konrad Dybcio @ 2026-03-17 9:33 UTC (permalink / raw)
To: Vladimir Zapolskiy, Bjorn Andersson, Konrad Dybcio
Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Abel Vesa, linux-arm-msm, devicetree
On 3/14/26 3:37 AM, Vladimir Zapolskiy wrote:
> The expected frequency of SD host controller core supply clock is 19.2MHz,
> while RPMH_CXO_CLK clock frequency on SM8650 platform is 38.4MHz.
>
> Apparently the overclocked supply clock could be good enough on some
> boards and even with the most of SD cards, however some low-end UHS-I
> SD cards in SDR104 mode of the host controller produce I/O errors in
> runtime, fortunately this problem is gone, if the "xo" clock frequency
> matches the expected 19.2MHz clock rate.
>
> Fixes: ffc50b2d3828 ("arm64: dts: qcom: Add base SM8550 dtsi")
> Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2 2/6] arm64: dts: qcom: sm8650: Fix xo clock supply of SD host controller
2026-03-14 2:37 ` [PATCH v2 2/6] arm64: dts: qcom: sm8650: Fix xo clock supply of " Vladimir Zapolskiy
2026-03-16 8:56 ` Neil Armstrong
@ 2026-03-17 9:34 ` Konrad Dybcio
1 sibling, 0 replies; 16+ messages in thread
From: Konrad Dybcio @ 2026-03-17 9:34 UTC (permalink / raw)
To: Vladimir Zapolskiy, Bjorn Andersson, Konrad Dybcio
Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Abel Vesa, linux-arm-msm, devicetree
On 3/14/26 3:37 AM, Vladimir Zapolskiy wrote:
> The expected frequency of SD host controller core supply clock is 19.2MHz,
> while RPMH_CXO_CLK clock frequency on SM8650 platform is 38.4MHz.
>
> Apparently the overclocked supply clock could be good enough on some
> boards and even with the most of SD cards, however some low-end UHS-I
> SD cards in SDR104 mode of the host controller produce I/O errors in
> runtime, fortunately this problem is gone, if the "xo" clock frequency
> matches the expected 19.2MHz clock rate.
>
> Fixes: 10e024671295 ("arm64: dts: qcom: sm8650: add interconnect dependent device nodes")
> Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2 3/6] arm64: dts: qcom: hamoa: Fix xo clock supply of platform SD host controller
2026-03-14 2:37 ` [PATCH v2 3/6] arm64: dts: qcom: hamoa: Fix xo clock supply of platform " Vladimir Zapolskiy
2026-03-16 8:58 ` Neil Armstrong
@ 2026-03-17 9:35 ` Konrad Dybcio
1 sibling, 0 replies; 16+ messages in thread
From: Konrad Dybcio @ 2026-03-17 9:35 UTC (permalink / raw)
To: Vladimir Zapolskiy, Bjorn Andersson, Konrad Dybcio
Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Abel Vesa, linux-arm-msm, devicetree
On 3/14/26 3:37 AM, Vladimir Zapolskiy wrote:
> The expected frequency of SD host controller core supply clock is 19.2MHz,
> while RPMH_CXO_CLK clock frequency on SM8650 platform is 38.4MHz.
>
> Apparently the overclocked supply clock could be good enough on some
> boards and even with the most of SD cards, however some low-end UHS-I
> SD cards in SDR104 mode of the host controller produce I/O errors in
> runtime, fortunately this problem is gone, if the "xo" clock frequency
> matches the expected 19.2MHz clock rate.
>
> Fixes: ffb21c1e19b1 ("arm64: dts: qcom: x1e80100: Describe the SDHC controllers")
> Reported-by: Neil Armstrong <neil.armstrong@linaro.org>
> Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2 0/6] arm64: dts: qcom: sm8x50: Enable UHS-I SDR50 and SDR104 SD card modes
2026-03-14 2:37 [PATCH v2 0/6] arm64: dts: qcom: sm8x50: Enable UHS-I SDR50 and SDR104 SD card modes Vladimir Zapolskiy
` (5 preceding siblings ...)
2026-03-14 2:37 ` [PATCH v2 6/6] arm64: dts: qcom: sm8650: " Vladimir Zapolskiy
@ 2026-03-19 3:31 ` Bjorn Andersson
6 siblings, 0 replies; 16+ messages in thread
From: Bjorn Andersson @ 2026-03-19 3:31 UTC (permalink / raw)
To: Konrad Dybcio, Vladimir Zapolskiy
Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Abel Vesa, linux-arm-msm, devicetree
On Sat, 14 Mar 2026 04:37:09 +0200, Vladimir Zapolskiy wrote:
> The reported problem of some non-working UHS-I speed modes on SM8450
> originates in commit 0a631a36f724 ("arm64: dts: qcom: Add device tree
> for Sony Xperia 1 IV"), and then it was spread to all SM8450 powered
> platforms by commit 9d561dc4e5cc ("arm64: dts: qcom: sm8450: disable
> SDHCI SDR104/SDR50 on all boards").
>
> The tests show that the rootcause of the problem was related to an
> overclocking of SD cards, and it's fixed later on by commit a27ac3806b0a
> ("clk: qcom: gcc-sm8450: Use floor ops for SDCC RCGs").
>
> [...]
Applied, thanks!
[1/6] arm64: dts: qcom: sm8550: Fix xo clock supply of platform SD host controller
commit: 7f5542e0ad5396387604697f6d61b86b73e7ae01
[2/6] arm64: dts: qcom: sm8650: Fix xo clock supply of SD host controller
commit: 75ac6441967e0898e1c6c1268ed5334e1422ed1f
[3/6] arm64: dts: qcom: hamoa: Fix xo clock supply of platform SD host controller
commit: 771157329a63390748a43b91f467f29d3820f108
[4/6] arm64: dts: qcom: sm8450: Enable UHS-I SDR50 and SDR104 SD card modes
commit: 77cd9162a37d57a7dcfe5a75296e85a93547b33a
[5/6] arm64: dts: qcom: sm8550: Enable UHS-I SDR50 and SDR104 SD card modes
commit: 100246cda7b85d2aec0ee2dc0d449397b87d8e1a
[6/6] arm64: dts: qcom: sm8650: Enable UHS-I SDR50 and SDR104 SD card modes
commit: eebafbff4c9bcef1d59d892b21cd6573dc014181
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2 5/6] arm64: dts: qcom: sm8550: Enable UHS-I SDR50 and SDR104 SD card modes
2026-03-14 2:37 ` [PATCH v2 5/6] arm64: dts: qcom: sm8550: " Vladimir Zapolskiy
@ 2026-03-23 13:05 ` Konrad Dybcio
0 siblings, 0 replies; 16+ messages in thread
From: Konrad Dybcio @ 2026-03-23 13:05 UTC (permalink / raw)
To: Vladimir Zapolskiy, Bjorn Andersson, Konrad Dybcio
Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Abel Vesa, linux-arm-msm, devicetree
On 3/14/26 3:37 AM, Vladimir Zapolskiy wrote:
> The restriction on UHS-I speed modes was added to all SM8550 platforms
> by copying it from SM8450 dtsi file, and due to the overclocking of SD
> cards it was an actually reproducible problem. Since the latter issue
> has been fixed, UHS-I speed modes are working fine on SM8550 boards,
> below is the test performed on SM8550-HDK:
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
I see a doc saying that DDR50 is not supported instead, and that it
should be reflected by the registers for SDC2 (but not for SDC4)
Konrad
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2 6/6] arm64: dts: qcom: sm8650: Enable UHS-I SDR50 and SDR104 SD card modes
2026-03-14 2:37 ` [PATCH v2 6/6] arm64: dts: qcom: sm8650: " Vladimir Zapolskiy
@ 2026-03-23 13:06 ` Konrad Dybcio
0 siblings, 0 replies; 16+ messages in thread
From: Konrad Dybcio @ 2026-03-23 13:06 UTC (permalink / raw)
To: Vladimir Zapolskiy, Bjorn Andersson, Konrad Dybcio
Cc: Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Abel Vesa, linux-arm-msm, devicetree
On 3/14/26 3:37 AM, Vladimir Zapolskiy wrote:
> The restriction on UHS-I speed modes was added to all SM8650 platforms
> by copying it from SM8450 and SM8550 dtsi files, and it was an actually
> reproducible problem due to the overclocking of SD cards. Since the latter
> issue has been fixed in the SM8650 GCC driver, UHS-I speed modes are
> working fine on SM8650 boards, below is the test performed on SM8650-HDK:
>
> SDR50 speed mode:
>
> mmc0: new UHS-I speed SDR50 SDHC card at address 0001
> mmcblk0: mmc0:0001 00000 14.6 GiB
> mmcblk0: p1
>
> % dd if=/dev/mmcblk0p1 of=/dev/null bs=1M count=1024
> 1024+0 records in
> 1024+0 records out
> 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 24.8086 s, 43.3 MB/s
>
> SDR104 speed mode:
>
> mmc0: new UHS-I speed SDR104 SDHC card at address 59b4
> mmcblk0: mmc0:59b4 USDU1 28.3 GiB
> mmcblk0: p1
>
> % dd if=/dev/mmcblk0p1 of=/dev/null bs=1M count=1024
> 1024+0 records in
> 1024+0 records out
> 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 12.9448 s, 82.9 MB/s
>
> Unset the UHS-I speed mode restrictions from the SM8550 platform dtsi
> file, there is no indication that the SDHC controller is broken.
>
> Fixes: 10e024671295 ("arm64: dts: qcom: sm8650: add interconnect dependent device nodes")
> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2026-03-23 13:06 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-14 2:37 [PATCH v2 0/6] arm64: dts: qcom: sm8x50: Enable UHS-I SDR50 and SDR104 SD card modes Vladimir Zapolskiy
2026-03-14 2:37 ` [PATCH v2 1/6] arm64: dts: qcom: sm8550: Fix xo clock supply of platform SD host controller Vladimir Zapolskiy
2026-03-16 8:56 ` Neil Armstrong
2026-03-17 9:33 ` Konrad Dybcio
2026-03-14 2:37 ` [PATCH v2 2/6] arm64: dts: qcom: sm8650: Fix xo clock supply of " Vladimir Zapolskiy
2026-03-16 8:56 ` Neil Armstrong
2026-03-17 9:34 ` Konrad Dybcio
2026-03-14 2:37 ` [PATCH v2 3/6] arm64: dts: qcom: hamoa: Fix xo clock supply of platform " Vladimir Zapolskiy
2026-03-16 8:58 ` Neil Armstrong
2026-03-17 9:35 ` Konrad Dybcio
2026-03-14 2:37 ` [PATCH v2 4/6] arm64: dts: qcom: sm8450: Enable UHS-I SDR50 and SDR104 SD card modes Vladimir Zapolskiy
2026-03-14 2:37 ` [PATCH v2 5/6] arm64: dts: qcom: sm8550: " Vladimir Zapolskiy
2026-03-23 13:05 ` Konrad Dybcio
2026-03-14 2:37 ` [PATCH v2 6/6] arm64: dts: qcom: sm8650: " Vladimir Zapolskiy
2026-03-23 13:06 ` Konrad Dybcio
2026-03-19 3:31 ` [PATCH v2 0/6] arm64: dts: qcom: sm8x50: " Bjorn Andersson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox