@@ -3,6 +3,14 @@
* Copyright 2020 Toradex
*/
+/ {
+ wdt-reboot {
+ compatible = "wdt-reboot";
+ wdt = <&wdog1>;
+ u-boot,dm-spl;
+ };
+};
+
&aips1 {
u-boot,dm-spl;
u-boot,dm-pre-reloc;
@@ -105,3 +113,7 @@
&usdhc3 {
u-boot,dm-spl;
};
+
+&wdog1 {
+ u-boot,dm-spl;
+};
@@ -169,12 +169,3 @@ void board_init_f(ulong dummy)
board_init_r(NULL, 0);
}
-
-int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
-{
- puts("resetting ...\n");
-
- reset_cpu(WDOG1_BASE_ADDR);
-
- return 0;
-}
@@ -38,6 +38,7 @@ CONFIG_SPL_SEPARATE_BSS=y
CONFIG_SPL_I2C_SUPPORT=y
CONFIG_SPL_POWER_SUPPORT=y
CONFIG_SPL_USB_HOST_SUPPORT=y
+CONFIG_SPL_WATCHDOG_SUPPORT=y
CONFIG_SYS_PROMPT="Verdin iMX8MM # "
# CONFIG_BOOTM_NETBSD is not set
CONFIG_CMD_ASKENV=y
@@ -94,5 +95,9 @@ CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
CONFIG_MXC_UART=y
CONFIG_SYSRESET=y
+CONFIG_SPL_SYSRESET=y
CONFIG_SYSRESET_PSCI=y
+CONFIG_SYSRESET_WATCHDOG=y
CONFIG_DM_THERMAL=y
+# CONFIG_WATCHDOG is not set
+CONFIG_IMX_WATCHDOG=y
Board files should not re-implement do_reset() to work around this function not being defined in for specific configurations. Rather, the fix is to compile in drivers which implement this properly. This patch enables sysreset and watchdog drivers in SPL and ties them together to implement the same as the do_reset() hack in the board file, except correctly in the DM/DT framework. Signed-off-by: Marek Vasut <marex at denx.de> Cc: Fabio Estevam <festevam at gmail.com> Cc: Flavio Suligoi <f.suligoi at asem.it> Cc: Harald Seiler <hws at denx.de> Cc: Igor Opaniuk <igor.opaniuk at toradex.com> Cc: Marcel Ziswiler <marcel.ziswiler at toradex.com> Cc: Oleksandr Suvorov <oleksandr.suvorov at toradex.com> Cc: Peng Fan <peng.fan at nxp.com> Cc: Stefano Babic <sbabic at denx.de> --- arch/arm/dts/imx8mm-verdin-u-boot.dtsi | 12 ++++++++++++ board/toradex/verdin-imx8mm/spl.c | 9 --------- configs/verdin-imx8mm_defconfig | 5 +++++ 3 files changed, 17 insertions(+), 9 deletions(-)