uboot/include/watchdog.h
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2001
   3 * Erik Theisen,  Wave 7 Optics, etheisen@mindspring.com.
   4 *
   5 * SPDX-License-Identifier:     GPL-2.0+
   6 */
   7
   8/*
   9 * Watchdog functions and macros.
  10 */
  11#ifndef _WATCHDOG_H_
  12#define _WATCHDOG_H_
  13
  14#if !defined(__ASSEMBLY__)
  15/*
  16 * Reset the watchdog timer, always returns 0
  17 *
  18 * This function is here since it is shared between board_f() and board_r(),
  19 * and the legacy arch/<arch>/board.c code.
  20 */
  21int init_func_watchdog_reset(void);
  22#endif
  23
  24#if defined(CONFIG_WATCHDOG) || defined(CONFIG_HW_WATCHDOG)
  25#define INIT_FUNC_WATCHDOG_INIT init_func_watchdog_init,
  26#define INIT_FUNC_WATCHDOG_RESET        init_func_watchdog_reset,
  27#else
  28#define INIT_FUNC_WATCHDOG_INIT
  29#define INIT_FUNC_WATCHDOG_RESET
  30#endif
  31
  32#if defined(CONFIG_HW_WATCHDOG) && defined(CONFIG_WATCHDOG)
  33#  error "Configuration error: CONFIG_HW_WATCHDOG and CONFIG_WATCHDOG can't be used together."
  34#endif
  35
  36/*
  37 * Hardware watchdog
  38 */
  39#ifdef CONFIG_HW_WATCHDOG
  40        #if defined(__ASSEMBLY__)
  41                #define WATCHDOG_RESET bl hw_watchdog_reset
  42        #else
  43                extern void hw_watchdog_reset(void);
  44
  45                #define WATCHDOG_RESET hw_watchdog_reset
  46        #endif /* __ASSEMBLY__ */
  47#else
  48        /*
  49         * Maybe a software watchdog?
  50         */
  51        #if defined(CONFIG_WATCHDOG)
  52                #if defined(__ASSEMBLY__)
  53                        #define WATCHDOG_RESET bl watchdog_reset
  54                #else
  55                        extern void watchdog_reset(void);
  56
  57                        #define WATCHDOG_RESET watchdog_reset
  58                #endif
  59        #else
  60                /*
  61                 * No hardware or software watchdog.
  62                 */
  63                #if defined(__ASSEMBLY__)
  64                        #define WATCHDOG_RESET /*XXX DO_NOT_DEL_THIS_COMMENT*/
  65                #else
  66                        #define WATCHDOG_RESET() {}
  67                #endif /* __ASSEMBLY__ */
  68        #endif /* CONFIG_WATCHDOG && !__ASSEMBLY__ */
  69#endif /* CONFIG_HW_WATCHDOG */
  70
  71/*
  72 * Prototypes from $(CPU)/cpu.c.
  73 */
  74
  75/* MPC 8xx */
  76#if defined(CONFIG_8xx) && !defined(__ASSEMBLY__)
  77        void reset_8xx_watchdog(immap_t __iomem *immr);
  78#endif
  79
  80#if defined(CONFIG_HW_WATCHDOG) && !defined(__ASSEMBLY__)
  81        void hw_watchdog_init(void);
  82#endif
  83
  84#if defined(CONFIG_MPC85xx) && !defined(__ASSEMBLY__)
  85        void init_85xx_watchdog(void);
  86#endif
  87#endif /* _WATCHDOG_H_ */
  88