mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-17 02:15:02 +00:00

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>
77 lines
1.2 KiB
Text
77 lines
1.2 KiB
Text
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* Copyright (C) 2019 Levin Du <djw@t-chip.com.cn>
|
|
*/
|
|
|
|
#include "rk3399-u-boot.dtsi"
|
|
#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;
|
|
gpio = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&hub_rst>;
|
|
regulator-name = "vcc_hub_en";
|
|
regulator-always-on;
|
|
};
|
|
};
|
|
|
|
/*
|
|
* should be placed inside mp8859, but not until mp8859 has
|
|
* its own dt-binding.
|
|
*/
|
|
&dc_12v {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "dc_12v";
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
regulator-min-microvolt = <12000000>;
|
|
regulator-max-microvolt = <12000000>;
|
|
vin-supply = <&vcc_vbus_typec0>;
|
|
};
|
|
|
|
&gpio4 {
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&gpio1 {
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&spi1 {
|
|
flash@0 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
};
|
|
|
|
&vcc3v0_sd {
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&vcc3v0_sd_en {
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&vcc5v0_host {
|
|
regulator-always-on;
|
|
};
|
|
|
|
&vcc_sdio {
|
|
regulator-always-on;
|
|
};
|
|
|
|
&vcc_sys {
|
|
regulator-always-on;
|
|
};
|
|
|
|
&vdd_log {
|
|
regulator-min-microvolt = <430000>;
|
|
regulator-init-microvolt = <950000>;
|
|
};
|