imxrt_ral/blocks/imxrt1011/
rtwdog.rs

1#[doc = "WDOG"]
2#[repr(C)]
3pub struct RegisterBlock {
4    #[doc = "Watchdog Control and Status Register"]
5    pub CS: crate::RWRegister<u32>,
6    #[doc = "Watchdog Counter Register"]
7    pub CNT: crate::RWRegister<u32>,
8    #[doc = "Watchdog Timeout Value Register"]
9    pub TOVAL: crate::RWRegister<u32>,
10    #[doc = "Watchdog Window Register"]
11    pub WIN: crate::RWRegister<u32>,
12}
13#[doc = "Watchdog Control and Status Register"]
14pub mod CS {
15    #[doc = "Stop Enable"]
16    pub mod STOP {
17        pub const offset: u32 = 0;
18        pub const mask: u32 = 0x01 << offset;
19        pub mod R {}
20        pub mod W {}
21        pub mod RW {
22            #[doc = "Watchdog disabled in chip stop mode."]
23            pub const STOP_0: u32 = 0;
24            #[doc = "Watchdog enabled in chip stop mode."]
25            pub const STOP_1: u32 = 0x01;
26        }
27    }
28    #[doc = "Wait Enable"]
29    pub mod WAIT {
30        pub const offset: u32 = 1;
31        pub const mask: u32 = 0x01 << offset;
32        pub mod R {}
33        pub mod W {}
34        pub mod RW {
35            #[doc = "Watchdog disabled in chip wait mode."]
36            pub const WAIT_0: u32 = 0;
37            #[doc = "Watchdog enabled in chip wait mode."]
38            pub const WAIT_1: u32 = 0x01;
39        }
40    }
41    #[doc = "Debug Enable"]
42    pub mod DBG {
43        pub const offset: u32 = 2;
44        pub const mask: u32 = 0x01 << offset;
45        pub mod R {}
46        pub mod W {}
47        pub mod RW {
48            #[doc = "Watchdog disabled in chip debug mode."]
49            pub const DBG_0: u32 = 0;
50            #[doc = "Watchdog enabled in chip debug mode."]
51            pub const DBG_1: u32 = 0x01;
52        }
53    }
54    #[doc = "Watchdog Test"]
55    pub mod TST {
56        pub const offset: u32 = 3;
57        pub const mask: u32 = 0x03 << offset;
58        pub mod R {}
59        pub mod W {}
60        pub mod RW {
61            #[doc = "Watchdog test mode disabled."]
62            pub const TST_0: u32 = 0;
63            #[doc = "Watchdog user mode enabled. (Watchdog test mode disabled.) After testing the watchdog, software should use this setting to indicate that the watchdog is functioning normally in user mode."]
64            pub const TST_1: u32 = 0x01;
65            #[doc = "Watchdog test mode enabled, only the low byte is used. CNT\\[CNTLOW\\] is compared with TOVAL\\[TOVALLOW\\]."]
66            pub const TST_2: u32 = 0x02;
67            #[doc = "Watchdog test mode enabled, only the high byte is used. CNT\\[CNTHIGH\\] is compared with TOVAL\\[TOVALHIGH\\]."]
68            pub const TST_3: u32 = 0x03;
69        }
70    }
71    #[doc = "Allow updates"]
72    pub mod UPDATE {
73        pub const offset: u32 = 5;
74        pub const mask: u32 = 0x01 << offset;
75        pub mod R {}
76        pub mod W {}
77        pub mod RW {
78            #[doc = "Updates not allowed. After the initial configuration, the watchdog cannot be later modified without forcing a reset."]
79            pub const UPDATE_0: u32 = 0;
80            #[doc = "Updates allowed. Software can modify the watchdog configuration registers within 128 bus clocks after performing the unlock write sequence."]
81            pub const UPDATE_1: u32 = 0x01;
82        }
83    }
84    #[doc = "Watchdog Interrupt"]
85    pub mod INT {
86        pub const offset: u32 = 6;
87        pub const mask: u32 = 0x01 << offset;
88        pub mod R {}
89        pub mod W {}
90        pub mod RW {
91            #[doc = "Watchdog interrupts are disabled. Watchdog resets are not delayed."]
92            pub const INT_0: u32 = 0;
93            #[doc = "Watchdog interrupts are enabled. Watchdog resets are delayed by 128 bus clocks from the interrupt vector fetch."]
94            pub const INT_1: u32 = 0x01;
95        }
96    }
97    #[doc = "Watchdog Enable"]
98    pub mod EN {
99        pub const offset: u32 = 7;
100        pub const mask: u32 = 0x01 << offset;
101        pub mod R {}
102        pub mod W {}
103        pub mod RW {
104            #[doc = "Watchdog disabled."]
105            pub const EN_0: u32 = 0;
106            #[doc = "Watchdog enabled."]
107            pub const EN_1: u32 = 0x01;
108        }
109    }
110    #[doc = "Watchdog Clock"]
111    pub mod CLK {
112        pub const offset: u32 = 8;
113        pub const mask: u32 = 0x03 << offset;
114        pub mod R {}
115        pub mod W {}
116        pub mod RW {
117            #[doc = "Bus clock"]
118            pub const CLK_0: u32 = 0;
119            #[doc = "LPO clock"]
120            pub const CLK_1: u32 = 0x01;
121            #[doc = "INTCLK (internal clock)"]
122            pub const CLK_2: u32 = 0x02;
123            #[doc = "ERCLK (external reference clock)"]
124            pub const CLK_3: u32 = 0x03;
125        }
126    }
127    #[doc = "Reconfiguration Success"]
128    pub mod RCS {
129        pub const offset: u32 = 10;
130        pub const mask: u32 = 0x01 << offset;
131        pub mod R {}
132        pub mod W {}
133        pub mod RW {
134            #[doc = "Reconfiguring WDOG."]
135            pub const RCS_0: u32 = 0;
136            #[doc = "Reconfiguration is successful."]
137            pub const RCS_1: u32 = 0x01;
138        }
139    }
140    #[doc = "Unlock status"]
141    pub mod ULK {
142        pub const offset: u32 = 11;
143        pub const mask: u32 = 0x01 << offset;
144        pub mod R {}
145        pub mod W {}
146        pub mod RW {
147            #[doc = "WDOG is locked."]
148            pub const ULK_0: u32 = 0;
149            #[doc = "WDOG is unlocked."]
150            pub const ULK_1: u32 = 0x01;
151        }
152    }
153    #[doc = "Watchdog prescaler"]
154    pub mod PRES {
155        pub const offset: u32 = 12;
156        pub const mask: u32 = 0x01 << offset;
157        pub mod R {}
158        pub mod W {}
159        pub mod RW {
160            #[doc = "256 prescaler disabled."]
161            pub const PRES_0: u32 = 0;
162            #[doc = "256 prescaler enabled."]
163            pub const PRES_1: u32 = 0x01;
164        }
165    }
166    #[doc = "Enables or disables WDOG support for 32-bit (otherwise 16-bit or 8-bit) refresh/unlock command write words"]
167    pub mod CMD32EN {
168        pub const offset: u32 = 13;
169        pub const mask: u32 = 0x01 << offset;
170        pub mod R {}
171        pub mod W {}
172        pub mod RW {
173            #[doc = "Disables support for 32-bit refresh/unlock command write words. Only 16-bit or 8-bit is supported."]
174            pub const CMD32EN_0: u32 = 0;
175            #[doc = "Enables support for 32-bit refresh/unlock command write words. 16-bit or 8-bit is NOT supported."]
176            pub const CMD32EN_1: u32 = 0x01;
177        }
178    }
179    #[doc = "Watchdog Interrupt Flag"]
180    pub mod FLG {
181        pub const offset: u32 = 14;
182        pub const mask: u32 = 0x01 << offset;
183        pub mod R {}
184        pub mod W {}
185        pub mod RW {
186            #[doc = "No interrupt occurred."]
187            pub const FLG_0: u32 = 0;
188            #[doc = "An interrupt occurred."]
189            pub const FLG_1: u32 = 0x01;
190        }
191    }
192    #[doc = "Watchdog Window"]
193    pub mod WIN {
194        pub const offset: u32 = 15;
195        pub const mask: u32 = 0x01 << offset;
196        pub mod R {}
197        pub mod W {}
198        pub mod RW {
199            #[doc = "Window mode disabled."]
200            pub const WIN_0: u32 = 0;
201            #[doc = "Window mode enabled."]
202            pub const WIN_1: u32 = 0x01;
203        }
204    }
205}
206#[doc = "Watchdog Counter Register"]
207pub mod CNT {
208    #[doc = "Low byte of the Watchdog Counter"]
209    pub mod CNTLOW {
210        pub const offset: u32 = 0;
211        pub const mask: u32 = 0xff << offset;
212        pub mod R {}
213        pub mod W {}
214        pub mod RW {}
215    }
216    #[doc = "High byte of the Watchdog Counter"]
217    pub mod CNTHIGH {
218        pub const offset: u32 = 8;
219        pub const mask: u32 = 0xff << offset;
220        pub mod R {}
221        pub mod W {}
222        pub mod RW {}
223    }
224}
225#[doc = "Watchdog Timeout Value Register"]
226pub mod TOVAL {
227    #[doc = "Low byte of the timeout value"]
228    pub mod TOVALLOW {
229        pub const offset: u32 = 0;
230        pub const mask: u32 = 0xff << offset;
231        pub mod R {}
232        pub mod W {}
233        pub mod RW {}
234    }
235    #[doc = "High byte of the timeout value"]
236    pub mod TOVALHIGH {
237        pub const offset: u32 = 8;
238        pub const mask: u32 = 0xff << offset;
239        pub mod R {}
240        pub mod W {}
241        pub mod RW {}
242    }
243}
244#[doc = "Watchdog Window Register"]
245pub mod WIN {
246    #[doc = "Low byte of Watchdog Window"]
247    pub mod WINLOW {
248        pub const offset: u32 = 0;
249        pub const mask: u32 = 0xff << offset;
250        pub mod R {}
251        pub mod W {}
252        pub mod RW {}
253    }
254    #[doc = "High byte of Watchdog Window"]
255    pub mod WINHIGH {
256        pub const offset: u32 = 8;
257        pub const mask: u32 = 0xff << offset;
258        pub mod R {}
259        pub mod W {}
260        pub mod RW {}
261    }
262}