1#[doc = "SNVS"]
2#[repr(C)]
3pub struct RegisterBlock {
4#[doc = "SNVS_HP Lock Register"]
5pub HPLR: crate::RWRegister<u32>,
6#[doc = "SNVS_HP Command Register"]
7pub HPCOMR: crate::RWRegister<u32>,
8#[doc = "SNVS_HP Control Register"]
9pub HPCR: crate::RWRegister<u32>,
10#[doc = "SNVS_HP Security Interrupt Control Register"]
11pub HPSICR: crate::RWRegister<u32>,
12#[doc = "SNVS_HP Security Violation Control Register"]
13pub HPSVCR: crate::RWRegister<u32>,
14#[doc = "SNVS_HP Status Register"]
15pub HPSR: crate::RWRegister<u32>,
16#[doc = "SNVS_HP Security Violation Status Register"]
17pub HPSVSR: crate::RWRegister<u32>,
18#[doc = "SNVS_HP High Assurance Counter IV Register"]
19pub HPHACIVR: crate::RWRegister<u32>,
20#[doc = "SNVS_HP High Assurance Counter Register"]
21pub HPHACR: crate::RORegister<u32>,
22#[doc = "SNVS_HP Real Time Counter MSB Register"]
23pub HPRTCMR: crate::RWRegister<u32>,
24#[doc = "SNVS_HP Real Time Counter LSB Register"]
25pub HPRTCLR: crate::RWRegister<u32>,
26#[doc = "SNVS_HP Time Alarm MSB Register"]
27pub HPTAMR: crate::RWRegister<u32>,
28#[doc = "SNVS_HP Time Alarm LSB Register"]
29pub HPTALR: crate::RWRegister<u32>,
30#[doc = "SNVS_LP Lock Register"]
31pub LPLR: crate::RWRegister<u32>,
32#[doc = "SNVS_LP Control Register"]
33pub LPCR: crate::RWRegister<u32>,
34#[doc = "SNVS_LP Master Key Control Register"]
35pub LPMKCR: crate::RWRegister<u32>,
36#[doc = "SNVS_LP Security Violation Control Register"]
37pub LPSVCR: crate::RWRegister<u32>,
38 _reserved0: [u8; 0x04],
39#[doc = "SNVS_LP Tamper Detectors Configuration Register"]
40pub LPTDCR: crate::RWRegister<u32>,
41#[doc = "SNVS_LP Status Register"]
42pub LPSR: crate::RWRegister<u32>,
43#[doc = "SNVS_LP Secure Real Time Counter MSB Register"]
44pub LPSRTCMR: crate::RWRegister<u32>,
45#[doc = "SNVS_LP Secure Real Time Counter LSB Register"]
46pub LPSRTCLR: crate::RWRegister<u32>,
47#[doc = "SNVS_LP Time Alarm Register"]
48pub LPTAR: crate::RWRegister<u32>,
49#[doc = "SNVS_LP Secure Monotonic Counter MSB Register"]
50pub LPSMCMR: crate::RORegister<u32>,
51#[doc = "SNVS_LP Secure Monotonic Counter LSB Register"]
52pub LPSMCLR: crate::RORegister<u32>,
53#[doc = "SNVS_LP Power Glitch Detector Register"]
54pub LPPGDR: crate::RWRegister<u32>,
55#[doc = "SNVS_LP General Purpose Register 0 (legacy alias)"]
56pub LPGPR0_LEGACY_ALIAS: crate::RWRegister<u32>,
57#[doc = "SNVS_LP Zeroizable Master Key Register"]
58pub LPZMKR: [crate::RWRegister<u32>; 8usize],
59 _reserved1: [u8; 0x04],
60#[doc = "SNVS_LP General Purpose Registers 0 .. 3"]
61pub LPGPR_ALIAS: [crate::RWRegister<u32>; 4usize],
62 _reserved2: [u8; 0x60],
63#[doc = "SNVS_LP General Purpose Registers 0 .. 3"]
64pub LPGPR: [crate::RWRegister<u32>; 4usize],
65 _reserved3: [u8; 0x0ae8],
66#[doc = "SNVS_HP Version ID Register 1"]
67pub HPVIDR1: crate::RORegister<u32>,
68#[doc = "SNVS_HP Version ID Register 2"]
69pub HPVIDR2: crate::RORegister<u32>,
70}
71#[doc = "SNVS_HP Lock Register"]
72pub mod HPLR {
73#[doc = "Zeroizable Master Key Write Soft Lock When set, prevents any writes (software and hardware) to the ZMK registers and the ZMK_HWP, ZMK_VAL, and ZMK_ECC_EN fields of the LPMKCR"]
74pub mod ZMK_WSL {
75pub const offset: u32 = 0;
76pub const mask: u32 = 0x01 << offset;
77pub mod R {}
78pub mod W {}
79pub mod RW {
80#[doc = "Write access is allowed"]
81pub const ZMK_WSL_0: u32 = 0;
82#[doc = "Write access is not allowed"]
83pub const ZMK_WSL_1: u32 = 0x01;
84 }
85 }
86#[doc = "Zeroizable Master Key Read Soft Lock When set, prevents any software reads to the ZMK Registers and ZMK_ECC_VALUE field of the LPMKCR"]
87pub mod ZMK_RSL {
88pub const offset: u32 = 1;
89pub const mask: u32 = 0x01 << offset;
90pub mod R {}
91pub mod W {}
92pub mod RW {
93#[doc = "Read access is allowed (only in software Programming mode)"]
94pub const ZMK_RSL_0: u32 = 0;
95#[doc = "Read access is not allowed"]
96pub const ZMK_RSL_1: u32 = 0x01;
97 }
98 }
99#[doc = "Secure Real Time Counter Soft Lock When set, prevents any writes to the SRTC Registers, SRTC_ENV, and SRTC_INV_EN bits"]
100pub mod SRTC_SL {
101pub const offset: u32 = 2;
102pub const mask: u32 = 0x01 << offset;
103pub mod R {}
104pub mod W {}
105pub mod RW {
106#[doc = "Write access is allowed"]
107pub const SRTC_SL_0: u32 = 0;
108#[doc = "Write access is not allowed"]
109pub const SRTC_SL_1: u32 = 0x01;
110 }
111 }
112#[doc = "LP Calibration Soft Lock When set, prevents any writes to the LP Calibration Value (LPCALB_VAL) and LP Calibration Enable (LPCALB_EN)"]
113pub mod LPCALB_SL {
114pub const offset: u32 = 3;
115pub const mask: u32 = 0x01 << offset;
116pub mod R {}
117pub mod W {}
118pub mod RW {
119#[doc = "Write access is allowed"]
120pub const LPCALB_SL_0: u32 = 0;
121#[doc = "Write access is not allowed"]
122pub const LPCALB_SL_1: u32 = 0x01;
123 }
124 }
125#[doc = "Monotonic Counter Soft Lock When set, prevents any writes (increments) to the MC Registers and MC_ENV bit"]
126pub mod MC_SL {
127pub const offset: u32 = 4;
128pub const mask: u32 = 0x01 << offset;
129pub mod R {}
130pub mod W {}
131pub mod RW {
132#[doc = "Write access (increment) is allowed"]
133pub const MC_SL_0: u32 = 0;
134#[doc = "Write access (increment) is not allowed"]
135pub const MC_SL_1: u32 = 0x01;
136 }
137 }
138#[doc = "General Purpose Register Soft Lock When set, prevents any writes to the GPR"]
139pub mod GPR_SL {
140pub const offset: u32 = 5;
141pub const mask: u32 = 0x01 << offset;
142pub mod R {}
143pub mod W {}
144pub mod RW {
145#[doc = "Write access is allowed"]
146pub const GPR_SL_0: u32 = 0;
147#[doc = "Write access is not allowed"]
148pub const GPR_SL_1: u32 = 0x01;
149 }
150 }
151#[doc = "LP Security Violation Control Register Soft Lock When set, prevents any writes to the LPSVCR"]
152pub mod LPSVCR_SL {
153pub const offset: u32 = 6;
154pub const mask: u32 = 0x01 << offset;
155pub mod R {}
156pub mod W {}
157pub mod RW {
158#[doc = "Write access is allowed"]
159pub const LPSVCR_SL_0: u32 = 0;
160#[doc = "Write access is not allowed"]
161pub const LPSVCR_SL_1: u32 = 0x01;
162 }
163 }
164#[doc = "LP Tamper Detectors Configuration Register Soft Lock When set, prevents any writes to the LPTDCR"]
165pub mod LPTDCR_SL {
166pub const offset: u32 = 8;
167pub const mask: u32 = 0x01 << offset;
168pub mod R {}
169pub mod W {}
170pub mod RW {
171#[doc = "Write access is allowed"]
172pub const LPTDCR_SL_0: u32 = 0;
173#[doc = "Write access is not allowed"]
174pub const LPTDCR_SL_1: u32 = 0x01;
175 }
176 }
177#[doc = "Master Key Select Soft Lock When set, prevents any writes to the MASTER_KEY_SEL field of the LPMKCR"]
178pub mod MKS_SL {
179pub const offset: u32 = 9;
180pub const mask: u32 = 0x01 << offset;
181pub mod R {}
182pub mod W {}
183pub mod RW {
184#[doc = "Write access is allowed"]
185pub const MKS_SL_0: u32 = 0;
186#[doc = "Write access is not allowed"]
187pub const MKS_SL_1: u32 = 0x01;
188 }
189 }
190#[doc = "HP Security Violation Control Register Lock When set, prevents any writes to the HPSVCR"]
191pub mod HPSVCR_L {
192pub const offset: u32 = 16;
193pub const mask: u32 = 0x01 << offset;
194pub mod R {}
195pub mod W {}
196pub mod RW {
197#[doc = "Write access is allowed"]
198pub const HPSVCR_L_0: u32 = 0;
199#[doc = "Write access is not allowed"]
200pub const HPSVCR_L_1: u32 = 0x01;
201 }
202 }
203#[doc = "HP Security Interrupt Control Register Lock When set, prevents any writes to the HPSICR"]
204pub mod HPSICR_L {
205pub const offset: u32 = 17;
206pub const mask: u32 = 0x01 << offset;
207pub mod R {}
208pub mod W {}
209pub mod RW {
210#[doc = "Write access is allowed"]
211pub const HPSICR_L_0: u32 = 0;
212#[doc = "Write access is not allowed"]
213pub const HPSICR_L_1: u32 = 0x01;
214 }
215 }
216#[doc = "High Assurance Counter Lock When set, prevents any writes to HPHACIVR, HPHACR, and HAC_EN bit of HPCOMR"]
217pub mod HAC_L {
218pub const offset: u32 = 18;
219pub const mask: u32 = 0x01 << offset;
220pub mod R {}
221pub mod W {}
222pub mod RW {
223#[doc = "Write access is allowed"]
224pub const HAC_L_0: u32 = 0;
225#[doc = "Write access is not allowed"]
226pub const HAC_L_1: u32 = 0x01;
227 }
228 }
229}
230#[doc = "SNVS_HP Command Register"]
231pub mod HPCOMR {
232#[doc = "SSM State Transition Transition state of the system security monitor"]
233pub mod SSM_ST {
234pub const offset: u32 = 0;
235pub const mask: u32 = 0x01 << offset;
236pub mod R {}
237pub mod W {}
238pub mod RW {}
239 }
240#[doc = "SSM Secure to Trusted State Transition Disable When set, disables the SSM transition from secure to trusted state"]
241pub mod SSM_ST_DIS {
242pub const offset: u32 = 1;
243pub const mask: u32 = 0x01 << offset;
244pub mod R {}
245pub mod W {}
246pub mod RW {
247#[doc = "Secure to Trusted State transition is enabled"]
248pub const SSM_ST_DIS_0: u32 = 0;
249#[doc = "Secure to Trusted State transition is disabled"]
250pub const SSM_ST_DIS_1: u32 = 0x01;
251 }
252 }
253#[doc = "SSM Soft Fail to Non-Secure State Transition Disable When set, it disables the SSM transition from soft fail to non-secure state"]
254pub mod SSM_SFNS_DIS {
255pub const offset: u32 = 2;
256pub const mask: u32 = 0x01 << offset;
257pub mod R {}
258pub mod W {}
259pub mod RW {
260#[doc = "Soft Fail to Non-Secure State transition is enabled"]
261pub const SSM_SFNS_DIS_0: u32 = 0;
262#[doc = "Soft Fail to Non-Secure State transition is disabled"]
263pub const SSM_SFNS_DIS_1: u32 = 0x01;
264 }
265 }
266#[doc = "LP Software Reset When set to 1, most registers in the SNVS_LP section are reset, but the following registers are not reset by an LP software reset: Secure Real Time Counter Time Alarm Register This bit cannot be set when the LP_SWR_DIS bit is set"]
267pub mod LP_SWR {
268pub const offset: u32 = 4;
269pub const mask: u32 = 0x01 << offset;
270pub mod R {}
271pub mod W {}
272pub mod RW {
273#[doc = "No Action"]
274pub const LP_SWR_0: u32 = 0;
275#[doc = "Reset LP section"]
276pub const LP_SWR_1: u32 = 0x01;
277 }
278 }
279#[doc = "LP Software Reset Disable When set, disables the LP software reset"]
280pub mod LP_SWR_DIS {
281pub const offset: u32 = 5;
282pub const mask: u32 = 0x01 << offset;
283pub mod R {}
284pub mod W {}
285pub mod RW {
286#[doc = "LP software reset is enabled"]
287pub const LP_SWR_DIS_0: u32 = 0;
288#[doc = "LP software reset is disabled"]
289pub const LP_SWR_DIS_1: u32 = 0x01;
290 }
291 }
292#[doc = "Software Security Violation When set, the system security monitor treats this bit as a non-fatal security violation"]
293pub mod SW_SV {
294pub const offset: u32 = 8;
295pub const mask: u32 = 0x01 << offset;
296pub mod R {}
297pub mod W {}
298pub mod RW {}
299 }
300#[doc = "Software Fatal Security Violation When set, the system security monitor treats this bit as a fatal security violation"]
301pub mod SW_FSV {
302pub const offset: u32 = 9;
303pub const mask: u32 = 0x01 << offset;
304pub mod R {}
305pub mod W {}
306pub mod RW {}
307 }
308#[doc = "LP Software Security Violation When set, SNVS_LP treats this bit as a security violation"]
309pub mod SW_LPSV {
310pub const offset: u32 = 10;
311pub const mask: u32 = 0x01 << offset;
312pub mod R {}
313pub mod W {}
314pub mod RW {}
315 }
316#[doc = "Program Zeroizable Master Key This bit activates ZMK hardware programming mechanism"]
317pub mod PROG_ZMK {
318pub const offset: u32 = 12;
319pub const mask: u32 = 0x01 << offset;
320pub mod R {}
321pub mod W {}
322pub mod RW {
323#[doc = "No Action"]
324pub const PROG_ZMK_0: u32 = 0;
325#[doc = "Activate hardware key programming mechanism"]
326pub const PROG_ZMK_1: u32 = 0x01;
327 }
328 }
329#[doc = "Master Key Select Enable When not set, the one time programmable (OTP) master key is selected by default"]
330pub mod MKS_EN {
331pub const offset: u32 = 13;
332pub const mask: u32 = 0x01 << offset;
333pub mod R {}
334pub mod W {}
335pub mod RW {
336#[doc = "OTP master key is selected as an SNVS master key"]
337pub const MKS_EN_0: u32 = 0;
338#[doc = "SNVS master key is selected according to the setting of the MASTER_KEY_SEL field of LPMKCR"]
339pub const MKS_EN_1: u32 = 0x01;
340 }
341 }
342#[doc = "High Assurance Counter Enable This bit controls the SSM transition from the soft fail to the hard fail state"]
343pub mod HAC_EN {
344pub const offset: u32 = 16;
345pub const mask: u32 = 0x01 << offset;
346pub mod R {}
347pub mod W {}
348pub mod RW {
349#[doc = "High Assurance Counter is disabled"]
350pub const HAC_EN_0: u32 = 0;
351#[doc = "High Assurance Counter is enabled"]
352pub const HAC_EN_1: u32 = 0x01;
353 }
354 }
355#[doc = "High Assurance Counter Load When set, it loads the High Assurance Counter Register with the value of the High Assurance Counter Load Register"]
356pub mod HAC_LOAD {
357pub const offset: u32 = 17;
358pub const mask: u32 = 0x01 << offset;
359pub mod R {}
360pub mod W {}
361pub mod RW {
362#[doc = "No Action"]
363pub const HAC_LOAD_0: u32 = 0;
364#[doc = "Load the HAC"]
365pub const HAC_LOAD_1: u32 = 0x01;
366 }
367 }
368#[doc = "High Assurance Counter Clear When set, it clears the High Assurance Counter Register"]
369pub mod HAC_CLEAR {
370pub const offset: u32 = 18;
371pub const mask: u32 = 0x01 << offset;
372pub mod R {}
373pub mod W {}
374pub mod RW {
375#[doc = "No Action"]
376pub const HAC_CLEAR_0: u32 = 0;
377#[doc = "Clear the HAC"]
378pub const HAC_CLEAR_1: u32 = 0x01;
379 }
380 }
381#[doc = "High Assurance Counter Stop This bit can be set only when SSM is in soft fail state"]
382pub mod HAC_STOP {
383pub const offset: u32 = 19;
384pub const mask: u32 = 0x01 << offset;
385pub mod R {}
386pub mod W {}
387pub mod RW {}
388 }
389#[doc = "Non-Privileged Software Access Enable When set, allows non-privileged software to access all SNVS registers, including those that are privileged software read/write access only"]
390pub mod NPSWA_EN {
391pub const offset: u32 = 31;
392pub const mask: u32 = 0x01 << offset;
393pub mod R {}
394pub mod W {}
395pub mod RW {}
396 }
397}
398#[doc = "SNVS_HP Control Register"]
399pub mod HPCR {
400#[doc = "HP Real Time Counter Enable"]
401pub mod RTC_EN {
402pub const offset: u32 = 0;
403pub const mask: u32 = 0x01 << offset;
404pub mod R {}
405pub mod W {}
406pub mod RW {
407#[doc = "RTC is disabled"]
408pub const RTC_EN_0: u32 = 0;
409#[doc = "RTC is enabled"]
410pub const RTC_EN_1: u32 = 0x01;
411 }
412 }
413#[doc = "HP Time Alarm Enable When set, the time alarm interrupt is generated if the value in the HP Time Alarm Registers is equal to the value of the HP Real Time Counter"]
414pub mod HPTA_EN {
415pub const offset: u32 = 1;
416pub const mask: u32 = 0x01 << offset;
417pub mod R {}
418pub mod W {}
419pub mod RW {
420#[doc = "HP Time Alarm Interrupt is disabled"]
421pub const HPTA_EN_0: u32 = 0;
422#[doc = "HP Time Alarm Interrupt is enabled"]
423pub const HPTA_EN_1: u32 = 0x01;
424 }
425 }
426#[doc = "Disable periodic interrupt in the functional interrupt"]
427pub mod DIS_PI {
428pub const offset: u32 = 2;
429pub const mask: u32 = 0x01 << offset;
430pub mod R {}
431pub mod W {}
432pub mod RW {
433#[doc = "Periodic interrupt will trigger a functional interrupt"]
434pub const DIS_PI_0: u32 = 0;
435#[doc = "Disable periodic interrupt in the function interrupt"]
436pub const DIS_PI_1: u32 = 0x01;
437 }
438 }
439#[doc = "HP Periodic Interrupt Enable The periodic interrupt can be generated only if the HP Real Time Counter is enabled"]
440pub mod PI_EN {
441pub const offset: u32 = 3;
442pub const mask: u32 = 0x01 << offset;
443pub mod R {}
444pub mod W {}
445pub mod RW {
446#[doc = "HP Periodic Interrupt is disabled"]
447pub const PI_EN_0: u32 = 0;
448#[doc = "HP Periodic Interrupt is enabled"]
449pub const PI_EN_1: u32 = 0x01;
450 }
451 }
452#[doc = "Periodic Interrupt Frequency Defines frequency of the periodic interrupt"]
453pub mod PI_FREQ {
454pub const offset: u32 = 4;
455pub const mask: u32 = 0x0f << offset;
456pub mod R {}
457pub mod W {}
458pub mod RW {
459#[doc = "- bit 0 of the HPRTCLR is selected as a source of the periodic interrupt"]
460pub const PI_FREQ_0: u32 = 0;
461#[doc = "- bit 1 of the HPRTCLR is selected as a source of the periodic interrupt"]
462pub const PI_FREQ_1: u32 = 0x01;
463#[doc = "- bit 2 of the HPRTCLR is selected as a source of the periodic interrupt"]
464pub const PI_FREQ_2: u32 = 0x02;
465#[doc = "- bit 3 of the HPRTCLR is selected as a source of the periodic interrupt"]
466pub const PI_FREQ_3: u32 = 0x03;
467#[doc = "- bit 4 of the HPRTCLR is selected as a source of the periodic interrupt"]
468pub const PI_FREQ_4: u32 = 0x04;
469#[doc = "- bit 5 of the HPRTCLR is selected as a source of the periodic interrupt"]
470pub const PI_FREQ_5: u32 = 0x05;
471#[doc = "- bit 6 of the HPRTCLR is selected as a source of the periodic interrupt"]
472pub const PI_FREQ_6: u32 = 0x06;
473#[doc = "- bit 7 of the HPRTCLR is selected as a source of the periodic interrupt"]
474pub const PI_FREQ_7: u32 = 0x07;
475#[doc = "- bit 8 of the HPRTCLR is selected as a source of the periodic interrupt"]
476pub const PI_FREQ_8: u32 = 0x08;
477#[doc = "- bit 9 of the HPRTCLR is selected as a source of the periodic interrupt"]
478pub const PI_FREQ_9: u32 = 0x09;
479#[doc = "- bit 10 of the HPRTCLR is selected as a source of the periodic interrupt"]
480pub const PI_FREQ_10: u32 = 0x0a;
481#[doc = "- bit 11 of the HPRTCLR is selected as a source of the periodic interrupt"]
482pub const PI_FREQ_11: u32 = 0x0b;
483#[doc = "- bit 12 of the HPRTCLR is selected as a source of the periodic interrupt"]
484pub const PI_FREQ_12: u32 = 0x0c;
485#[doc = "- bit 13 of the HPRTCLR is selected as a source of the periodic interrupt"]
486pub const PI_FREQ_13: u32 = 0x0d;
487#[doc = "- bit 14 of the HPRTCLR is selected as a source of the periodic interrupt"]
488pub const PI_FREQ_14: u32 = 0x0e;
489#[doc = "- bit 15 of the HPRTCLR is selected as a source of the periodic interrupt"]
490pub const PI_FREQ_15: u32 = 0x0f;
491 }
492 }
493#[doc = "HP Real Time Counter Calibration Enabled Indicates that the time calibration mechanism is enabled."]
494pub mod HPCALB_EN {
495pub const offset: u32 = 8;
496pub const mask: u32 = 0x01 << offset;
497pub mod R {}
498pub mod W {}
499pub mod RW {
500#[doc = "HP Timer calibration disabled"]
501pub const HPCALB_EN_0: u32 = 0;
502#[doc = "HP Timer calibration enabled"]
503pub const HPCALB_EN_1: u32 = 0x01;
504 }
505 }
506#[doc = "HP Calibration Value Defines signed calibration value for the HP Real Time Counter"]
507pub mod HPCALB_VAL {
508pub const offset: u32 = 10;
509pub const mask: u32 = 0x1f << offset;
510pub mod R {}
511pub mod W {}
512pub mod RW {
513#[doc = "+0 counts per each 32768 ticks of the counter"]
514pub const HPCALB_VAL_0: u32 = 0;
515#[doc = "+1 counts per each 32768 ticks of the counter"]
516pub const HPCALB_VAL_1: u32 = 0x01;
517#[doc = "+2 counts per each 32768 ticks of the counter"]
518pub const HPCALB_VAL_2: u32 = 0x02;
519#[doc = "+15 counts per each 32768 ticks of the counter"]
520pub const HPCALB_VAL_15: u32 = 0x0f;
521#[doc = "-16 counts per each 32768 ticks of the counter"]
522pub const HPCALB_VAL_16: u32 = 0x10;
523#[doc = "-15 counts per each 32768 ticks of the counter"]
524pub const HPCALB_VAL_17: u32 = 0x11;
525#[doc = "-2 counts per each 32768 ticks of the counter"]
526pub const HPCALB_VAL_30: u32 = 0x1e;
527#[doc = "-1 counts per each 32768 ticks of the counter"]
528pub const HPCALB_VAL_31: u32 = 0x1f;
529 }
530 }
531#[doc = "HP Time Synchronize"]
532pub mod HP_TS {
533pub const offset: u32 = 16;
534pub const mask: u32 = 0x01 << offset;
535pub mod R {}
536pub mod W {}
537pub mod RW {
538#[doc = "No Action"]
539pub const HP_TS_0: u32 = 0;
540#[doc = "Synchronize the HP Time Counter to the LP Time Counter"]
541pub const HP_TS_1: u32 = 0x01;
542 }
543 }
544#[doc = "Button Configuration"]
545pub mod BTN_CONFIG {
546pub const offset: u32 = 24;
547pub const mask: u32 = 0x07 << offset;
548pub mod R {}
549pub mod W {}
550pub mod RW {}
551 }
552#[doc = "Button interrupt mask"]
553pub mod BTN_MASK {
554pub const offset: u32 = 27;
555pub const mask: u32 = 0x01 << offset;
556pub mod R {}
557pub mod W {}
558pub mod RW {}
559 }
560}
561#[doc = "SNVS_HP Security Interrupt Control Register"]
562pub mod HPSICR {
563#[doc = "Security Violation 0 Interrupt Enable Setting this bit to 1 enables generation of the security interrupt to the host processor upon detection of the Security Violation 0 security violation"]
564pub mod SV0_EN {
565pub const offset: u32 = 0;
566pub const mask: u32 = 0x01 << offset;
567pub mod R {}
568pub mod W {}
569pub mod RW {
570#[doc = "Security Violation 0 Interrupt is Disabled"]
571pub const SV0_EN_0: u32 = 0;
572#[doc = "Security Violation 0 Interrupt is Enabled"]
573pub const SV0_EN_1: u32 = 0x01;
574 }
575 }
576#[doc = "Security Violation 1 Interrupt Enable Setting this bit to 1 enables generation of the security interrupt to the host processor upon detection of the Security Violation 1 security violation"]
577pub mod SV1_EN {
578pub const offset: u32 = 1;
579pub const mask: u32 = 0x01 << offset;
580pub mod R {}
581pub mod W {}
582pub mod RW {
583#[doc = "Security Violation 1 Interrupt is Disabled"]
584pub const SV1_EN_0: u32 = 0;
585#[doc = "Security Violation 1 Interrupt is Enabled"]
586pub const SV1_EN_1: u32 = 0x01;
587 }
588 }
589#[doc = "Security Violation 2 Interrupt Enable Setting this bit to 1 enables generation of the security interrupt to the host processor upon detection of the Security Violation 2 security violation"]
590pub mod SV2_EN {
591pub const offset: u32 = 2;
592pub const mask: u32 = 0x01 << offset;
593pub mod R {}
594pub mod W {}
595pub mod RW {
596#[doc = "Security Violation 2 Interrupt is Disabled"]
597pub const SV2_EN_0: u32 = 0;
598#[doc = "Security Violation 2 Interrupt is Enabled"]
599pub const SV2_EN_1: u32 = 0x01;
600 }
601 }
602#[doc = "Security Violation 3 Interrupt Enable Setting this bit to 1 enables generation of the security interrupt to the host processor upon detection of the Security Violation 3 security violation"]
603pub mod SV3_EN {
604pub const offset: u32 = 3;
605pub const mask: u32 = 0x01 << offset;
606pub mod R {}
607pub mod W {}
608pub mod RW {
609#[doc = "Security Violation 3 Interrupt is Disabled"]
610pub const SV3_EN_0: u32 = 0;
611#[doc = "Security Violation 3 Interrupt is Enabled"]
612pub const SV3_EN_1: u32 = 0x01;
613 }
614 }
615#[doc = "Security Violation 4 Interrupt Enable Setting this bit to 1 enables generation of the security interrupt to the host processor upon detection of the Security Violation 4 security violation"]
616pub mod SV4_EN {
617pub const offset: u32 = 4;
618pub const mask: u32 = 0x01 << offset;
619pub mod R {}
620pub mod W {}
621pub mod RW {
622#[doc = "Security Violation 4 Interrupt is Disabled"]
623pub const SV4_EN_0: u32 = 0;
624#[doc = "Security Violation 4 Interrupt is Enabled"]
625pub const SV4_EN_1: u32 = 0x01;
626 }
627 }
628#[doc = "Security Violation 5 Interrupt Enable Setting this bit to 1 enables generation of the security interrupt to the host processor upon detection of the Security Violation 5 security violation"]
629pub mod SV5_EN {
630pub const offset: u32 = 5;
631pub const mask: u32 = 0x01 << offset;
632pub mod R {}
633pub mod W {}
634pub mod RW {
635#[doc = "Security Violation 5 Interrupt is Disabled"]
636pub const SV5_EN_0: u32 = 0;
637#[doc = "Security Violation 5 Interrupt is Enabled"]
638pub const SV5_EN_1: u32 = 0x01;
639 }
640 }
641#[doc = "LP Security Violation Interrupt Enable This bit enables generating of the security interrupt to the host processor upon security violation signal from the LP section"]
642pub mod LPSVI_EN {
643pub const offset: u32 = 31;
644pub const mask: u32 = 0x01 << offset;
645pub mod R {}
646pub mod W {}
647pub mod RW {
648#[doc = "LP Security Violation Interrupt is Disabled"]
649pub const LPSVI_EN_0: u32 = 0;
650#[doc = "LP Security Violation Interrupt is Enabled"]
651pub const LPSVI_EN_1: u32 = 0x01;
652 }
653 }
654}
655#[doc = "SNVS_HP Security Violation Control Register"]
656pub mod HPSVCR {
657#[doc = "Security Violation 0 Security Violation Configuration This field configures the Security Violation 0 Security Violation Input"]
658pub mod SV0_CFG {
659pub const offset: u32 = 0;
660pub const mask: u32 = 0x01 << offset;
661pub mod R {}
662pub mod W {}
663pub mod RW {
664#[doc = "Security Violation 0 is a non-fatal violation"]
665pub const SV0_CFG_0: u32 = 0;
666#[doc = "Security Violation 0 is a fatal violation"]
667pub const SV0_CFG_1: u32 = 0x01;
668 }
669 }
670#[doc = "Security Violation 1 Security Violation Configuration This field configures the Security Violation 1 Security Violation Input"]
671pub mod SV1_CFG {
672pub const offset: u32 = 1;
673pub const mask: u32 = 0x01 << offset;
674pub mod R {}
675pub mod W {}
676pub mod RW {
677#[doc = "Security Violation 1 is a non-fatal violation"]
678pub const SV1_CFG_0: u32 = 0;
679#[doc = "Security Violation 1 is a fatal violation"]
680pub const SV1_CFG_1: u32 = 0x01;
681 }
682 }
683#[doc = "Security Violation 2 Security Violation Configuration This field configures the Security Violation 2 Security Violation Input"]
684pub mod SV2_CFG {
685pub const offset: u32 = 2;
686pub const mask: u32 = 0x01 << offset;
687pub mod R {}
688pub mod W {}
689pub mod RW {
690#[doc = "Security Violation 2 is a non-fatal violation"]
691pub const SV2_CFG_0: u32 = 0;
692#[doc = "Security Violation 2 is a fatal violation"]
693pub const SV2_CFG_1: u32 = 0x01;
694 }
695 }
696#[doc = "Security Violation 3 Security Violation Configuration This field configures the Security Violation 3 Security Violation Input"]
697pub mod SV3_CFG {
698pub const offset: u32 = 3;
699pub const mask: u32 = 0x01 << offset;
700pub mod R {}
701pub mod W {}
702pub mod RW {
703#[doc = "Security Violation 3 is a non-fatal violation"]
704pub const SV3_CFG_0: u32 = 0;
705#[doc = "Security Violation 3 is a fatal violation"]
706pub const SV3_CFG_1: u32 = 0x01;
707 }
708 }
709#[doc = "Security Violation 4 Security Violation Configuration This field configures the Security Violation 4 Security Violation Input"]
710pub mod SV4_CFG {
711pub const offset: u32 = 4;
712pub const mask: u32 = 0x01 << offset;
713pub mod R {}
714pub mod W {}
715pub mod RW {
716#[doc = "Security Violation 4 is a non-fatal violation"]
717pub const SV4_CFG_0: u32 = 0;
718#[doc = "Security Violation 4 is a fatal violation"]
719pub const SV4_CFG_1: u32 = 0x01;
720 }
721 }
722#[doc = "Security Violation 5 Security Violation Configuration This field configures the Security Violation 5 Security Violation Input"]
723pub mod SV5_CFG {
724pub const offset: u32 = 5;
725pub const mask: u32 = 0x03 << offset;
726pub mod R {}
727pub mod W {}
728pub mod RW {
729#[doc = "Security Violation 5 is disabled"]
730pub const SV5_CFG_0: u32 = 0;
731#[doc = "Security Violation 5 is a non-fatal violation"]
732pub const SV5_CFG_1: u32 = 0x01;
733#[doc = "Security Violation 5 is a fatal violation"]
734pub const SV5_CFG_2: u32 = 0x02;
735 }
736 }
737#[doc = "LP Security Violation Configuration This field configures the LP security violation source."]
738pub mod LPSV_CFG {
739pub const offset: u32 = 30;
740pub const mask: u32 = 0x03 << offset;
741pub mod R {}
742pub mod W {}
743pub mod RW {
744#[doc = "LP security violation is disabled"]
745pub const LPSV_CFG_0: u32 = 0;
746#[doc = "LP security violation is a non-fatal violation"]
747pub const LPSV_CFG_1: u32 = 0x01;
748#[doc = "LP security violation is a fatal violation"]
749pub const LPSV_CFG_2: u32 = 0x02;
750 }
751 }
752}
753#[doc = "SNVS_HP Status Register"]
754pub mod HPSR {
755#[doc = "HP Time Alarm Indicates that the HP Time Alarm has occurred since this bit was last cleared."]
756pub mod HPTA {
757pub const offset: u32 = 0;
758pub const mask: u32 = 0x01 << offset;
759pub mod R {}
760pub mod W {}
761pub mod RW {
762#[doc = "No time alarm interrupt occurred."]
763pub const HPTA_0: u32 = 0;
764#[doc = "A time alarm interrupt occurred."]
765pub const HPTA_1: u32 = 0x01;
766 }
767 }
768#[doc = "Periodic Interrupt Indicates that periodic interrupt has occurred since this bit was last cleared."]
769pub mod PI {
770pub const offset: u32 = 1;
771pub const mask: u32 = 0x01 << offset;
772pub mod R {}
773pub mod W {}
774pub mod RW {
775#[doc = "No periodic interrupt occurred."]
776pub const PI_0: u32 = 0;
777#[doc = "A periodic interrupt occurred."]
778pub const PI_1: u32 = 0x01;
779 }
780 }
781#[doc = "Low Power Disable If 1, the low power section has been disabled by means of an input signal to SNVS"]
782pub mod LPDIS {
783pub const offset: u32 = 4;
784pub const mask: u32 = 0x01 << offset;
785pub mod R {}
786pub mod W {}
787pub mod RW {}
788 }
789#[doc = "Button Value of the BTN input"]
790pub mod BTN {
791pub const offset: u32 = 6;
792pub const mask: u32 = 0x01 << offset;
793pub mod R {}
794pub mod W {}
795pub mod RW {}
796 }
797#[doc = "Button Interrupt Signal ipi_snvs_btn_int_b was asserted."]
798pub mod BI {
799pub const offset: u32 = 7;
800pub const mask: u32 = 0x01 << offset;
801pub mod R {}
802pub mod W {}
803pub mod RW {}
804 }
805#[doc = "System Security Monitor State This field contains the encoded state of the SSM's state machine"]
806pub mod SSM_STATE {
807pub const offset: u32 = 8;
808pub const mask: u32 = 0x0f << offset;
809pub mod R {}
810pub mod W {}
811pub mod RW {
812#[doc = "Init"]
813pub const SSM_STATE_0: u32 = 0;
814#[doc = "Hard Fail"]
815pub const SSM_STATE_1: u32 = 0x01;
816#[doc = "Soft Fail"]
817pub const SSM_STATE_3: u32 = 0x03;
818#[doc = "Init Intermediate (transition state between Init and Check - SSM stays in this state only one clock cycle)"]
819pub const SSM_STATE_8: u32 = 0x08;
820#[doc = "Check"]
821pub const SSM_STATE_9: u32 = 0x09;
822#[doc = "Non-Secure"]
823pub const SSM_STATE_11: u32 = 0x0b;
824#[doc = "Trusted"]
825pub const SSM_STATE_13: u32 = 0x0d;
826#[doc = "Secure"]
827pub const SSM_STATE_15: u32 = 0x0f;
828 }
829 }
830#[doc = "Security Configuration This field reflects the settings of the sys_secure_boot input and the three security configuration inputs to SNVS"]
831pub mod SECURITY_CONFIG {
832pub const offset: u32 = 12;
833pub const mask: u32 = 0x0f << offset;
834pub mod R {
835#[doc = "FAB Configuration"]
836pub const FAB_CONFIG: u32 = 0;
837#[doc = "OPEN Configuration"]
838pub const OPEN_CONFIG: u32 = 0x01;
839#[doc = "CLOSED Configuration"]
840pub const CLOSED_CONFIG: u32 = 0x09;
841 }
842pub mod W {}
843pub mod RW {}
844 }
845#[doc = "One Time Programmable Master Key Syndrome In the case of a single-bit error, the eight lower bits of this value indicate the bit number of error location"]
846pub mod OTPMK_SYNDROME {
847pub const offset: u32 = 16;
848pub const mask: u32 = 0x01ff << offset;
849pub mod R {}
850pub mod W {}
851pub mod RW {}
852 }
853#[doc = "One Time Programmable Master Key is Equal to Zero"]
854pub mod OTPMK_ZERO {
855pub const offset: u32 = 27;
856pub const mask: u32 = 0x01 << offset;
857pub mod R {}
858pub mod W {}
859pub mod RW {
860#[doc = "The OTPMK is not zero."]
861pub const OTPMK_ZERO_0: u32 = 0;
862#[doc = "The OTPMK is zero."]
863pub const OTPMK_ZERO_1: u32 = 0x01;
864 }
865 }
866#[doc = "Zeroizable Master Key is Equal to Zero"]
867pub mod ZMK_ZERO {
868pub const offset: u32 = 31;
869pub const mask: u32 = 0x01 << offset;
870pub mod R {}
871pub mod W {}
872pub mod RW {
873#[doc = "The ZMK is not zero."]
874pub const ZMK_ZERO_0: u32 = 0;
875#[doc = "The ZMK is zero."]
876pub const ZMK_ZERO_1: u32 = 0x01;
877 }
878 }
879}
880#[doc = "SNVS_HP Security Violation Status Register"]
881pub mod HPSVSR {
882#[doc = "Security Violation 0 security violation was detected."]
883pub mod SV0 {
884pub const offset: u32 = 0;
885pub const mask: u32 = 0x01 << offset;
886pub mod R {}
887pub mod W {}
888pub mod RW {
889#[doc = "No Security Violation 0 security violation was detected."]
890pub const SV0_0: u32 = 0;
891#[doc = "Security Violation 0 security violation was detected."]
892pub const SV0_1: u32 = 0x01;
893 }
894 }
895#[doc = "Security Violation 1 security violation was detected."]
896pub mod SV1 {
897pub const offset: u32 = 1;
898pub const mask: u32 = 0x01 << offset;
899pub mod R {}
900pub mod W {}
901pub mod RW {
902#[doc = "No Security Violation 1 security violation was detected."]
903pub const SV1_0: u32 = 0;
904#[doc = "Security Violation 1 security violation was detected."]
905pub const SV1_1: u32 = 0x01;
906 }
907 }
908#[doc = "Security Violation 2 security violation was detected."]
909pub mod SV2 {
910pub const offset: u32 = 2;
911pub const mask: u32 = 0x01 << offset;
912pub mod R {}
913pub mod W {}
914pub mod RW {
915#[doc = "No Security Violation 2 security violation was detected."]
916pub const SV2_0: u32 = 0;
917#[doc = "Security Violation 2 security violation was detected."]
918pub const SV2_1: u32 = 0x01;
919 }
920 }
921#[doc = "Security Violation 3 security violation was detected."]
922pub mod SV3 {
923pub const offset: u32 = 3;
924pub const mask: u32 = 0x01 << offset;
925pub mod R {}
926pub mod W {}
927pub mod RW {
928#[doc = "No Security Violation 3 security violation was detected."]
929pub const SV3_0: u32 = 0;
930#[doc = "Security Violation 3 security violation was detected."]
931pub const SV3_1: u32 = 0x01;
932 }
933 }
934#[doc = "Security Violation 4 security violation was detected."]
935pub mod SV4 {
936pub const offset: u32 = 4;
937pub const mask: u32 = 0x01 << offset;
938pub mod R {}
939pub mod W {}
940pub mod RW {
941#[doc = "No Security Violation 4 security violation was detected."]
942pub const SV4_0: u32 = 0;
943#[doc = "Security Violation 4 security violation was detected."]
944pub const SV4_1: u32 = 0x01;
945 }
946 }
947#[doc = "Security Violation 5 security violation was detected."]
948pub mod SV5 {
949pub const offset: u32 = 5;
950pub const mask: u32 = 0x01 << offset;
951pub mod R {}
952pub mod W {}
953pub mod RW {
954#[doc = "No Security Violation 5 security violation was detected."]
955pub const SV5_0: u32 = 0;
956#[doc = "Security Violation 5 security violation was detected."]
957pub const SV5_1: u32 = 0x01;
958 }
959 }
960#[doc = "Software Security Violation This bit is a read-only copy of the SW_SV bit in the HP Command Register"]
961pub mod SW_SV {
962pub const offset: u32 = 13;
963pub const mask: u32 = 0x01 << offset;
964pub mod R {}
965pub mod W {}
966pub mod RW {}
967 }
968#[doc = "Software Fatal Security Violation This bit is a read-only copy of the SW_FSV bit in the HP Command Register"]
969pub mod SW_FSV {
970pub const offset: u32 = 14;
971pub const mask: u32 = 0x01 << offset;
972pub mod R {}
973pub mod W {}
974pub mod RW {}
975 }
976#[doc = "LP Software Security Violation This bit is a read-only copy of the SW_LPSV bit in the HP Command Register"]
977pub mod SW_LPSV {
978pub const offset: u32 = 15;
979pub const mask: u32 = 0x01 << offset;
980pub mod R {}
981pub mod W {}
982pub mod RW {}
983 }
984#[doc = "Zeroizable Master Key Syndrome The ZMK syndrome indicates the single-bit error location and parity for the ZMK register"]
985pub mod ZMK_SYNDROME {
986pub const offset: u32 = 16;
987pub const mask: u32 = 0x01ff << offset;
988pub mod R {}
989pub mod W {}
990pub mod RW {}
991 }
992#[doc = "Zeroizable Master Key Error Correcting Code Check Failure When set, this bit triggers a bad key violation to the SSM and a security violation to the SNVS_LP section, which clears security sensitive data"]
993pub mod ZMK_ECC_FAIL {
994pub const offset: u32 = 27;
995pub const mask: u32 = 0x01 << offset;
996pub mod R {}
997pub mod W {}
998pub mod RW {
999#[doc = "ZMK ECC Failure was not detected."]
1000pub const ZMK_ECC_FAIL_0: u32 = 0;
1001#[doc = "ZMK ECC Failure was detected."]
1002pub const ZMK_ECC_FAIL_1: u32 = 0x01;
1003 }
1004 }
1005#[doc = "LP Security Violation A security volation was detected in the SNVS low power section."]
1006pub mod LP_SEC_VIO {
1007pub const offset: u32 = 31;
1008pub const mask: u32 = 0x01 << offset;
1009pub mod R {}
1010pub mod W {}
1011pub mod RW {}
1012 }
1013}
1014#[doc = "SNVS_HP High Assurance Counter IV Register"]
1015pub mod HPHACIVR {
1016#[doc = "High Assurance Counter Initial Value This register is used to set the starting count value to the high assurance counter"]
1017pub mod HAC_COUNTER_IV {
1018pub const offset: u32 = 0;
1019pub const mask: u32 = 0xffff_ffff << offset;
1020pub mod R {}
1021pub mod W {}
1022pub mod RW {}
1023 }
1024}
1025#[doc = "SNVS_HP High Assurance Counter Register"]
1026pub mod HPHACR {
1027#[doc = "High Assurance Counter When the HAC_EN bit is set and the SSM is in the soft fail state, this counter starts to count down with the system clock"]
1028pub mod HAC_COUNTER {
1029pub const offset: u32 = 0;
1030pub const mask: u32 = 0xffff_ffff << offset;
1031pub mod R {}
1032pub mod W {}
1033pub mod RW {}
1034 }
1035}
1036#[doc = "SNVS_HP Real Time Counter MSB Register"]
1037pub mod HPRTCMR {
1038#[doc = "HP Real Time Counter The most-significant 15 bits of the RTC"]
1039pub mod RTC {
1040pub const offset: u32 = 0;
1041pub const mask: u32 = 0x7fff << offset;
1042pub mod R {}
1043pub mod W {}
1044pub mod RW {}
1045 }
1046}
1047#[doc = "SNVS_HP Real Time Counter LSB Register"]
1048pub mod HPRTCLR {
1049#[doc = "HP Real Time Counter least-significant 32 bits"]
1050pub mod RTC {
1051pub const offset: u32 = 0;
1052pub const mask: u32 = 0xffff_ffff << offset;
1053pub mod R {}
1054pub mod W {}
1055pub mod RW {}
1056 }
1057}
1058#[doc = "SNVS_HP Time Alarm MSB Register"]
1059pub mod HPTAMR {
1060#[doc = "HP Time Alarm, most-significant 15 bits"]
1061pub mod HPTA_MS {
1062pub const offset: u32 = 0;
1063pub const mask: u32 = 0x7fff << offset;
1064pub mod R {}
1065pub mod W {}
1066pub mod RW {}
1067 }
1068}
1069#[doc = "SNVS_HP Time Alarm LSB Register"]
1070pub mod HPTALR {
1071#[doc = "HP Time Alarm, 32 least-significant bits"]
1072pub mod HPTA_LS {
1073pub const offset: u32 = 0;
1074pub const mask: u32 = 0xffff_ffff << offset;
1075pub mod R {}
1076pub mod W {}
1077pub mod RW {}
1078 }
1079}
1080#[doc = "SNVS_LP Lock Register"]
1081pub mod LPLR {
1082#[doc = "Zeroizable Master Key Write Hard Lock When set, prevents any writes (software and hardware) to the ZMK registers and ZMK_HWP, ZMK_VAL, and ZMK_ECC_EN fields of the LPMKCR"]
1083pub mod ZMK_WHL {
1084pub const offset: u32 = 0;
1085pub const mask: u32 = 0x01 << offset;
1086pub mod R {}
1087pub mod W {}
1088pub mod RW {
1089#[doc = "Write access is allowed."]
1090pub const ZMK_WHL_0: u32 = 0;
1091#[doc = "Write access is not allowed."]
1092pub const ZMK_WHL_1: u32 = 0x01;
1093 }
1094 }
1095#[doc = "Zeroizable Master Key Read Hard Lock When set, prevents any software reads to the ZMK registers and ZMK_ECC_VALUE field of the LPMKCR"]
1096pub mod ZMK_RHL {
1097pub const offset: u32 = 1;
1098pub const mask: u32 = 0x01 << offset;
1099pub mod R {}
1100pub mod W {}
1101pub mod RW {
1102#[doc = "Read access is allowed (only in software programming mode)."]
1103pub const ZMK_RHL_0: u32 = 0;
1104#[doc = "Read access is not allowed."]
1105pub const ZMK_RHL_1: u32 = 0x01;
1106 }
1107 }
1108#[doc = "Secure Real Time Counter Hard Lock When set, prevents any writes to the SRTC registers, SRTC_ENV, and SRTC_INV_EN bits"]
1109pub mod SRTC_HL {
1110pub const offset: u32 = 2;
1111pub const mask: u32 = 0x01 << offset;
1112pub mod R {}
1113pub mod W {}
1114pub mod RW {
1115#[doc = "Write access is allowed."]
1116pub const SRTC_HL_0: u32 = 0;
1117#[doc = "Write access is not allowed."]
1118pub const SRTC_HL_1: u32 = 0x01;
1119 }
1120 }
1121#[doc = "LP Calibration Hard Lock When set, prevents any writes to the LP Calibration Value (LPCALB_VAL) and LP Calibration Enable (LPCALB_EN)"]
1122pub mod LPCALB_HL {
1123pub const offset: u32 = 3;
1124pub const mask: u32 = 0x01 << offset;
1125pub mod R {}
1126pub mod W {}
1127pub mod RW {
1128#[doc = "Write access is allowed."]
1129pub const LPCALB_HL_0: u32 = 0;
1130#[doc = "Write access is not allowed."]
1131pub const LPCALB_HL_1: u32 = 0x01;
1132 }
1133 }
1134#[doc = "Monotonic Counter Hard Lock When set, prevents any writes (increments) to the MC Registers and MC_ENV bit"]
1135pub mod MC_HL {
1136pub const offset: u32 = 4;
1137pub const mask: u32 = 0x01 << offset;
1138pub mod R {}
1139pub mod W {}
1140pub mod RW {
1141#[doc = "Write access (increment) is allowed."]
1142pub const MC_HL_0: u32 = 0;
1143#[doc = "Write access (increment) is not allowed."]
1144pub const MC_HL_1: u32 = 0x01;
1145 }
1146 }
1147#[doc = "General Purpose Register Hard Lock When set, prevents any writes to the GPR"]
1148pub mod GPR_HL {
1149pub const offset: u32 = 5;
1150pub const mask: u32 = 0x01 << offset;
1151pub mod R {}
1152pub mod W {}
1153pub mod RW {
1154#[doc = "Write access is allowed."]
1155pub const GPR_HL_0: u32 = 0;
1156#[doc = "Write access is not allowed."]
1157pub const GPR_HL_1: u32 = 0x01;
1158 }
1159 }
1160#[doc = "LP Security Violation Control Register Hard Lock When set, prevents any writes to the LPSVCR"]
1161pub mod LPSVCR_HL {
1162pub const offset: u32 = 6;
1163pub const mask: u32 = 0x01 << offset;
1164pub mod R {}
1165pub mod W {}
1166pub mod RW {
1167#[doc = "Write access is allowed."]
1168pub const LPSVCR_HL_0: u32 = 0;
1169#[doc = "Write access is not allowed."]
1170pub const LPSVCR_HL_1: u32 = 0x01;
1171 }
1172 }
1173#[doc = "LP Tamper Detectors Configuration Register Hard Lock When set, prevents any writes to the LPTDCR"]
1174pub mod LPTDCR_HL {
1175pub const offset: u32 = 8;
1176pub const mask: u32 = 0x01 << offset;
1177pub mod R {}
1178pub mod W {}
1179pub mod RW {
1180#[doc = "Write access is allowed."]
1181pub const LPTDCR_HL_0: u32 = 0;
1182#[doc = "Write access is not allowed."]
1183pub const LPTDCR_HL_1: u32 = 0x01;
1184 }
1185 }
1186#[doc = "Master Key Select Hard Lock When set, prevents any writes to the MASTER_KEY_SEL field of the LP Master Key Control Register"]
1187pub mod MKS_HL {
1188pub const offset: u32 = 9;
1189pub const mask: u32 = 0x01 << offset;
1190pub mod R {}
1191pub mod W {}
1192pub mod RW {
1193#[doc = "Write access is allowed."]
1194pub const MKS_HL_0: u32 = 0;
1195#[doc = "Write access is not allowed."]
1196pub const MKS_HL_1: u32 = 0x01;
1197 }
1198 }
1199}
1200#[doc = "SNVS_LP Control Register"]
1201pub mod LPCR {
1202#[doc = "Secure Real Time Counter Enabled and Valid When set, the SRTC becomes operational"]
1203pub mod SRTC_ENV {
1204pub const offset: u32 = 0;
1205pub const mask: u32 = 0x01 << offset;
1206pub mod R {}
1207pub mod W {}
1208pub mod RW {
1209#[doc = "SRTC is disabled or invalid."]
1210pub const SRTC_ENV_0: u32 = 0;
1211#[doc = "SRTC is enabled and valid."]
1212pub const SRTC_ENV_1: u32 = 0x01;
1213 }
1214 }
1215#[doc = "LP Time Alarm Enable When set, the SNVS functional interrupt is asserted if the LP Time Alarm Register is equal to the 32 MSBs of the secure real time counter"]
1216pub mod LPTA_EN {
1217pub const offset: u32 = 1;
1218pub const mask: u32 = 0x01 << offset;
1219pub mod R {}
1220pub mod W {}
1221pub mod RW {
1222#[doc = "LP time alarm interrupt is disabled."]
1223pub const LPTA_EN_0: u32 = 0;
1224#[doc = "LP time alarm interrupt is enabled."]
1225pub const LPTA_EN_1: u32 = 0x01;
1226 }
1227 }
1228#[doc = "Monotonic Counter Enabled and Valid When set, the MC can be incremented (by write transaction to the LPSMCMR or LPSMCLR)"]
1229pub mod MC_ENV {
1230pub const offset: u32 = 2;
1231pub const mask: u32 = 0x01 << offset;
1232pub mod R {}
1233pub mod W {}
1234pub mod RW {
1235#[doc = "MC is disabled or invalid."]
1236pub const MC_ENV_0: u32 = 0;
1237#[doc = "MC is enabled and valid."]
1238pub const MC_ENV_1: u32 = 0x01;
1239 }
1240 }
1241#[doc = "LP Wake-Up Interrupt Enable This interrupt line should be connected to the external pin and is intended to inform the external chip about an SNVS_LP event (tamper event, MC rollover, SRTC rollover, or time alarm )"]
1242pub mod LPWUI_EN {
1243pub const offset: u32 = 3;
1244pub const mask: u32 = 0x01 << offset;
1245pub mod R {}
1246pub mod W {}
1247pub mod RW {}
1248 }
1249#[doc = "If this bit is 1, in the case of a security violation the SRTC stops counting and the SRTC is invalidated (SRTC_ENV bit is cleared)"]
1250pub mod SRTC_INV_EN {
1251pub const offset: u32 = 4;
1252pub const mask: u32 = 0x01 << offset;
1253pub mod R {}
1254pub mod W {}
1255pub mod RW {
1256#[doc = "SRTC stays valid in the case of security violation."]
1257pub const SRTC_INV_EN_0: u32 = 0;
1258#[doc = "SRTC is invalidated in the case of security violation."]
1259pub const SRTC_INV_EN_1: u32 = 0x01;
1260 }
1261 }
1262#[doc = "Dumb PMIC Enabled When set, software can control the system power"]
1263pub mod DP_EN {
1264pub const offset: u32 = 5;
1265pub const mask: u32 = 0x01 << offset;
1266pub mod R {}
1267pub mod W {}
1268pub mod RW {
1269#[doc = "Smart PMIC enabled."]
1270pub const DP_EN_0: u32 = 0;
1271#[doc = "Dumb PMIC enabled."]
1272pub const DP_EN_1: u32 = 0x01;
1273 }
1274 }
1275#[doc = "Turn off System Power Asserting this bit causes a signal to be sent to the Power Management IC to turn off the system power"]
1276pub mod TOP {
1277pub const offset: u32 = 6;
1278pub const mask: u32 = 0x01 << offset;
1279pub mod R {}
1280pub mod W {}
1281pub mod RW {
1282#[doc = "Leave system power on."]
1283pub const TOP_0: u32 = 0;
1284#[doc = "Turn off system power."]
1285pub const TOP_1: u32 = 0x01;
1286 }
1287 }
1288#[doc = "Power Glitch Enable By default the detection of a power glitch does not cause the pmic_en_b signal to be asserted"]
1289pub mod PWR_GLITCH_EN {
1290pub const offset: u32 = 7;
1291pub const mask: u32 = 0x01 << offset;
1292pub mod R {}
1293pub mod W {}
1294pub mod RW {}
1295 }
1296#[doc = "LP Calibration Enable When set, enables the SRTC calibration mechanism"]
1297pub mod LPCALB_EN {
1298pub const offset: u32 = 8;
1299pub const mask: u32 = 0x01 << offset;
1300pub mod R {}
1301pub mod W {}
1302pub mod RW {
1303#[doc = "SRTC Time calibration is disabled."]
1304pub const LPCALB_EN_0: u32 = 0;
1305#[doc = "SRTC Time calibration is enabled."]
1306pub const LPCALB_EN_1: u32 = 0x01;
1307 }
1308 }
1309#[doc = "LP Calibration Value Defines signed calibration value for SRTC"]
1310pub mod LPCALB_VAL {
1311pub const offset: u32 = 10;
1312pub const mask: u32 = 0x1f << offset;
1313pub mod R {}
1314pub mod W {}
1315pub mod RW {
1316#[doc = "+0 counts per each 32768 ticks of the counter clock"]
1317pub const LPCALB_VAL_0: u32 = 0;
1318#[doc = "+1 counts per each 32768 ticks of the counter clock"]
1319pub const LPCALB_VAL_1: u32 = 0x01;
1320#[doc = "+2 counts per each 32768 ticks of the counter clock"]
1321pub const LPCALB_VAL_2: u32 = 0x02;
1322#[doc = "+15 counts per each 32768 ticks of the counter clock"]
1323pub const LPCALB_VAL_15: u32 = 0x0f;
1324#[doc = "-16 counts per each 32768 ticks of the counter clock"]
1325pub const LPCALB_VAL_16: u32 = 0x10;
1326#[doc = "-15 counts per each 32768 ticks of the counter clock"]
1327pub const LPCALB_VAL_17: u32 = 0x11;
1328#[doc = "-2 counts per each 32768 ticks of the counter clock"]
1329pub const LPCALB_VAL_30: u32 = 0x1e;
1330#[doc = "-1 counts per each 32768 ticks of the counter clock"]
1331pub const LPCALB_VAL_31: u32 = 0x1f;
1332 }
1333 }
1334#[doc = "This field configures the button press time out values for the PMIC Logic"]
1335pub mod BTN_PRESS_TIME {
1336pub const offset: u32 = 16;
1337pub const mask: u32 = 0x03 << offset;
1338pub mod R {}
1339pub mod W {}
1340pub mod RW {}
1341 }
1342#[doc = "This field configures the amount of debounce time for the BTN input signal"]
1343pub mod DEBOUNCE {
1344pub const offset: u32 = 18;
1345pub const mask: u32 = 0x03 << offset;
1346pub mod R {}
1347pub mod W {}
1348pub mod RW {}
1349 }
1350#[doc = "The ON_TIME field is used to configure the period of time after BTN is asserted before pmic_en_b is asserted to turn on the SoC power"]
1351pub mod ON_TIME {
1352pub const offset: u32 = 20;
1353pub const mask: u32 = 0x03 << offset;
1354pub mod R {}
1355pub mod W {}
1356pub mod RW {}
1357 }
1358#[doc = "PMIC On Request Enable The value written to PK_EN will be asserted on output signal snvs_lp_pk_en"]
1359pub mod PK_EN {
1360pub const offset: u32 = 22;
1361pub const mask: u32 = 0x01 << offset;
1362pub mod R {}
1363pub mod W {}
1364pub mod RW {}
1365 }
1366#[doc = "PMIC On Request Override The value written to PK_OVERRIDE will be asserted on output signal snvs_lp_pk_override"]
1367pub mod PK_OVERRIDE {
1368pub const offset: u32 = 23;
1369pub const mask: u32 = 0x01 << offset;
1370pub mod R {}
1371pub mod W {}
1372pub mod RW {}
1373 }
1374#[doc = "General Purpose Registers Zeroization Disable"]
1375pub mod GPR_Z_DIS {
1376pub const offset: u32 = 24;
1377pub const mask: u32 = 0x01 << offset;
1378pub mod R {}
1379pub mod W {}
1380pub mod RW {}
1381 }
1382}
1383#[doc = "SNVS_LP Master Key Control Register"]
1384pub mod LPMKCR {
1385#[doc = "Master Key Select These bits select the SNVS Master Key output when Master Key Select bits are enabled by MKS_EN bit in the HPCOMR"]
1386pub mod MASTER_KEY_SEL {
1387pub const offset: u32 = 0;
1388pub const mask: u32 = 0x03 << offset;
1389pub mod R {}
1390pub mod W {}
1391pub mod RW {
1392#[doc = "Select one time programmable master key."]
1393pub const MASTER_KEY_SEL_0: u32 = 0;
1394#[doc = "Select zeroizable master key when MKS_EN bit is set ."]
1395pub const MASTER_KEY_SEL_2: u32 = 0x02;
1396#[doc = "Select combined master key when MKS_EN bit is set ."]
1397pub const MASTER_KEY_SEL_3: u32 = 0x03;
1398 }
1399 }
1400#[doc = "Zeroizable Master Key hardware Programming mode When set, only the hardware key programming mechanism can set the ZMK and software cannot read it"]
1401pub mod ZMK_HWP {
1402pub const offset: u32 = 2;
1403pub const mask: u32 = 0x01 << offset;
1404pub mod R {}
1405pub mod W {}
1406pub mod RW {
1407#[doc = "ZMK is in the software programming mode."]
1408pub const ZMK_HWP_0: u32 = 0;
1409#[doc = "ZMK is in the hardware programming mode."]
1410pub const ZMK_HWP_1: u32 = 0x01;
1411 }
1412 }
1413#[doc = "Zeroizable Master Key Valid When set, the ZMK value can be selected by the master key control block for use by cryptographic modules"]
1414pub mod ZMK_VAL {
1415pub const offset: u32 = 3;
1416pub const mask: u32 = 0x01 << offset;
1417pub mod R {}
1418pub mod W {}
1419pub mod RW {
1420#[doc = "ZMK is not valid."]
1421pub const ZMK_VAL_0: u32 = 0;
1422#[doc = "ZMK is valid."]
1423pub const ZMK_VAL_1: u32 = 0x01;
1424 }
1425 }
1426#[doc = "Zeroizable Master Key Error Correcting Code Check Enable Writing one to this field automatically calculates and sets the ZMK ECC value in the ZMK_ECC_VALUE field of this register"]
1427pub mod ZMK_ECC_EN {
1428pub const offset: u32 = 4;
1429pub const mask: u32 = 0x01 << offset;
1430pub mod R {}
1431pub mod W {}
1432pub mod RW {
1433#[doc = "ZMK ECC check is disabled."]
1434pub const ZMK_ECC_EN_0: u32 = 0;
1435#[doc = "ZMK ECC check is enabled."]
1436pub const ZMK_ECC_EN_1: u32 = 0x01;
1437 }
1438 }
1439#[doc = "Zeroizable Master Key Error Correcting Code Value This field is automatically calculated and set when one is written into ZMK_ECC_EN bit of this register"]
1440pub mod ZMK_ECC_VALUE {
1441pub const offset: u32 = 7;
1442pub const mask: u32 = 0x01ff << offset;
1443pub mod R {}
1444pub mod W {}
1445pub mod RW {}
1446 }
1447}
1448#[doc = "SNVS_LP Security Violation Control Register"]
1449pub mod LPSVCR {
1450#[doc = "Security Violation 0 Enable This bit enables Security Violation 0 Input"]
1451pub mod SV0_EN {
1452pub const offset: u32 = 0;
1453pub const mask: u32 = 0x01 << offset;
1454pub mod R {}
1455pub mod W {}
1456pub mod RW {
1457#[doc = "Security Violation 0 is disabled in the LP domain."]
1458pub const SV0_EN_0: u32 = 0;
1459#[doc = "Security Violation 0 is enabled in the LP domain."]
1460pub const SV0_EN_1: u32 = 0x01;
1461 }
1462 }
1463#[doc = "Security Violation 1 Enable This bit enables Security Violation 1 Input"]
1464pub mod SV1_EN {
1465pub const offset: u32 = 1;
1466pub const mask: u32 = 0x01 << offset;
1467pub mod R {}
1468pub mod W {}
1469pub mod RW {
1470#[doc = "Security Violation 1 is disabled in the LP domain."]
1471pub const SV1_EN_0: u32 = 0;
1472#[doc = "Security Violation 1 is enabled in the LP domain."]
1473pub const SV1_EN_1: u32 = 0x01;
1474 }
1475 }
1476#[doc = "Security Violation 2 Enable This bit enables Security Violation 2 Input"]
1477pub mod SV2_EN {
1478pub const offset: u32 = 2;
1479pub const mask: u32 = 0x01 << offset;
1480pub mod R {}
1481pub mod W {}
1482pub mod RW {
1483#[doc = "Security Violation 2 is disabled in the LP domain."]
1484pub const SV2_EN_0: u32 = 0;
1485#[doc = "Security Violation 2 is enabled in the LP domain."]
1486pub const SV2_EN_1: u32 = 0x01;
1487 }
1488 }
1489#[doc = "Security Violation 3 Enable This bit enables Security Violation 3 Input"]
1490pub mod SV3_EN {
1491pub const offset: u32 = 3;
1492pub const mask: u32 = 0x01 << offset;
1493pub mod R {}
1494pub mod W {}
1495pub mod RW {
1496#[doc = "Security Violation 3 is disabled in the LP domain."]
1497pub const SV3_EN_0: u32 = 0;
1498#[doc = "Security Violation 3 is enabled in the LP domain."]
1499pub const SV3_EN_1: u32 = 0x01;
1500 }
1501 }
1502#[doc = "Security Violation 4 Enable This bit enables Security Violation 4 Input"]
1503pub mod SV4_EN {
1504pub const offset: u32 = 4;
1505pub const mask: u32 = 0x01 << offset;
1506pub mod R {}
1507pub mod W {}
1508pub mod RW {
1509#[doc = "Security Violation 4 is disabled in the LP domain."]
1510pub const SV4_EN_0: u32 = 0;
1511#[doc = "Security Violation 4 is enabled in the LP domain."]
1512pub const SV4_EN_1: u32 = 0x01;
1513 }
1514 }
1515#[doc = "Security Violation 5 Enable This bit enables Security Violation 5 Input"]
1516pub mod SV5_EN {
1517pub const offset: u32 = 5;
1518pub const mask: u32 = 0x01 << offset;
1519pub mod R {}
1520pub mod W {}
1521pub mod RW {
1522#[doc = "Security Violation 5 is disabled in the LP domain."]
1523pub const SV5_EN_0: u32 = 0;
1524#[doc = "Security Violation 5 is enabled in the LP domain."]
1525pub const SV5_EN_1: u32 = 0x01;
1526 }
1527 }
1528}
1529#[doc = "SNVS_LP Tamper Detectors Configuration Register"]
1530pub mod LPTDCR {
1531#[doc = "SRTC Rollover Enable When set, an SRTC rollover event generates an LP security violation."]
1532pub mod SRTCR_EN {
1533pub const offset: u32 = 1;
1534pub const mask: u32 = 0x01 << offset;
1535pub mod R {}
1536pub mod W {}
1537pub mod RW {
1538#[doc = "SRTC rollover is disabled."]
1539pub const SRTCR_EN_0: u32 = 0;
1540#[doc = "SRTC rollover is enabled."]
1541pub const SRTCR_EN_1: u32 = 0x01;
1542 }
1543 }
1544#[doc = "MC Rollover Enable When set, an MC Rollover event generates an LP security violation."]
1545pub mod MCR_EN {
1546pub const offset: u32 = 2;
1547pub const mask: u32 = 0x01 << offset;
1548pub mod R {}
1549pub mod W {}
1550pub mod RW {
1551#[doc = "MC rollover is disabled."]
1552pub const MCR_EN_0: u32 = 0;
1553#[doc = "MC rollover is enabled."]
1554pub const MCR_EN_1: u32 = 0x01;
1555 }
1556 }
1557#[doc = "External Tampering 1 Enable When set, external tampering 1 detection generates an LP security violation"]
1558pub mod ET1_EN {
1559pub const offset: u32 = 9;
1560pub const mask: u32 = 0x01 << offset;
1561pub mod R {}
1562pub mod W {}
1563pub mod RW {
1564#[doc = "External tamper 1 is disabled."]
1565pub const ET1_EN_0: u32 = 0;
1566#[doc = "External tamper 1 is enabled."]
1567pub const ET1_EN_1: u32 = 0x01;
1568 }
1569 }
1570#[doc = "External Tampering 1 Polarity This bit is used to determine the polarity of external tamper 1."]
1571pub mod ET1P {
1572pub const offset: u32 = 11;
1573pub const mask: u32 = 0x01 << offset;
1574pub mod R {}
1575pub mod W {}
1576pub mod RW {
1577#[doc = "External tamper 1 is active low."]
1578pub const ET1P_0: u32 = 0;
1579#[doc = "External tamper 1 is active high."]
1580pub const ET1P_1: u32 = 0x01;
1581 }
1582 }
1583#[doc = "System Power Fail Detector (PFD) Observability Flop The asynchronous reset input of this flop is connected directly to the inverted output of the PFD analog circuitry (external to the SNVS block)"]
1584pub mod PFD_OBSERV {
1585pub const offset: u32 = 14;
1586pub const mask: u32 = 0x01 << offset;
1587pub mod R {}
1588pub mod W {}
1589pub mod RW {}
1590 }
1591#[doc = "Power On Reset (POR) Observability Flop The asynchronous reset input of this flop is connected directly to the output of the POR analog circuitry (external to the SNVS"]
1592pub mod POR_OBSERV {
1593pub const offset: u32 = 15;
1594pub const mask: u32 = 0x01 << offset;
1595pub mod R {}
1596pub mod W {}
1597pub mod RW {}
1598 }
1599#[doc = "Oscillator Bypass When OSCB=1 the osc_bypass signal is asserted"]
1600pub mod OSCB {
1601pub const offset: u32 = 28;
1602pub const mask: u32 = 0x01 << offset;
1603pub mod R {}
1604pub mod W {}
1605pub mod RW {
1606#[doc = "Normal SRTC clock oscillator not bypassed."]
1607pub const OSCB_0: u32 = 0;
1608#[doc = "Normal SRTC clock oscillator bypassed. Alternate clock can drive the SRTC clock source."]
1609pub const OSCB_1: u32 = 0x01;
1610 }
1611 }
1612}
1613#[doc = "SNVS_LP Status Register"]
1614pub mod LPSR {
1615#[doc = "LP Time Alarm"]
1616pub mod LPTA {
1617pub const offset: u32 = 0;
1618pub const mask: u32 = 0x01 << offset;
1619pub mod R {}
1620pub mod W {}
1621pub mod RW {
1622#[doc = "No time alarm interrupt occurred."]
1623pub const LPTA_0: u32 = 0;
1624#[doc = "A time alarm interrupt occurred."]
1625pub const LPTA_1: u32 = 0x01;
1626 }
1627 }
1628#[doc = "Secure Real Time Counter Rollover"]
1629pub mod SRTCR {
1630pub const offset: u32 = 1;
1631pub const mask: u32 = 0x01 << offset;
1632pub mod R {}
1633pub mod W {}
1634pub mod RW {
1635#[doc = "SRTC has not reached its maximum value."]
1636pub const SRTCR_0: u32 = 0;
1637#[doc = "SRTC has reached its maximum value."]
1638pub const SRTCR_1: u32 = 0x01;
1639 }
1640 }
1641#[doc = "Monotonic Counter Rollover"]
1642pub mod MCR {
1643pub const offset: u32 = 2;
1644pub const mask: u32 = 0x01 << offset;
1645pub mod R {}
1646pub mod W {}
1647pub mod RW {
1648#[doc = "MC has not reached its maximum value."]
1649pub const MCR_0: u32 = 0;
1650#[doc = "MC has reached its maximum value."]
1651pub const MCR_1: u32 = 0x01;
1652 }
1653 }
1654#[doc = "Power Supply Glitch Detected 0 No power supply glitch. 1 Power supply glitch is detected."]
1655pub mod PGD {
1656pub const offset: u32 = 3;
1657pub const mask: u32 = 0x01 << offset;
1658pub mod R {}
1659pub mod W {}
1660pub mod RW {}
1661 }
1662#[doc = "External Tampering 1 Detected"]
1663pub mod ET1D {
1664pub const offset: u32 = 9;
1665pub const mask: u32 = 0x01 << offset;
1666pub mod R {}
1667pub mod W {}
1668pub mod RW {
1669#[doc = "External tampering 1 not detected."]
1670pub const ET1D_0: u32 = 0;
1671#[doc = "External tampering 1 detected."]
1672pub const ET1D_1: u32 = 0x01;
1673 }
1674 }
1675#[doc = "External Security Violation Detected Indicates that a security violation is detected on one of the HP security violation ports"]
1676pub mod ESVD {
1677pub const offset: u32 = 16;
1678pub const mask: u32 = 0x01 << offset;
1679pub mod R {}
1680pub mod W {}
1681pub mod RW {
1682#[doc = "No external security violation."]
1683pub const ESVD_0: u32 = 0;
1684#[doc = "External security violation is detected."]
1685pub const ESVD_1: u32 = 0x01;
1686 }
1687 }
1688#[doc = "Emergency Off This bit is set when a power off is requested."]
1689pub mod EO {
1690pub const offset: u32 = 17;
1691pub const mask: u32 = 0x01 << offset;
1692pub mod R {}
1693pub mod W {}
1694pub mod RW {
1695#[doc = "Emergency off was not detected."]
1696pub const EO_0: u32 = 0;
1697#[doc = "Emergency off was detected."]
1698pub const EO_1: u32 = 0x01;
1699 }
1700 }
1701#[doc = "Set Power Off The SPO bit is set when the power button is pressed longer than the configured debounce time"]
1702pub mod SPO {
1703pub const offset: u32 = 18;
1704pub const mask: u32 = 0x01 << offset;
1705pub mod R {}
1706pub mod W {}
1707pub mod RW {
1708#[doc = "Set Power Off was not detected."]
1709pub const SPO_0: u32 = 0;
1710#[doc = "Set Power Off was detected."]
1711pub const SPO_1: u32 = 0x01;
1712 }
1713 }
1714#[doc = "Scan Exit Detected"]
1715pub mod SED {
1716pub const offset: u32 = 20;
1717pub const mask: u32 = 0x01 << offset;
1718pub mod R {}
1719pub mod W {}
1720pub mod RW {
1721#[doc = "Scan exit was not detected."]
1722pub const SED_0: u32 = 0;
1723#[doc = "Scan exit was detected."]
1724pub const SED_1: u32 = 0x01;
1725 }
1726 }
1727#[doc = "LP Section is Non-Secured Indicates that LP section was provisioned/programmed in the non-secure state"]
1728pub mod LPNS {
1729pub const offset: u32 = 30;
1730pub const mask: u32 = 0x01 << offset;
1731pub mod R {}
1732pub mod W {}
1733pub mod RW {
1734#[doc = "LP section was not programmed in the non-secure state."]
1735pub const LPNS_0: u32 = 0;
1736#[doc = "LP section was programmed in the non-secure state."]
1737pub const LPNS_1: u32 = 0x01;
1738 }
1739 }
1740#[doc = "LP Section is Secured Indicates that the LP section is provisioned/programmed in the secure or trusted state"]
1741pub mod LPS {
1742pub const offset: u32 = 31;
1743pub const mask: u32 = 0x01 << offset;
1744pub mod R {}
1745pub mod W {}
1746pub mod RW {
1747#[doc = "LP section was not programmed in secure or trusted state."]
1748pub const LPS_0: u32 = 0;
1749#[doc = "LP section was programmed in secure or trusted state."]
1750pub const LPS_1: u32 = 0x01;
1751 }
1752 }
1753}
1754#[doc = "SNVS_LP Secure Real Time Counter MSB Register"]
1755pub mod LPSRTCMR {
1756#[doc = "LP Secure Real Time Counter The most-significant 15 bits of the SRTC"]
1757pub mod SRTC {
1758pub const offset: u32 = 0;
1759pub const mask: u32 = 0x7fff << offset;
1760pub mod R {}
1761pub mod W {}
1762pub mod RW {}
1763 }
1764}
1765#[doc = "SNVS_LP Secure Real Time Counter LSB Register"]
1766pub mod LPSRTCLR {
1767#[doc = "LP Secure Real Time Counter least-significant 32 bits This register can be programmed only when SRTC is not active and not locked, meaning the SRTC_ENV, SRTC_SL, and SRTC_HL bits are not set"]
1768pub mod SRTC {
1769pub const offset: u32 = 0;
1770pub const mask: u32 = 0xffff_ffff << offset;
1771pub mod R {}
1772pub mod W {}
1773pub mod RW {}
1774 }
1775}
1776#[doc = "SNVS_LP Time Alarm Register"]
1777pub mod LPTAR {
1778#[doc = "LP Time Alarm This register can be programmed only when the LP time alarm is disabled (LPTA_EN bit is not set)"]
1779pub mod LPTA {
1780pub const offset: u32 = 0;
1781pub const mask: u32 = 0xffff_ffff << offset;
1782pub mod R {}
1783pub mod W {}
1784pub mod RW {}
1785 }
1786}
1787#[doc = "SNVS_LP Secure Monotonic Counter MSB Register"]
1788pub mod LPSMCMR {
1789#[doc = "Monotonic Counter most-significant 16 Bits The MC is incremented by one when: A write transaction to the LPSMCMR or LPSMCLR register is detected"]
1790pub mod MON_COUNTER {
1791pub const offset: u32 = 0;
1792pub const mask: u32 = 0xffff << offset;
1793pub mod R {}
1794pub mod W {}
1795pub mod RW {}
1796 }
1797#[doc = "Monotonic Counter Era Bits These bits are inputs to the module and typically connect to fuses"]
1798pub mod MC_ERA_BITS {
1799pub const offset: u32 = 16;
1800pub const mask: u32 = 0xffff << offset;
1801pub mod R {}
1802pub mod W {}
1803pub mod RW {}
1804 }
1805}
1806#[doc = "SNVS_LP Secure Monotonic Counter LSB Register"]
1807pub mod LPSMCLR {
1808#[doc = "Monotonic Counter bits The MC is incremented by one when: A write transaction to the LPSMCMR or LPSMCLR Register is detected"]
1809pub mod MON_COUNTER {
1810pub const offset: u32 = 0;
1811pub const mask: u32 = 0xffff_ffff << offset;
1812pub mod R {}
1813pub mod W {}
1814pub mod RW {}
1815 }
1816}
1817#[doc = "SNVS_LP Power Glitch Detector Register"]
1818pub mod LPPGDR {
1819#[doc = "Power Glitch Detector Value"]
1820pub mod PGD {
1821pub const offset: u32 = 0;
1822pub const mask: u32 = 0xffff_ffff << offset;
1823pub mod R {}
1824pub mod W {}
1825pub mod RW {}
1826 }
1827}
1828#[doc = "SNVS_LP General Purpose Register 0 (legacy alias)"]
1829pub mod LPGPR0_LEGACY_ALIAS {
1830#[doc = "General Purpose Register When GPR_SL or GPR_HL bit is set, the register cannot be programmed."]
1831pub mod GPR {
1832pub const offset: u32 = 0;
1833pub const mask: u32 = 0xffff_ffff << offset;
1834pub mod R {}
1835pub mod W {}
1836pub mod RW {}
1837 }
1838}
1839#[doc = "SNVS_LP Zeroizable Master Key Register"]
1840pub mod LPZMKR {
1841#[doc = "Zeroizable Master Key Each of these registers contains 32 bits of the 256-bit ZMK value"]
1842pub mod ZMK {
1843pub const offset: u32 = 0;
1844pub const mask: u32 = 0xffff_ffff << offset;
1845pub mod R {}
1846pub mod W {}
1847pub mod RW {}
1848 }
1849}
1850#[doc = "SNVS_LP General Purpose Registers 0 .. 3"]
1851pub mod LPGPR_ALIAS {
1852#[doc = "General Purpose Register When GPR_SL or GPR_HL bit is set, the register cannot be programmed."]
1853pub mod GPR {
1854pub const offset: u32 = 0;
1855pub const mask: u32 = 0xffff_ffff << offset;
1856pub mod R {}
1857pub mod W {}
1858pub mod RW {}
1859 }
1860}
1861#[doc = "SNVS_LP General Purpose Registers 0 .. 3"]
1862pub mod LPGPR {
1863#[doc = "General Purpose Register When GPR_SL or GPR_HL bit is set, the register cannot be programmed."]
1864pub mod GPR {
1865pub const offset: u32 = 0;
1866pub const mask: u32 = 0xffff_ffff << offset;
1867pub mod R {}
1868pub mod W {}
1869pub mod RW {}
1870 }
1871}
1872#[doc = "SNVS_HP Version ID Register 1"]
1873pub mod HPVIDR1 {
1874#[doc = "SNVS block minor version number"]
1875pub mod MINOR_REV {
1876pub const offset: u32 = 0;
1877pub const mask: u32 = 0xff << offset;
1878pub mod R {}
1879pub mod W {}
1880pub mod RW {}
1881 }
1882#[doc = "SNVS block major version number"]
1883pub mod MAJOR_REV {
1884pub const offset: u32 = 8;
1885pub const mask: u32 = 0xff << offset;
1886pub mod R {}
1887pub mod W {}
1888pub mod RW {}
1889 }
1890#[doc = "SNVS block ID"]
1891pub mod IP_ID {
1892pub const offset: u32 = 16;
1893pub const mask: u32 = 0xffff << offset;
1894pub mod R {}
1895pub mod W {}
1896pub mod RW {}
1897 }
1898}
1899#[doc = "SNVS_HP Version ID Register 2"]
1900pub mod HPVIDR2 {
1901#[doc = "SNVS Configuration Options"]
1902pub mod CONFIG_OPT {
1903pub const offset: u32 = 0;
1904pub const mask: u32 = 0xff << offset;
1905pub mod R {}
1906pub mod W {}
1907pub mod RW {}
1908 }
1909#[doc = "SNVS ECO Revision"]
1910pub mod ECO_REV {
1911pub const offset: u32 = 8;
1912pub const mask: u32 = 0xff << offset;
1913pub mod R {}
1914pub mod W {}
1915pub mod RW {}
1916 }
1917#[doc = "SNVS Integration Options"]
1918pub mod INTG_OPT {
1919pub const offset: u32 = 16;
1920pub const mask: u32 = 0xff << offset;
1921pub mod R {}
1922pub mod W {}
1923pub mod RW {}
1924 }
1925#[doc = "IP Era 00h - Era 1 or 2 03h - Era 3 04h - Era 4 05h - Era 5"]
1926pub mod IP_ERA {
1927pub const offset: u32 = 24;
1928pub const mask: u32 = 0xff << offset;
1929pub mod R {}
1930pub mod W {}
1931pub mod RW {}
1932 }
1933}