watchdog: Split WDT from SPL_WDT
authorMarek Vasut <marex@denx.de>
Sun, 9 Jun 2019 01:46:21 +0000 (03:46 +0200)
committerStefano Babic <sbabic@denx.de>
Fri, 19 Jul 2019 18:14:50 +0000 (20:14 +0200)
Use CONFIG_IS_ENABLED(WDT) to permit use of WDT in SPL without DM,
while the full U-Boot can use rich DM/DT WDT driver.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Peng Fan <Peng.Fan@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
Tested-by: Heiko Schocher <hs@denx.de>
Tested-by: Suniel Mahesh <sunil.m@techveda.org>
common/board_r.c
common/spl/Kconfig
common/spl/spl.c
drivers/watchdog/Kconfig
drivers/watchdog/Makefile
include/asm-generic/global_data.h
include/wdt.h

index abc31b17b813f33d029dda37e41b713144fd4886..ee4dcedd5fa97973c679dc721900111b89bbc498 100644 (file)
@@ -700,7 +700,7 @@ static init_fnc_t init_sequence_r[] = {
        stdio_init_tables,
        initr_serial,
        initr_announce,
-#if defined(CONFIG_WDT)
+#if CONFIG_IS_ENABLED(WDT)
        initr_watchdog,
 #endif
        INIT_FUNC_WATCHDOG_RESET
index 5978fb2934325e474de2bab0f21926c834ce1487..81bd908f9b137d6564cee32fb5f204be633485c8 100644 (file)
@@ -1061,6 +1061,7 @@ endif
 
 config SPL_WATCHDOG_SUPPORT
        bool "Support watchdog drivers"
+       imply SPL_WDT if !HW_WATCHDOG
        help
          Enable support for watchdog drivers in SPL. A watchdog is
          typically a hardware peripheral which can reset the system when it
index d5e3f680f4cb61bfa054684db5fd657425436c2c..c182705b3fc9cad2b6fac694ed937cdeca5fe895 100644 (file)
@@ -603,7 +603,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
        spl_board_init();
 #endif
 
-#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) && defined(CONFIG_WDT)
+#if defined(CONFIG_SPL_WATCHDOG_SUPPORT) && CONFIG_IS_ENABLED(WDT)
        initr_watchdog();
 #endif
 
index ee0ddffe7355e8193070c951d5a8bedb54059d3c..de9bd87236b6d9213ca9e6b3f63e6b933290acb9 100644 (file)
@@ -169,4 +169,11 @@ config WDT_TANGIER
          Intel Tangier SoC. If you're using a board with Intel Tangier
          SoC, say Y here.
 
+config SPL_WDT
+       bool "Enable driver model for watchdog timer drivers in SPL"
+       depends on SPL_DM
+       help
+         Enable driver model for watchdog timer in SPL.
+         This is similar to CONFIG_WDT in U-Boot.
+
 endmenu
index 68c989aa0b905fe09d66805953d914d810ccacc3..97aa6a836ce67e4dd217b6b053d5b586dae18d4d 100644 (file)
@@ -15,7 +15,7 @@ obj-$(CONFIG_XILINX_TB_WATCHDOG) += xilinx_tb_wdt.o
 obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
 obj-$(CONFIG_DESIGNWARE_WATCHDOG) += designware_wdt.o
 obj-$(CONFIG_ULP_WATCHDOG) += ulp_wdog.o
-obj-$(CONFIG_WDT) += wdt-uclass.o
+obj-$(CONFIG_$(SPL_TPL_)WDT) += wdt-uclass.o
 obj-$(CONFIG_WDT_SANDBOX) += sandbox_wdt.o
 obj-$(CONFIG_WDT_ARMADA_37XX) += armada-37xx-wdt.o
 obj-$(CONFIG_WDT_ASPEED) += ast_wdt.o
index 02a3ed683821fa1af7d16296c472e4033526e5a5..7c2220643b5b1f3f3f13414138f11e1651e03675 100644 (file)
@@ -137,7 +137,7 @@ typedef struct global_data {
 #if defined(CONFIG_TRANSLATION_OFFSET)
        fdt_addr_t translation_offset;  /* optional translation offset */
 #endif
-#if defined(CONFIG_WDT)
+#if CONFIG_IS_ENABLED(WDT)
        struct udevice *watchdog_dev;
 #endif
 } gd_t;
index aa77d3e9b40368af889b67e81fa411d9c66d42e4..5bcff24ab310020a19b053e22e85db7345a62b64 100644 (file)
@@ -106,7 +106,7 @@ struct wdt_ops {
        int (*expire_now)(struct udevice *dev, ulong flags);
 };
 
-#if defined(CONFIG_WDT)
+#if CONFIG_IS_ENABLED(WDT)
 #ifndef CONFIG_WATCHDOG_TIMEOUT_MSECS
 #define CONFIG_WATCHDOG_TIMEOUT_MSECS  (60 * 1000)
 #endif