RE: [PATCH v2] arm64: dts: rockchip: Fix SD card init on rk3399-nanopi4

From: Christian Loehle
Date: Thu Jul 14 2022 - 12:46:11 EST


I only briefly skimmed the discussion, but does this mean that a soft-reset (CMD0) of a UHS (post-voltage-switch) will not work?
(As the card/spec requires a power-cycle by the host which will not come, right?)
Can you try this real quick? I can give you a mmc-utils snippet if you have trouble issuing one.
If that does indeed not work I think the general approach is to disable uhs in the dts or at least document that.
Regards,
Christian

-----Original Message-----
From: Christian Kohlschütter <christian@xxxxxxxxxxxxxxxx>
Sent: Donnerstag, 14. Juli 2022 18:27
To: Robin Murphy <robin.murphy@xxxxxxx>; Markus Reichl <m.reichl@xxxxxxxxxxxxx>; Heiko Stübner <heiko@xxxxxxxxx>; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-rockchip@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Linux MMC List <linux-mmc@xxxxxxxxxxxxxxx>
Subject: [PATCH v2] arm64: dts: rockchip: Fix SD card init on rk3399-nanopi4

mmc/SD-card initialization may fail on NanoPi r4s with
"mmc1: problem reading SD Status register" /
"mmc1: error -110 whilst initialising SD card"

Moreover, rebooting would also sometimes hang.

This is caused by the gpio entry for the vcc3v0-sd regulator;
even though it appears to be the correct GPIO pin, the presence
of the binding causes these errors.

Fix the regulator to drop the gpio binding and add a comment
to prevent accidental reintroduction of that entry.

Signed-off-by: Christian Kohlschütter <christian@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi
index 8c0ff6c96e03..d5f8a62e01be 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi
@@ -67,7 +67,7 @@ vcc1v8_s3: vcc1v8-s3 {
vcc3v0_sd: vcc3v0-sd {
compatible = "regulator-fixed";
enable-active-high;
- gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
+ // gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; // breaks SDHC card support
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_pwr_h>;
regulator-always-on;
--
2.36.1



Hyperstone GmbH | Reichenaustr. 39a | 78467 Konstanz
Managing Director: Dr. Jan Peter Berns.
Commercial register of local courts: Freiburg HRB381782