gh_wdt.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. /*!
  2. *******************************************************************************
  3. **
  4. ** \file gh_wdt.h
  5. **
  6. ** \brief Watch Dog Timer.
  7. **
  8. ** Copyright: 2012 - 2013 (C) GoKe Microelectronics ShangHai Branch
  9. **
  10. ** \attention THIS SAMPLE CODE IS PROVIDED AS IS. GOKE MICROELECTRONICS
  11. ** ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR
  12. ** OMMISSIONS.
  13. **
  14. ** \note Do not modify this file as it is generated automatically.
  15. **
  16. ******************************************************************************/
  17. #ifndef _GH_WDT_H
  18. #define _GH_WDT_H
  19. #ifdef __LINUX__
  20. #include "reg4linux.h"
  21. #else
  22. #define FIO_ADDRESS(block,address) (address)
  23. #define FIO_MOFFSET(block,moffset) (moffset)
  24. #endif
  25. #ifndef __LINUX__
  26. #include "gtypes.h" /* global type definitions */
  27. #include "gh_lib_cfg.h" /* configuration */
  28. #endif
  29. #define GH_WDT_ENABLE_DEBUG_PRINT 0
  30. #ifdef __LINUX__
  31. #define GH_WDT_DEBUG_PRINT_FUNCTION printk
  32. #else
  33. #define GH_WDT_DEBUG_PRINT_FUNCTION printf
  34. #endif
  35. #ifndef __LINUX__
  36. #if GH_WDT_ENABLE_DEBUG_PRINT
  37. #include <stdio.h>
  38. #endif
  39. #endif
  40. /* check configuration */
  41. #ifndef GH_INLINE_LEVEL
  42. #error "GH_INLINE_LEVEL is not defined!"
  43. #endif
  44. #if GH_INLINE_LEVEL > 2
  45. #error "GH_INLINE_LEVEL must be set 0, 1 or 2!"
  46. #endif
  47. #ifndef GH_INLINE
  48. #error "GH_INLINE is not defined!"
  49. #endif
  50. /* disable inlining for debugging */
  51. #ifdef DEBUG
  52. #undef GH_INLINE_LEVEL
  53. #define GH_INLINE_LEVEL 0
  54. #endif
  55. /*----------------------------------------------------------------------------*/
  56. /* registers */
  57. /*----------------------------------------------------------------------------*/
  58. #define REG_WDT_CTRLR FIO_ADDRESS(WDT,0xA0006000) /* read/write */
  59. #define REG_WDT_TIMEOUTR FIO_ADDRESS(WDT,0xA0006004) /* read */
  60. #define REG_WDT_CLRR FIO_ADDRESS(WDT,0xA0006008) /* write */
  61. #define REG_WDT_CNTSTSR FIO_ADDRESS(WDT,0xA000600C) /* read */
  62. #define REG_WDT_RELOADR FIO_ADDRESS(WDT,0xA0006010) /* read/write */
  63. #define REG_WDT_RESTARTR FIO_ADDRESS(WDT,0xA0006014) /* write */
  64. #define REG_WDT_RSTWDR FIO_ADDRESS(WDT,0xA0006018) /* read/write */
  65. /*----------------------------------------------------------------------------*/
  66. /* bit group structures */
  67. /*----------------------------------------------------------------------------*/
  68. typedef union { /* WDT_CtrlR */
  69. U32 all;
  70. struct {
  71. U32 enable : 1;
  72. U32 intenable : 1;
  73. U32 resetenable : 1;
  74. U32 : 29;
  75. } bitc;
  76. } GH_WDT_CTRLR_S;
  77. typedef union { /* WDT_TimeoutR */
  78. U32 all;
  79. struct {
  80. U32 timeout : 1;
  81. U32 : 31;
  82. } bitc;
  83. } GH_WDT_TIMEOUTR_S;
  84. typedef union { /* WDT_ClrR */
  85. U32 all;
  86. struct {
  87. U32 clr : 1;
  88. U32 : 31;
  89. } bitc;
  90. } GH_WDT_CLRR_S;
  91. typedef union { /* WDT_RstWdR */
  92. U32 all;
  93. struct {
  94. U32 rstwd : 8;
  95. U32 : 24;
  96. } bitc;
  97. } GH_WDT_RSTWDR_S;
  98. /*----------------------------------------------------------------------------*/
  99. /* mirror variables */
  100. /*----------------------------------------------------------------------------*/
  101. extern GH_WDT_CLRR_S m_wdt_clrr;
  102. extern U32 m_wdt_restartr;
  103. #ifdef __cplusplus
  104. extern "C" {
  105. #endif
  106. /*----------------------------------------------------------------------------*/
  107. /* register WDT_CtrlR (read/write) */
  108. /*----------------------------------------------------------------------------*/
  109. #if GH_INLINE_LEVEL == 0
  110. /*! \brief Writes the register 'WDT_CtrlR'. */
  111. void GH_WDT_set_CtrlR(U32 data);
  112. /*! \brief Reads the register 'WDT_CtrlR'. */
  113. U32 GH_WDT_get_CtrlR(void);
  114. /*! \brief Writes the bit group 'Enable' of register 'WDT_CtrlR'. */
  115. void GH_WDT_set_CtrlR_Enable(U8 data);
  116. /*! \brief Reads the bit group 'Enable' of register 'WDT_CtrlR'. */
  117. U8 GH_WDT_get_CtrlR_Enable(void);
  118. /*! \brief Writes the bit group 'IntEnable' of register 'WDT_CtrlR'. */
  119. void GH_WDT_set_CtrlR_IntEnable(U8 data);
  120. /*! \brief Reads the bit group 'IntEnable' of register 'WDT_CtrlR'. */
  121. U8 GH_WDT_get_CtrlR_IntEnable(void);
  122. /*! \brief Writes the bit group 'ResetEnable' of register 'WDT_CtrlR'. */
  123. void GH_WDT_set_CtrlR_ResetEnable(U8 data);
  124. /*! \brief Reads the bit group 'ResetEnable' of register 'WDT_CtrlR'. */
  125. U8 GH_WDT_get_CtrlR_ResetEnable(void);
  126. #else /* GH_INLINE_LEVEL == 0 */
  127. GH_INLINE void GH_WDT_set_CtrlR(U32 data)
  128. {
  129. *(volatile U32 *)REG_WDT_CTRLR = data;
  130. #if GH_WDT_ENABLE_DEBUG_PRINT
  131. GH_WDT_DEBUG_PRINT_FUNCTION( "WRREG(0x%08x,0x%08x); \\\\ [GH_WDT_set_CtrlR] <-- 0x%08x\n",
  132. REG_WDT_CTRLR,data,data);
  133. #endif
  134. }
  135. GH_INLINE U32 GH_WDT_get_CtrlR(void)
  136. {
  137. U32 value = (*(volatile U32 *)REG_WDT_CTRLR);
  138. #if GH_WDT_ENABLE_DEBUG_PRINT
  139. GH_WDT_DEBUG_PRINT_FUNCTION( "value = RDREG(0x%08x); \\\\ [GH_WDT_get_CtrlR] --> 0x%08x\n",
  140. REG_WDT_CTRLR,value);
  141. #endif
  142. return value;
  143. }
  144. GH_INLINE void GH_WDT_set_CtrlR_Enable(U8 data)
  145. {
  146. GH_WDT_CTRLR_S d;
  147. d.all = *(volatile U32 *)REG_WDT_CTRLR;
  148. d.bitc.enable = data;
  149. *(volatile U32 *)REG_WDT_CTRLR = d.all;
  150. #if GH_WDT_ENABLE_DEBUG_PRINT
  151. GH_WDT_DEBUG_PRINT_FUNCTION( "WRREG(0x%08x,0x%08x); \\\\ [GH_WDT_set_CtrlR_Enable] <-- 0x%08x\n",
  152. REG_WDT_CTRLR,d.all,d.all);
  153. #endif
  154. }
  155. GH_INLINE U8 GH_WDT_get_CtrlR_Enable(void)
  156. {
  157. GH_WDT_CTRLR_S tmp_value;
  158. U32 value = (*(volatile U32 *)REG_WDT_CTRLR);
  159. tmp_value.all = value;
  160. #if GH_WDT_ENABLE_DEBUG_PRINT
  161. GH_WDT_DEBUG_PRINT_FUNCTION( "value = RDREG(0x%08x); \\\\ [GH_WDT_get_CtrlR_Enable] --> 0x%08x\n",
  162. REG_WDT_CTRLR,value);
  163. #endif
  164. return tmp_value.bitc.enable;
  165. }
  166. GH_INLINE void GH_WDT_set_CtrlR_IntEnable(U8 data)
  167. {
  168. GH_WDT_CTRLR_S d;
  169. d.all = *(volatile U32 *)REG_WDT_CTRLR;
  170. d.bitc.intenable = data;
  171. *(volatile U32 *)REG_WDT_CTRLR = d.all;
  172. #if GH_WDT_ENABLE_DEBUG_PRINT
  173. GH_WDT_DEBUG_PRINT_FUNCTION( "WRREG(0x%08x,0x%08x); \\\\ [GH_WDT_set_CtrlR_IntEnable] <-- 0x%08x\n",
  174. REG_WDT_CTRLR,d.all,d.all);
  175. #endif
  176. }
  177. GH_INLINE U8 GH_WDT_get_CtrlR_IntEnable(void)
  178. {
  179. GH_WDT_CTRLR_S tmp_value;
  180. U32 value = (*(volatile U32 *)REG_WDT_CTRLR);
  181. tmp_value.all = value;
  182. #if GH_WDT_ENABLE_DEBUG_PRINT
  183. GH_WDT_DEBUG_PRINT_FUNCTION( "value = RDREG(0x%08x); \\\\ [GH_WDT_get_CtrlR_IntEnable] --> 0x%08x\n",
  184. REG_WDT_CTRLR,value);
  185. #endif
  186. return tmp_value.bitc.intenable;
  187. }
  188. GH_INLINE void GH_WDT_set_CtrlR_ResetEnable(U8 data)
  189. {
  190. GH_WDT_CTRLR_S d;
  191. d.all = *(volatile U32 *)REG_WDT_CTRLR;
  192. d.bitc.resetenable = data;
  193. *(volatile U32 *)REG_WDT_CTRLR = d.all;
  194. #if GH_WDT_ENABLE_DEBUG_PRINT
  195. GH_WDT_DEBUG_PRINT_FUNCTION( "WRREG(0x%08x,0x%08x); \\\\ [GH_WDT_set_CtrlR_ResetEnable] <-- 0x%08x\n",
  196. REG_WDT_CTRLR,d.all,d.all);
  197. #endif
  198. }
  199. GH_INLINE U8 GH_WDT_get_CtrlR_ResetEnable(void)
  200. {
  201. GH_WDT_CTRLR_S tmp_value;
  202. U32 value = (*(volatile U32 *)REG_WDT_CTRLR);
  203. tmp_value.all = value;
  204. #if GH_WDT_ENABLE_DEBUG_PRINT
  205. GH_WDT_DEBUG_PRINT_FUNCTION( "value = RDREG(0x%08x); \\\\ [GH_WDT_get_CtrlR_ResetEnable] --> 0x%08x\n",
  206. REG_WDT_CTRLR,value);
  207. #endif
  208. return tmp_value.bitc.resetenable;
  209. }
  210. #endif /* GH_INLINE_LEVEL == 0 */
  211. /*----------------------------------------------------------------------------*/
  212. /* register WDT_TimeoutR (read) */
  213. /*----------------------------------------------------------------------------*/
  214. #if GH_INLINE_LEVEL == 0
  215. /*! \brief Reads the register 'WDT_TimeoutR'. */
  216. U32 GH_WDT_get_TimeoutR(void);
  217. /*! \brief Reads the bit group 'Timeout' of register 'WDT_TimeoutR'. */
  218. U8 GH_WDT_get_TimeoutR_Timeout(void);
  219. #else /* GH_INLINE_LEVEL == 0 */
  220. GH_INLINE U32 GH_WDT_get_TimeoutR(void)
  221. {
  222. U32 value = (*(volatile U32 *)REG_WDT_TIMEOUTR);
  223. #if GH_WDT_ENABLE_DEBUG_PRINT
  224. GH_WDT_DEBUG_PRINT_FUNCTION( "value = RDREG(0x%08x); \\\\ [GH_WDT_get_TimeoutR] --> 0x%08x\n",
  225. REG_WDT_TIMEOUTR,value);
  226. #endif
  227. return value;
  228. }
  229. GH_INLINE U8 GH_WDT_get_TimeoutR_Timeout(void)
  230. {
  231. GH_WDT_TIMEOUTR_S tmp_value;
  232. U32 value = (*(volatile U32 *)REG_WDT_TIMEOUTR);
  233. tmp_value.all = value;
  234. #if GH_WDT_ENABLE_DEBUG_PRINT
  235. GH_WDT_DEBUG_PRINT_FUNCTION( "value = RDREG(0x%08x); \\\\ [GH_WDT_get_TimeoutR_Timeout] --> 0x%08x\n",
  236. REG_WDT_TIMEOUTR,value);
  237. #endif
  238. return tmp_value.bitc.timeout;
  239. }
  240. #endif /* GH_INLINE_LEVEL == 0 */
  241. /*----------------------------------------------------------------------------*/
  242. /* register WDT_ClrR (write) */
  243. /*----------------------------------------------------------------------------*/
  244. #if GH_INLINE_LEVEL < 2
  245. /*! \brief Writes the register 'WDT_ClrR'. */
  246. void GH_WDT_set_ClrR(U32 data);
  247. /*! \brief Reads the mirror variable of the register 'WDT_ClrR'. */
  248. U32 GH_WDT_getm_ClrR(void);
  249. /*! \brief Writes the bit group 'Clr' of register 'WDT_ClrR'. */
  250. void GH_WDT_set_ClrR_Clr(U8 data);
  251. /*! \brief Reads the bit group 'Clr' from the mirror variable of register 'WDT_ClrR'. */
  252. U8 GH_WDT_getm_ClrR_Clr(void);
  253. #else /* GH_INLINE_LEVEL < 2 */
  254. GH_INLINE void GH_WDT_set_ClrR(U32 data)
  255. {
  256. m_wdt_clrr.all = data;
  257. *(volatile U32 *)REG_WDT_CLRR = data;
  258. #if GH_WDT_ENABLE_DEBUG_PRINT
  259. GH_WDT_DEBUG_PRINT_FUNCTION( "WRREG(0x%08x,0x%08x); \\\\ [GH_WDT_set_ClrR] <-- 0x%08x\n",
  260. REG_WDT_CLRR,data,data);
  261. #endif
  262. }
  263. GH_INLINE U32 GH_WDT_getm_ClrR(void)
  264. {
  265. #if GH_WDT_ENABLE_DEBUG_PRINT
  266. GH_WDT_DEBUG_PRINT_FUNCTION( "[GH_WDT_getm_ClrR] --> 0x%08x\n",
  267. m_wdt_clrr.all);
  268. #endif
  269. return m_wdt_clrr.all;
  270. }
  271. GH_INLINE void GH_WDT_set_ClrR_Clr(U8 data)
  272. {
  273. m_wdt_clrr.bitc.clr = data;
  274. *(volatile U32 *)REG_WDT_CLRR = m_wdt_clrr.all;
  275. #if GH_WDT_ENABLE_DEBUG_PRINT
  276. GH_WDT_DEBUG_PRINT_FUNCTION( "WRREG(0x%08x,0x%08x); \\\\ [GH_WDT_set_ClrR_Clr] <-- 0x%08x\n",
  277. REG_WDT_CLRR,m_wdt_clrr.all,m_wdt_clrr.all);
  278. #endif
  279. }
  280. GH_INLINE U8 GH_WDT_getm_ClrR_Clr(void)
  281. {
  282. #if GH_WDT_ENABLE_DEBUG_PRINT
  283. GH_WDT_DEBUG_PRINT_FUNCTION( "[GH_WDT_getm_ClrR_Clr] --> 0x%08x\n",
  284. m_wdt_clrr.bitc.clr);
  285. #endif
  286. return m_wdt_clrr.bitc.clr;
  287. }
  288. #endif /* GH_INLINE_LEVEL < 2 */
  289. /*----------------------------------------------------------------------------*/
  290. /* register WDT_CntStsR (read) */
  291. /*----------------------------------------------------------------------------*/
  292. #if GH_INLINE_LEVEL == 0
  293. /*! \brief Reads the register 'WDT_CntStsR'. */
  294. U32 GH_WDT_get_CntStsR(void);
  295. #else /* GH_INLINE_LEVEL == 0 */
  296. GH_INLINE U32 GH_WDT_get_CntStsR(void)
  297. {
  298. U32 value = (*(volatile U32 *)REG_WDT_CNTSTSR);
  299. #if GH_WDT_ENABLE_DEBUG_PRINT
  300. GH_WDT_DEBUG_PRINT_FUNCTION( "value = RDREG(0x%08x); \\\\ [GH_WDT_get_CntStsR] --> 0x%08x\n",
  301. REG_WDT_CNTSTSR,value);
  302. #endif
  303. return value;
  304. }
  305. #endif /* GH_INLINE_LEVEL == 0 */
  306. /*----------------------------------------------------------------------------*/
  307. /* register WDT_ReloadR (read/write) */
  308. /*----------------------------------------------------------------------------*/
  309. #if GH_INLINE_LEVEL == 0
  310. /*! \brief Writes the register 'WDT_ReloadR'. */
  311. void GH_WDT_set_ReloadR(U32 data);
  312. /*! \brief Reads the register 'WDT_ReloadR'. */
  313. U32 GH_WDT_get_ReloadR(void);
  314. #else /* GH_INLINE_LEVEL == 0 */
  315. GH_INLINE void GH_WDT_set_ReloadR(U32 data)
  316. {
  317. *(volatile U32 *)REG_WDT_RELOADR = data;
  318. #if GH_WDT_ENABLE_DEBUG_PRINT
  319. GH_WDT_DEBUG_PRINT_FUNCTION( "WRREG(0x%08x,0x%08x); \\\\ [GH_WDT_set_ReloadR] <-- 0x%08x\n",
  320. REG_WDT_RELOADR,data,data);
  321. #endif
  322. }
  323. GH_INLINE U32 GH_WDT_get_ReloadR(void)
  324. {
  325. U32 value = (*(volatile U32 *)REG_WDT_RELOADR);
  326. #if GH_WDT_ENABLE_DEBUG_PRINT
  327. GH_WDT_DEBUG_PRINT_FUNCTION( "value = RDREG(0x%08x); \\\\ [GH_WDT_get_ReloadR] --> 0x%08x\n",
  328. REG_WDT_RELOADR,value);
  329. #endif
  330. return value;
  331. }
  332. #endif /* GH_INLINE_LEVEL == 0 */
  333. /*----------------------------------------------------------------------------*/
  334. /* register WDT_RestartR (write) */
  335. /*----------------------------------------------------------------------------*/
  336. #if GH_INLINE_LEVEL < 2
  337. /*! \brief Writes the register 'WDT_RestartR'. */
  338. void GH_WDT_set_RestartR(U32 data);
  339. /*! \brief Reads the mirror variable of the register 'WDT_RestartR'. */
  340. U32 GH_WDT_getm_RestartR(void);
  341. #else /* GH_INLINE_LEVEL < 2 */
  342. GH_INLINE void GH_WDT_set_RestartR(U32 data)
  343. {
  344. m_wdt_restartr = data;
  345. *(volatile U32 *)REG_WDT_RESTARTR = data;
  346. #if GH_WDT_ENABLE_DEBUG_PRINT
  347. GH_WDT_DEBUG_PRINT_FUNCTION( "WRREG(0x%08x,0x%08x); \\\\ [GH_WDT_set_RestartR] <-- 0x%08x\n",
  348. REG_WDT_RESTARTR,data,data);
  349. #endif
  350. }
  351. GH_INLINE U32 GH_WDT_getm_RestartR(void)
  352. {
  353. #if GH_WDT_ENABLE_DEBUG_PRINT
  354. GH_WDT_DEBUG_PRINT_FUNCTION( "[GH_WDT_getm_RestartR] --> 0x%08x\n",
  355. m_wdt_restartr);
  356. #endif
  357. return m_wdt_restartr;
  358. }
  359. #endif /* GH_INLINE_LEVEL < 2 */
  360. /*----------------------------------------------------------------------------*/
  361. /* register WDT_RstWdR (read/write) */
  362. /*----------------------------------------------------------------------------*/
  363. #if GH_INLINE_LEVEL == 0
  364. /*! \brief Writes the register 'WDT_RstWdR'. */
  365. void GH_WDT_set_RstWdR(U32 data);
  366. /*! \brief Reads the register 'WDT_RstWdR'. */
  367. U32 GH_WDT_get_RstWdR(void);
  368. /*! \brief Writes the bit group 'RstWd' of register 'WDT_RstWdR'. */
  369. void GH_WDT_set_RstWdR_RstWd(U8 data);
  370. /*! \brief Reads the bit group 'RstWd' of register 'WDT_RstWdR'. */
  371. U8 GH_WDT_get_RstWdR_RstWd(void);
  372. #else /* GH_INLINE_LEVEL == 0 */
  373. GH_INLINE void GH_WDT_set_RstWdR(U32 data)
  374. {
  375. *(volatile U32 *)REG_WDT_RSTWDR = data;
  376. #if GH_WDT_ENABLE_DEBUG_PRINT
  377. GH_WDT_DEBUG_PRINT_FUNCTION( "WRREG(0x%08x,0x%08x); \\\\ [GH_WDT_set_RstWdR] <-- 0x%08x\n",
  378. REG_WDT_RSTWDR,data,data);
  379. #endif
  380. }
  381. GH_INLINE U32 GH_WDT_get_RstWdR(void)
  382. {
  383. U32 value = (*(volatile U32 *)REG_WDT_RSTWDR);
  384. #if GH_WDT_ENABLE_DEBUG_PRINT
  385. GH_WDT_DEBUG_PRINT_FUNCTION( "value = RDREG(0x%08x); \\\\ [GH_WDT_get_RstWdR] --> 0x%08x\n",
  386. REG_WDT_RSTWDR,value);
  387. #endif
  388. return value;
  389. }
  390. GH_INLINE void GH_WDT_set_RstWdR_RstWd(U8 data)
  391. {
  392. GH_WDT_RSTWDR_S d;
  393. d.all = *(volatile U32 *)REG_WDT_RSTWDR;
  394. d.bitc.rstwd = data;
  395. *(volatile U32 *)REG_WDT_RSTWDR = d.all;
  396. #if GH_WDT_ENABLE_DEBUG_PRINT
  397. GH_WDT_DEBUG_PRINT_FUNCTION( "WRREG(0x%08x,0x%08x); \\\\ [GH_WDT_set_RstWdR_RstWd] <-- 0x%08x\n",
  398. REG_WDT_RSTWDR,d.all,d.all);
  399. #endif
  400. }
  401. GH_INLINE U8 GH_WDT_get_RstWdR_RstWd(void)
  402. {
  403. GH_WDT_RSTWDR_S tmp_value;
  404. U32 value = (*(volatile U32 *)REG_WDT_RSTWDR);
  405. tmp_value.all = value;
  406. #if GH_WDT_ENABLE_DEBUG_PRINT
  407. GH_WDT_DEBUG_PRINT_FUNCTION( "value = RDREG(0x%08x); \\\\ [GH_WDT_get_RstWdR_RstWd] --> 0x%08x\n",
  408. REG_WDT_RSTWDR,value);
  409. #endif
  410. return tmp_value.bitc.rstwd;
  411. }
  412. #endif /* GH_INLINE_LEVEL == 0 */
  413. /*----------------------------------------------------------------------------*/
  414. /* init function */
  415. /*----------------------------------------------------------------------------*/
  416. /*! \brief Initialises the registers and mirror variables. */
  417. void GH_WDT_init(void);
  418. #ifdef __cplusplus
  419. }
  420. #endif
  421. #endif /* _GH_WDT_H */
  422. /*----------------------------------------------------------------------------*/
  423. /* end of file */
  424. /*----------------------------------------------------------------------------*/