rockchip: rk3399-roc-pc: Hook sysreset gpio to enable full reset
authorPaul Kocialkowski <contact@paulk.fr>
Thu, 26 Sep 2024 18:31:08 +0000 (20:31 +0200)
committerTom Rini <trini@konsulko.com>
Sat, 11 Jan 2025 00:56:15 +0000 (18:56 -0600)
The reset mechanism used by Linux to reset the SoC is known to only
partially reset the logic. A mechanism is implemented in
rk3399_force_power_on_reset to use a GPIO connected to the PMIC's
over-temperature (OTP) reset pin, which fully resets all logic.

Hook the associated GPIO where the function expects it to enable this
reset mechanism and avoid any possible side-effect of partially-reset
units.

Without this patch, reading from the micro sd slot fails after a reset.
With this mechanism, U-Boot is able to boot from it reliably.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
arch/arm/dts/rk3399-roc-pc-u-boot.dtsi

index aecf7db..883d399 100644 (file)
@@ -7,6 +7,10 @@
 #include "rk3399-sdram-lpddr4-100.dtsi"
 
 / {
+       config {
+               sysreset-gpio = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>;
+       };
+
        vcc_hub_en: vcc_hub_en-regulator {
                compatible = "regulator-fixed";
                enable-active-high;
        bootph-pre-ram;
 };
 
+&gpio1 {
+       bootph-pre-ram;
+};
+
 &spi1 {
        flash@0 {
                bootph-pre-ram;