[PATCH v1 0/3] mmc: dw_mmc-rockchip: Add stability quirk for NanoPi R76S
Marco Schirrmeister
mschirrmeister at gmail.com
Fri Jan 9 17:07:12 PST 2026
This series addresses a microSD stability issue on the FriendlyElec
NanoPi R76S (RK3576). The board currently suffers from a 400kHz
retuning loop when the controller attempts to enter runtime-suspend
during idle periods.
Evidence of the failure in dmesg:
[Fri Jan 2 01:28:02 2026] mmc_host mmc1: Bus speed (slot 0) = 400000Hz
[Fri Jan 2 01:28:03 2026] mmc_host mmc1: Bus speed (slot 0) = 198000000Hz
[Fri Jan 2 01:28:03 2026] dwmmc_rockchip 2a310000.mmc: Successfully tuned phase to 233
[Fri Jan 2 01:28:04 2026] mmc_host mmc1: Bus speed (slot 0) = 400000Hz
Testing confirmed that the issue can be manually addressed by
disabling runtime PM via sysfs:
echo on > /sys/devices/platform/soc/2a310000.mmc/power/control
I experimented with various changes in the Device Tree, including
lowering the bus frequency and attempting to keep the power domains
active, but nothing stopped the retuning loop.
The issue only went away when I forced the controller to stay active
by disabling the runtime power management.
This quirk is the only way I have found to keep the SDR104 link from
crashing on the NanoPi R76S, I am open to suggestions if there is
a better way to handle this in the driver or the DTS.
Marco Schirrmeister (3):
dt-bindings: mmc: rockchip-dw-mshc: add rockchip,disable-runtime-pm
mmc: host: dw_mmc-rockchip: add rockchip,disable-runtime-pm quirk
arm64: dts: rockchip: add stability quirk to NanoPi R76S
.../bindings/mmc/rockchip-dw-mshc.yaml | 8 ++++++
.../boot/dts/rockchip/rk3576-nanopi-r76s.dts | 1 +
drivers/mmc/host/dw_mmc-rockchip.c | 25 ++++++++++++++++---
3 files changed, 31 insertions(+), 3 deletions(-)
--
2.52.0
More information about the linux-arm-kernel
mailing list