[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250907-fix-reboot-v1-1-7606fc91254e@baylibre.com>
Date: Sun, 07 Sep 2025 14:29:21 +0200
From: Valerio Setti via B4 Relay <devnull+vsetti.baylibre.com@...nel.org>
To: Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Neil Armstrong <neil.armstrong@...aro.org>,
Kevin Hilman <khilman@...libre.com>, Jerome Brunet <jbrunet@...libre.com>,
Martin Blumenstingl <martin.blumenstingl@...glemail.com>
Cc: devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-amlogic@...ts.infradead.org, linux-kernel@...r.kernel.org,
Valerio Setti <vsetti@...libre.com>
Subject: [PATCH] arm64: dts: amlogic: gxbb-odroidc2: remove UHS capability
for SD card
From: Valerio Setti <vsetti@...libre.com>
This is meant to resolve reboot not working on this board.
The problem is as follows. In order to be able to switch from HS to UHS
mode the bus voltage needs to be reduced from 3.3V down to 1.8V and this
is achieved by the "vqmmc-supply" regulator. The ROM bootloader is only
able to manage the card in HS mode (3.3V) and the switch HS->UHS happen
at boottime in the kernel. The problem appears when the reboot command
is issued or watchdog expires because in this case the "vqmmc-supply"
voltage is not returned back at 3.3V before rebooting the board so the
ROM bootloader will be completely stuck.
Therefore this commit removes both "vqmmc-supply" property, which is the
one causing the reboot problem, as well as all the UHS modes which would
now became unreachable due to this regulator control removal.
In terms of performance the main drawback of this commit is limiting the
SD card bus speed to HS (25 MB/s) instead of UHS DDR50 (50 MB/s). However
this comes with the benefit of being able to reboot the board, so it
sounds like a reasonable compromise.
Signed-off-by: Valerio Setti <vsetti@...libre.com>
---
arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index 959bd8d77a82ebc78c5e0592d7613e692e4ede4e..331a0a62b884389b4e0d4d157fff7f9c8738c89d 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -348,17 +348,16 @@ &sd_emmc_b {
bus-width = <4>;
cap-sd-highspeed;
- sd-uhs-sdr12;
- sd-uhs-sdr25;
- sd-uhs-sdr50;
- sd-uhs-ddr50;
max-frequency = <100000000>;
disable-wp;
cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
vmmc-supply = <&tflash_vdd>;
- vqmmc-supply = <&tf_io>;
+ /*
+ * Control of vqmmc-supply is intentionally omitted because it would
+ * prevent the board from rebooting properly.
+ */
};
/* eMMC */
---
base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585
change-id: 20250907-fix-reboot-04e0fc919ae0
Best regards,
--
Valerio Setti <vsetti@...libre.com>
Powered by blists - more mailing lists