wwdt_reg.h 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. /**************************************************************************//**
  2. * @file wwdt_reg.h
  3. * @version V1.00
  4. * @brief WWDT register definition header file
  5. *
  6. * SPDX-License-Identifier: Apache-2.0
  7. * @copyright (C) 2017-2020 Nuvoton Technology Corp. All rights reserved.
  8. *****************************************************************************/
  9. #ifndef __WWDT_REG_H__
  10. #define __WWDT_REG_H__
  11. #if defined ( __CC_ARM )
  12. #pragma anon_unions
  13. #endif
  14. /**
  15. @addtogroup REGISTER Control Register
  16. @{
  17. */
  18. /**
  19. @addtogroup WWDT Window Watchdog Timer(WWDT)
  20. Memory Mapped Structure for WWDT Controller
  21. @{ */
  22. typedef struct
  23. {
  24. /**
  25. * @var WWDT_T::RLDCNT
  26. * Offset: 0x00 WWDT Reload Counter Register
  27. * ---------------------------------------------------------------------------------------------------
  28. * |Bits |Field |Descriptions
  29. * | :----: | :----: | :---- |
  30. * |[31:0] |RLDCNT |WWDT Reload Counter Register
  31. * | | |Writing 0x00005AA5 to this register will reload the WWDT counter value to 0x3F.
  32. * | | |Note: User can only write WWDT_RLDCNT register to reload WWDT counter value when current WWDT counter value between 0 and CMPDAT (WWDT_CTL[21:16])
  33. * | | |If user writes WWDT_RLDCNT when current WWDT counter value is larger than CMPDAT , WWDT reset signal will generate immediately.
  34. * @var WWDT_T::CTL
  35. * Offset: 0x04 WWDT Control Register
  36. * ---------------------------------------------------------------------------------------------------
  37. * |Bits |Field |Descriptions
  38. * | :----: | :----: | :---- |
  39. * |[0] |WWDTEN |WWDT Enable Control Bit
  40. * | | |Set this bit to enable WWDT counter counting.
  41. * | | |0 = WWDT counter is stopped.
  42. * | | |1 = WWDT counter is starting counting.
  43. * |[1] |INTEN |WWDT Interrupt Enable Control Bit
  44. * | | |If this bit is enabled, the WWDT counter compare match interrupt signal is generated and inform to CPU.
  45. * | | |0 = WWDT counter compare match interrupt Disabled.
  46. * | | |1 = WWDT counter compare match interrupt Enabled.
  47. * |[11:8] |PSCSEL |WWDT Counter Prescale Period Selection
  48. * | | |0000 = Pre-scale is 1; Max time-out period is 1 * 64 * WWDT_CLK.
  49. * | | |0001 = Pre-scale is 2; Max time-out period is 2 * 64 * WWDT_CLK.
  50. * | | |0010 = Pre-scale is 4; Max time-out period is 4 * 64 * WWDT_CLK.
  51. * | | |0011 = Pre-scale is 8; Max time-out period is 8 * 64 * WWDT_CLK.
  52. * | | |0100 = Pre-scale is 16; Max time-out period is 16 * 64 * WWDT_CLK.
  53. * | | |0101 = Pre-scale is 32; Max time-out period is 32 * 64 * WWDT_CLK.
  54. * | | |0110 = Pre-scale is 64; Max time-out period is 64 * 64 * WWDT_CLK.
  55. * | | |0111 = Pre-scale is 128; Max time-out period is 128 * 64 * WWDT_CLK.
  56. * | | |1000 = Pre-scale is 192; Max time-out period is 192 * 64 * WWDT_CLK.
  57. * | | |1001 = Pre-scale is 256; Max time-out period is 256 * 64 * WWDT_CLK.
  58. * | | |1010 = Pre-scale is 384; Max time-out period is 384 * 64 * WWDT_CLK.
  59. * | | |1011 = Pre-scale is 512; Max time-out period is 512 * 64 * WWDT_CLK.
  60. * | | |1100 = Pre-scale is 768; Max time-out period is 768 * 64 * WWDT_CLK.
  61. * | | |1101 = Pre-scale is 1024; Max time-out period is 1024 * 64 * WWDT_CLK.
  62. * | | |1110 = Pre-scale is 1536; Max time-out period is 1536 * 64 * WWDT_CLK.
  63. * | | |1111 = Pre-scale is 2048; Max time-out period is 2048 * 64 * WWDT_CLK.
  64. * |[21:16] |CMPDAT |WWDT Window Compare Register
  65. * | | |Set this register to adjust the valid reload window.
  66. * | | |Note: User can only write WWDT_RLDCNT register to reload WWDT counter value when current WWDT counter value between 0 and CMPDAT
  67. * | | |If user writes WWDT_RLDCNT register when current WWDT counter value larger than CMPDAT, WWDT reset signal will generate immediately.
  68. * |[31] |ICEDEBUG |ICE Debug Mode Acknowledge Disable Control
  69. * | | |0 = ICE debug mode acknowledgement effects WWDT counting.
  70. * | | |WWDT down counter will be held while CPU is held by ICE.
  71. * | | |1 = ICE debug mode acknowledgement Disabled.
  72. * | | |WWDT down counter will keep going no matter CPU is held by ICE or not.
  73. * @var WWDT_T::STATUS
  74. * Offset: 0x08 WWDT Status Register
  75. * ---------------------------------------------------------------------------------------------------
  76. * |Bits |Field |Descriptions
  77. * | :----: | :----: | :---- |
  78. * |[0] |WWDTIF |WWDT Compare Match Interrupt Flag
  79. * | | |This bit indicates the interrupt flag status of WWDT while WWDT counter value matches CMPDAT (WWDT_CTL[21:16]).
  80. * | | |0 = No effect.
  81. * | | |1 = WWDT counter value matches CMPDAT.
  82. * | | |Note: This bit is cleared by writing 1 to it.
  83. * |[1] |WWDTRF |WWDT Timer-out Reset Flag
  84. * | | |This bit indicates the system has been reset by WWDT time-out reset or not.
  85. * | | |0 = WWDT time-out reset did not occur.
  86. * | | |1 = WWDT time-out reset occurred.
  87. * | | |Note: This bit is cleared by writing 1 to it.
  88. * @var WWDT_T::CNT
  89. * Offset: 0x0C WWDT Counter Value Register
  90. * ---------------------------------------------------------------------------------------------------
  91. * |Bits |Field |Descriptions
  92. * | :----: | :----: | :---- |
  93. * |[5:0] |CNTDAT |WWDT Counter Value
  94. * | | |CNTDAT will be updated continuously to monitor 6-bit WWDT down counter value.
  95. */
  96. __O uint32_t RLDCNT; /*!< [0x0000] WWDT Reload Counter Register */
  97. __IO uint32_t CTL; /*!< [0x0004] WWDT Control Register */
  98. __IO uint32_t STATUS; /*!< [0x0008] WWDT Status Register */
  99. __I uint32_t CNT; /*!< [0x000c] WWDT Counter Value Register */
  100. } WWDT_T;
  101. /**
  102. @addtogroup WWDT_CONST WWDT Bit Field Definition
  103. Constant Definitions for WWDT Controller
  104. @{ */
  105. #define WWDT_RLDCNT_RLDCNT_Pos (0) /*!< WWDT_T::RLDCNT: RLDCNT Position */
  106. #define WWDT_RLDCNT_RLDCNT_Msk (0xfffffffful << WWDT_RLDCNT_RLDCNT_Pos) /*!< WWDT_T::RLDCNT: RLDCNT Mask */
  107. #define WWDT_CTL_WWDTEN_Pos (0) /*!< WWDT_T::CTL: WWDTEN Position */
  108. #define WWDT_CTL_WWDTEN_Msk (0x1ul << WWDT_CTL_WWDTEN_Pos) /*!< WWDT_T::CTL: WWDTEN Mask */
  109. #define WWDT_CTL_INTEN_Pos (1) /*!< WWDT_T::CTL: INTEN Position */
  110. #define WWDT_CTL_INTEN_Msk (0x1ul << WWDT_CTL_INTEN_Pos) /*!< WWDT_T::CTL: INTEN Mask */
  111. #define WWDT_CTL_PSCSEL_Pos (8) /*!< WWDT_T::CTL: PSCSEL Position */
  112. #define WWDT_CTL_PSCSEL_Msk (0xful << WWDT_CTL_PSCSEL_Pos) /*!< WWDT_T::CTL: PSCSEL Mask */
  113. #define WWDT_CTL_CMPDAT_Pos (16) /*!< WWDT_T::CTL: CMPDAT Position */
  114. #define WWDT_CTL_CMPDAT_Msk (0x3ful << WWDT_CTL_CMPDAT_Pos) /*!< WWDT_T::CTL: CMPDAT Mask */
  115. #define WWDT_CTL_ICEDEBUG_Pos (31) /*!< WWDT_T::CTL: ICEDEBUG Position */
  116. #define WWDT_CTL_ICEDEBUG_Msk (0x1ul << WWDT_CTL_ICEDEBUG_Pos) /*!< WWDT_T::CTL: ICEDEBUG Mask */
  117. #define WWDT_STATUS_WWDTIF_Pos (0) /*!< WWDT_T::STATUS: WWDTIF Position */
  118. #define WWDT_STATUS_WWDTIF_Msk (0x1ul << WWDT_STATUS_WWDTIF_Pos) /*!< WWDT_T::STATUS: WWDTIF Mask */
  119. #define WWDT_STATUS_WWDTRF_Pos (1) /*!< WWDT_T::STATUS: WWDTRF Position */
  120. #define WWDT_STATUS_WWDTRF_Msk (0x1ul << WWDT_STATUS_WWDTRF_Pos) /*!< WWDT_T::STATUS: WWDTRF Mask */
  121. #define WWDT_CNT_CNTDAT_Pos (0) /*!< WWDT_T::CNT: CNTDAT Position */
  122. #define WWDT_CNT_CNTDAT_Msk (0x3ful << WWDT_CNT_CNTDAT_Pos) /*!< WWDT_T::CNT: CNTDAT Mask */
  123. /**@}*/ /* WWDT_CONST */
  124. /**@}*/ /* end of WWDT register group */
  125. /**@}*/ /* end of REGISTER group */
  126. #if defined ( __CC_ARM )
  127. #pragma no_anon_unions
  128. #endif
  129. #endif /* __WWDT_REG_H__ */