[PATCH] arm64: dts: rockchip: Enable SDR104 on the ODROID-M1 SD card
Igor Velkov via B4 Relay
devnull+iav.iav.lv at kernel.org
Mon Nov 9 18:50:01 PST 2026
From: Igor Velkov <iav at iav.lv>
The SD card already switches to 1.8 V, but only SDR50 is allowed, and
clk_sdmmc0 on RK3568 is a mux without a divider: dw_mmc-rockchip asks
it for twice the card clock, 200 MHz for SDR50, the mux rounds down to
the 100 MHz parent and the card runs at 50 MHz.
Allow SDR104 instead; the MMC core still falls back to SDR50 for cards
without SDR104. With the 150 MHz max-frequency from rk356x-base.dtsi
the clock comes from the 300 MHz parent and the card runs at 150 MHz.
Hardkernel's vendor kernel already uses sd-uhs-sdr104 on this board.
With a SanDisk 128 GB card, direct read goes from 22 MB/s to
58-64 MB/s and direct write from 20 MB/s to 47-50 MB/s.
Signed-off-by: Igor Velkov <iav at iav.lv>
---
Tested with an Armbian 7.3.3 kernel (rockchip64), the property added to
the DTB with fdtput: reboot, sysrq-b, watchdog reset, poweroff, s2idle,
deep, hibernate, hybrid-sleep and suspend-then-hibernate; the card
re-tuned and came back in SDR104 at 150 MHz in all 29 runs.
---
arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
index ec43dee18094..6f77e73abc8e 100644
--- a/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3568-odroid-m1.dts
@@ -610,7 +610,7 @@ &sdmmc0 {
disable-wp;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
- sd-uhs-sdr50;
+ sd-uhs-sdr104;
vmmc-supply = <&vcc3v3_sd>;
vqmmc-supply = <&vccio_sd>;
status = "okay";
---
base-commit: c3baae5f1a15645cddadcb2b9abddef5df291f59
change-id: 20261110-odroid-m1-sdr104-f6e03a0c5ac9
Best regards,
--
Igor Velkov <iav at iav.lv>
More information about the Linux-rockchip
mailing list