1 
2 /******************************************************************************/
3 /*                Device Specific Peripheral registers structures             */
4 /******************************************************************************/
5 
6 /** @addtogroup REGISTER Control Register
7 
8   @{
9 
10 */
11 
12 
13 /*---------------------- Watch Dog Timer Controller -------------------------*/
14 /**
15     @addtogroup WDT Watch Dog Timer Controller(WDT)
16     Memory Mapped Structure for WDT Controller
17 @{ */
18 
19 typedef struct
20 {
21 
22 
23     /**
24      * @var WDT_T::CTL
25      * Offset: 0x00  WDT Control Register
26      * ---------------------------------------------------------------------------------------------------
27      * |Bits    |Field     |Descriptions
28      * | :----: | :----:   | :---- |
29      * |[1]     |RSTEN     |WDT Time-out Reset Enable Bit (Write Protect)
30      * |        |          |Setting this bit will enable the WDT time-out reset function If the WDT up counter value has not been cleared after the specific WDT reset delay period expires.
31      * |        |          |0 = WDT time-out reset function Disabled.
32      * |        |          |1 = WDT time-out reset function Enabled.
33      * |        |          |Note: This bit is write protected. Refer to the SYS_REGLCTL register.
34      * |[2]     |RSTF      |WDT Time-out Reset Flag
35      * |        |          |This bit indicates the system has been reset by WDT time-out reset or not.
36      * |        |          |0 = WDT time-out reset did not occur.
37      * |        |          |1 = WDT time-out reset occurred.
38      * |        |          |Note: This bit is cleared by writing 1 to it.
39      * |[3]     |IF        |WDT Time-out Interrupt Flag
40      * |        |          |This bit will set to 1 while WDT up counter value reaches the selected WDT time-out interval.
41      * |        |          |0 = WDT time-out interrupt did not occur.
42      * |        |          |1 = WDT time-out interrupt occurred.
43      * |        |          |Note: This bit is cleared by writing 1 to it.
44      * |[4]     |WKEN      |WDT Time-out Wake-up Function Control (Write Protect)
45      * |        |          |If this bit is set to 1, while WDT time-out interrupt flag IF (WDT_CTL[3]) is generated to 1 and interrupt enable bit INTEN (WDT_CTL[6]) is enabled, the WDT time-out interrupt signal will generate a wake-up trigger event to chip.
46      * |        |          |0 = Wake-up trigger event Disabled if WDT time-out interrupt signal generated.
47      * |        |          |1 = Wake-up trigger event Enabled if WDT time-out interrupt signal generated.
48      * |        |          |Note 1: This bit is write protected. Refer to the SYS_REGLCTL register.
49      * |        |          |Note 2: Chip can be woken up by WDT time-out interrupt signal generated only if WDT clock source is selected to 32 kHz internal low speed RC oscillator (LIRC) or LXT.
50      * |[5]     |WKF       |WDT Time-out Wake-up Flag
51      * |        |          |This bit indicates the interrupt wake-up flag status of WDT
52      * |        |          |0 = WDT does not cause chip wake-up.
53      * |        |          |1 = Chip wake-up from Idle or Power-down mode if WDT time-out interrupt signal generated.
54      * |        |          |Note: This bit is cleared by writing 1 to it.
55      * |[6]     |INTEN     |WDT Time-out Interrupt Enable Bit (Write Protect)
56      * |        |          |If this bit is enabled, the WDT time-out interrupt signal is generated and inform to CPU.
57      * |        |          |0 = WDT time-out interrupt Disabled.
58      * |        |          |1 = WDT time-out interrupt Enabled.
59      * |        |          |Note: This bit is write protected. Refer to the SYS_REGLCTL register.
60      * |[7]     |WDTEN     |WDT Enable Bit (Write Protect)
61      * |        |          |0 = WDT Disabled (This action will reset the internal up counter value).
62      * |        |          |1 = WDT Enabled.
63      * |        |          |Note 1: This bit is write protected. Refer to the SYS_REGLCTL register.
64      * |        |          |Note 2: If CWDTEN[2:0] (combined by Config0[31] and Config0[4:3]) bits is not configured to 111, this bit is forced as 1 and user cannot change this bit to 0.
65      * |[11:8]  |TOUTSEL   |WDT Time-out Interval Selection (Write Protect)
66      * |        |          |These four bits select the time-out interval period for the WDT.
67      * |        |          |0000 = 24 * WDT_CLK.
68      * |        |          |0001 = 26 * WDT_CLK.
69      * |        |          |0010 = 28 * WDT_CLK.
70      * |        |          |0011 = 210 * WDT_CLK.
71      * |        |          |0100 = 212 * WDT_CLK.
72      * |        |          |0101 = 214 * WDT_CLK.
73      * |        |          |0110 = 216 * WDT_CLK.
74      * |        |          |0111 = 218 * WDT_CLK.
75      * |        |          |1000 = 220 * WDT_CLK.
76      * |        |          |Note: This bit is write protected. Refer to the SYS_REGLCTL register.
77      * |[29]    |PDRSTCNT  |Reset Counter When Entering Power Down Enable Bit
78      * |        |          |0 = WDT up counter will keep going no matter CPU enter power down or not.
79      * |        |          |1 = Reset WDT up counter value to 0 when entering power down.
80      * |[30]    |SYNC      |WDT Enable Control SYNC Flag Indicator (Read Only)
81      * |        |          |If user executes enable/disable WDTEN (WDT_CTL[7]), this flag can be indicated enable/disable WDTEN function is completed or not.
82      * |        |          |0 = Setting WDTEN bit is completed and WDT is ready.
83      * |        |          |1 = Setting WDTEN bit is synchronizing and not become active yet.
84      * |        |          |Note: Performing enable or disable WDTEN bit needs 4 * WDT_CLK period to become active.
85      * |[31]    |ICEDEBUG  |ICE Debug Mode Acknowledge Disable Bit (Write Protect)
86      * |        |          |0 = ICE debug mode acknowledgement affects WDT counting.
87      * |        |          |WDT up counter will be held while CPU is held by ICE.
88      * |        |          |1 = ICE debug mode acknowledgement Disabled.
89      * |        |          |WDT up counter will keep going no matter CPU is held by ICE or not.
90      * |        |          |Note: This bit is write protected. Refer to the SYS_REGLCTL register.
91      * @var WDT_T::ALTCTL
92      * Offset: 0x04  WDT Alternative Control Register
93      * ---------------------------------------------------------------------------------------------------
94      * |Bits    |Field     |Descriptions
95      * | :----: | :----:   | :---- |
96      * |[1:0]   |RSTDSEL   |WDT Reset Delay Selection (Write Protect)
97      * |        |          |When WDT time-out happened, user has a time named WDT Reset Delay Period to clear WDT counter by programming 0x5AA5 to prevent WDT time-out reset happened
98      * |        |          |User can select a suitable setting of RSTDSEL for different WDT Reset Delay Period.
99      * |        |          |00 = WDT Reset Delay Period is 1026 * WDT_CLK.
100      * |        |          |01 = WDT Reset Delay Period is 130 * WDT_CLK.
101      * |        |          |10 = WDT Reset Delay Period is 18 * WDT_CLK.
102      * |        |          |11 = WDT Reset Delay Period is 3 * WDT_CLK.
103      * |        |          |Note 1: This bit is write protected. Refer to the SYS_REGLCTL register.
104      * |        |          |Note 2: This register will be reset to 0 if WDT time-out reset happened.
105      * @var WDT_T::RSTCNT
106      * Offset: 0x08  WDT Reset Counter Register
107      * ---------------------------------------------------------------------------------------------------
108      * |Bits    |Field     |Descriptions
109      * | :----: | :----:   | :---- |
110      * |[31:0]  |RSTCNT    |WDT Reset Counter Register
111      * |        |          |Writing 0x00005AA5 to this field will reset the internal 20-bit WDT up counter value to 0.
112      * |        |          |Note: Performing RSTCNT to reset counter needs 2 * WDT_CLK period to become active.
113      */
114     __IO uint32_t CTL;                   /*!< [0x0000] WDT Control Register                                             */
115     __IO uint32_t ALTCTL;                /*!< [0x0004] WDT Alternative Control Register                                 */
116     __O  uint32_t RSTCNT;                /*!< [0x0008] WDT Reset Counter Register                                       */
117 
118 } WDT_T;
119 
120 /**
121     @addtogroup WDT_CONST WDT Bit Field Definition
122     Constant Definitions for WDT Controller
123 @{ */
124 
125 #define WDT_CTL_RSTEN_Pos                (1)                                               /*!< WDT_T::CTL: RSTEN Position             */
126 #define WDT_CTL_RSTEN_Msk                (0x1ul << WDT_CTL_RSTEN_Pos)                      /*!< WDT_T::CTL: RSTEN Mask                 */
127 
128 #define WDT_CTL_RSTF_Pos                 (2)                                               /*!< WDT_T::CTL: RSTF Position              */
129 #define WDT_CTL_RSTF_Msk                 (0x1ul << WDT_CTL_RSTF_Pos)                       /*!< WDT_T::CTL: RSTF Mask                  */
130 
131 #define WDT_CTL_IF_Pos                   (3)                                               /*!< WDT_T::CTL: IF Position                */
132 #define WDT_CTL_IF_Msk                   (0x1ul << WDT_CTL_IF_Pos)                         /*!< WDT_T::CTL: IF Mask                    */
133 
134 #define WDT_CTL_WKEN_Pos                 (4)                                               /*!< WDT_T::CTL: WKEN Position              */
135 #define WDT_CTL_WKEN_Msk                 (0x1ul << WDT_CTL_WKEN_Pos)                       /*!< WDT_T::CTL: WKEN Mask                  */
136 
137 #define WDT_CTL_WKF_Pos                  (5)                                               /*!< WDT_T::CTL: WKF Position               */
138 #define WDT_CTL_WKF_Msk                  (0x1ul << WDT_CTL_WKF_Pos)                        /*!< WDT_T::CTL: WKF Mask                   */
139 
140 #define WDT_CTL_INTEN_Pos                (6)                                               /*!< WDT_T::CTL: INTEN Position             */
141 #define WDT_CTL_INTEN_Msk                (0x1ul << WDT_CTL_INTEN_Pos)                      /*!< WDT_T::CTL: INTEN Mask                 */
142 
143 #define WDT_CTL_WDTEN_Pos                (7)                                               /*!< WDT_T::CTL: WDTEN Position             */
144 #define WDT_CTL_WDTEN_Msk                (0x1ul << WDT_CTL_WDTEN_Pos)                      /*!< WDT_T::CTL: WDTEN Mask                 */
145 
146 #define WDT_CTL_TOUTSEL_Pos              (8)                                               /*!< WDT_T::CTL: TOUTSEL Position           */
147 #define WDT_CTL_TOUTSEL_Msk              (0xful << WDT_CTL_TOUTSEL_Pos)                    /*!< WDT_T::CTL: TOUTSEL Mask               */
148 
149 #define WDT_CTL_PDRSTCNT_Pos             (29)                                              /*!< WDT_T::CTL: PDRSTCNT Position          */
150 #define WDT_CTL_PDRSTCNT_Msk             (0x1ul << WDT_CTL_PDRSTCNT_Pos)                   /*!< WDT_T::CTL: PDRSTCNT Mask              */
151 
152 #define WDT_CTL_SYNC_Pos                 (30)                                              /*!< WDT_T::CTL: SYNC Position              */
153 #define WDT_CTL_SYNC_Msk                 (0x1ul << WDT_CTL_SYNC_Pos)                       /*!< WDT_T::CTL: SYNC Mask                  */
154 
155 #define WDT_CTL_ICEDEBUG_Pos             (31)                                              /*!< WDT_T::CTL: ICEDEBUG Position          */
156 #define WDT_CTL_ICEDEBUG_Msk             (0x1ul << WDT_CTL_ICEDEBUG_Pos)                   /*!< WDT_T::CTL: ICEDEBUG Mask              */
157 
158 #define WDT_ALTCTL_RSTDSEL_Pos           (0)                                               /*!< WDT_T::ALTCTL: RSTDSEL Position        */
159 #define WDT_ALTCTL_RSTDSEL_Msk           (0x3ul << WDT_ALTCTL_RSTDSEL_Pos)                 /*!< WDT_T::ALTCTL: RSTDSEL Mask            */
160 
161 #define WDT_RSTCNT_RSTCNT_Pos            (0)                                               /*!< WDT_T::RSTCNT: RSTCNT Position         */
162 #define WDT_RSTCNT_RSTCNT_Msk            (0xfffffffful << WDT_RSTCNT_RSTCNT_Pos)           /*!< WDT_T::RSTCNT: RSTCNT Mask             */
163 
164 /**@}*/ /* WDT_CONST */
165 /**@}*/ /* end of WDT register group */
166 
167 /**@}*/ /* end of REGISTER group */
168