Blame view

include/watchdog.h 2.21 KB
012771d88   wdenk   Initial revision
1
2
3
4
  /*
   * (C) Copyright 2001
   * Erik Theisen,  Wave 7 Optics, etheisen@mindspring.com.
   *
3765b3e7b   Wolfgang Denk   Coding Style clea...
5
   * SPDX-License-Identifier:	GPL-2.0+
012771d88   wdenk   Initial revision
6
7
8
9
10
11
12
   */
  
  /*
   * Watchdog functions and macros.
   */
  #ifndef _WATCHDOG_H_
  #define _WATCHDOG_H_
a6741bce5   Simon Glass   Declare watchdog ...
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
  #if !defined(__ASSEMBLY__)
  /*
   * Reset the watchdog timer, always returns 0
   *
   * This function is here since it is shared between board_f() and board_r(),
   * and the legacy arch/<arch>/board.c code.
   */
  int init_func_watchdog_reset(void);
  #endif
  
  #ifdef CONFIG_WATCHDOG
  #define INIT_FUNC_WATCHDOG_INIT	init_func_watchdog_init,
  #define INIT_FUNC_WATCHDOG_RESET	init_func_watchdog_reset,
  #else
  #define INIT_FUNC_WATCHDOG_INIT
  #define INIT_FUNC_WATCHDOG_RESET
  #endif
012771d88   wdenk   Initial revision
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
  #if defined(CONFIG_HW_WATCHDOG) && defined(CONFIG_WATCHDOG)
  #  error "Configuration error: CONFIG_HW_WATCHDOG and CONFIG_WATCHDOG can't be used together."
  #endif
  
  /*
   * Hardware watchdog
   */
  #ifdef CONFIG_HW_WATCHDOG
  	#if defined(__ASSEMBLY__)
  		#define WATCHDOG_RESET bl hw_watchdog_reset
  	#else
  		extern void hw_watchdog_reset(void);
  
  		#define WATCHDOG_RESET hw_watchdog_reset
  	#endif /* __ASSEMBLY__ */
  #else
  	/*
  	 * Maybe a software watchdog?
  	 */
  	#if defined(CONFIG_WATCHDOG)
  		#if defined(__ASSEMBLY__)
  			#define WATCHDOG_RESET bl watchdog_reset
  		#else
  			extern void watchdog_reset(void);
  
  			#define WATCHDOG_RESET watchdog_reset
  		#endif
  	#else
  		/*
  		 * No hardware or software watchdog.
  		 */
  		#if defined(__ASSEMBLY__)
  			#define WATCHDOG_RESET /*XXX DO_NOT_DEL_THIS_COMMENT*/
  		#else
  			#define WATCHDOG_RESET() {}
  		#endif /* __ASSEMBLY__ */
  	#endif /* CONFIG_WATCHDOG && !__ASSEMBLY__ */
  #endif /* CONFIG_HW_WATCHDOG */
  
  /*
   * Prototypes from $(CPU)/cpu.c.
   */
  
  /* MPC 8xx */
  #if (defined(CONFIG_8xx) || defined(CONFIG_MPC860)) && !defined(__ASSEMBLY__)
  	void reset_8xx_watchdog(volatile immap_t *immr);
  #endif
0db5bca80   wdenk   * Patch by Martin...
77
78
79
80
  /* MPC 5xx */
  #if defined(CONFIG_5xx) && !defined(__ASSEMBLY__)
  	void reset_5xx_watchdog(volatile immap_t *immr);
  #endif
a21fb981d   Detlev Zundel   mpc5xxx: Support ...
81
82
83
84
  /* MPC 5xxx */
  #if defined(CONFIG_MPC5xxx) && !defined(__ASSEMBLY__)
  	void reset_5xxx_watchdog(void);
  #endif
0c8721a46   Wolfgang Denk   Cleanup (PPC4xx i...
85
  /* AMCC 4xx */
012771d88   wdenk   Initial revision
86
87
88
  #if defined(CONFIG_4xx) && !defined(__ASSEMBLY__)
  	void reset_4xx_watchdog(void);
  #endif
e9a389a18   Sonic Zhang   blackfin: Move bl...
89
  #if defined(CONFIG_HW_WATCHDOG) && !defined(__ASSEMBLY__)
a6720762c   Tom Rini   watchdog.h: Move ...
90
91
  	void hw_watchdog_init(void);
  #endif
012771d88   wdenk   Initial revision
92
  #endif /* _WATCHDOG_H_ */