1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4 #[doc = "0x00 - PIO Enable Register"]
5 pub per: PER,
6 #[doc = "0x04 - PIO Disable Register"]
7 pub pdr: PDR,
8 #[doc = "0x08 - PIO Status Register"]
9 pub psr: PSR,
10 _reserved3: [u8; 0x04],
11 #[doc = "0x10 - Output Enable Register"]
12 pub oer: OER,
13 #[doc = "0x14 - Output Disable Register"]
14 pub odr: ODR,
15 #[doc = "0x18 - Output Status Register"]
16 pub osr: OSR,
17 _reserved6: [u8; 0x04],
18 #[doc = "0x20 - Glitch Input Filter Enable Register"]
19 pub ifer: IFER,
20 #[doc = "0x24 - Glitch Input Filter Disable Register"]
21 pub ifdr: IFDR,
22 #[doc = "0x28 - Glitch Input Filter Status Register"]
23 pub ifsr: IFSR,
24 _reserved9: [u8; 0x04],
25 #[doc = "0x30 - Set Output Data Register"]
26 pub sodr: SODR,
27 #[doc = "0x34 - Clear Output Data Register"]
28 pub codr: CODR,
29 #[doc = "0x38 - Output Data Status Register"]
30 pub odsr: ODSR,
31 #[doc = "0x3c - Pin Data Status Register"]
32 pub pdsr: PDSR,
33 #[doc = "0x40 - Interrupt Enable Register"]
34 pub ier: IER,
35 #[doc = "0x44 - Interrupt Disable Register"]
36 pub idr: IDR,
37 #[doc = "0x48 - Interrupt Mask Register"]
38 pub imr: IMR,
39 #[doc = "0x4c - Interrupt Status Register"]
40 pub isr: ISR,
41 #[doc = "0x50 - Multi-driver Enable Register"]
42 pub mder: MDER,
43 #[doc = "0x54 - Multi-driver Disable Register"]
44 pub mddr: MDDR,
45 #[doc = "0x58 - Multi-driver Status Register"]
46 pub mdsr: MDSR,
47 _reserved20: [u8; 0x04],
48 #[doc = "0x60 - Pull-up Disable Register"]
49 pub pudr: PUDR,
50 #[doc = "0x64 - Pull-up Enable Register"]
51 pub puer: PUER,
52 #[doc = "0x68 - Pad Pull-up Status Register"]
53 pub pusr: PUSR,
54 _reserved23: [u8; 0x04],
55 #[doc = "0x70..0x78 - Peripheral Select Register"]
56 pub abcdsr: [ABCDSR; 2],
57 _reserved24: [u8; 0x08],
58 #[doc = "0x80 - Input Filter Slow Clock Disable Register"]
59 pub ifscdr: IFSCDR,
60 #[doc = "0x84 - Input Filter Slow Clock Enable Register"]
61 pub ifscer: IFSCER,
62 #[doc = "0x88 - Input Filter Slow Clock Status Register"]
63 pub ifscsr: IFSCSR,
64 #[doc = "0x8c - Slow Clock Divider Debouncing Register"]
65 pub scdr: SCDR,
66 #[doc = "0x90 - Pad Pull-down Disable Register"]
67 pub ppddr: PPDDR,
68 #[doc = "0x94 - Pad Pull-down Enable Register"]
69 pub ppder: PPDER,
70 #[doc = "0x98 - Pad Pull-down Status Register"]
71 pub ppdsr: PPDSR,
72 _reserved31: [u8; 0x04],
73 #[doc = "0xa0 - Output Write Enable"]
74 pub ower: OWER,
75 #[doc = "0xa4 - Output Write Disable"]
76 pub owdr: OWDR,
77 #[doc = "0xa8 - Output Write Status Register"]
78 pub owsr: OWSR,
79 _reserved34: [u8; 0x04],
80 #[doc = "0xb0 - Additional Interrupt Modes Enable Register"]
81 pub aimer: AIMER,
82 #[doc = "0xb4 - Additional Interrupt Modes Disable Register"]
83 pub aimdr: AIMDR,
84 #[doc = "0xb8 - Additional Interrupt Modes Mask Register"]
85 pub aimmr: AIMMR,
86 _reserved37: [u8; 0x04],
87 #[doc = "0xc0 - Edge Select Register"]
88 pub esr: ESR,
89 #[doc = "0xc4 - Level Select Register"]
90 pub lsr: LSR,
91 #[doc = "0xc8 - Edge/Level Status Register"]
92 pub elsr: ELSR,
93 _reserved40: [u8; 0x04],
94 #[doc = "0xd0 - Falling Edge/Low-Level Select Register"]
95 pub fellsr: FELLSR,
96 #[doc = "0xd4 - Rising Edge/High-Level Select Register"]
97 pub rehlsr: REHLSR,
98 #[doc = "0xd8 - Fall/Rise - Low/High Status Register"]
99 pub frlhsr: FRLHSR,
100 _reserved43: [u8; 0x04],
101 #[doc = "0xe0 - Lock Status"]
102 pub locksr: LOCKSR,
103 #[doc = "0xe4 - Write Protection Mode Register"]
104 pub wpmr: WPMR,
105 #[doc = "0xe8 - Write Protection Status Register"]
106 pub wpsr: WPSR,
107 _reserved46: [u8; 0x14],
108 #[doc = "0x100 - Schmitt Trigger Register"]
109 pub schmitt: SCHMITT,
110 _reserved47: [u8; 0x0c],
111 #[doc = "0x110 - I/O Delay Register"]
112 pub delayr: DELAYR,
113 _reserved48: [u8; 0x3c],
114 #[doc = "0x150 - Parallel Capture Mode Register"]
115 pub pcmr: PCMR,
116 #[doc = "0x154 - Parallel Capture Interrupt Enable Register"]
117 pub pcier: PCIER,
118 #[doc = "0x158 - Parallel Capture Interrupt Disable Register"]
119 pub pcidr: PCIDR,
120 #[doc = "0x15c - Parallel Capture Interrupt Mask Register"]
121 pub pcimr: PCIMR,
122 #[doc = "0x160 - Parallel Capture Interrupt Status Register"]
123 pub pcisr: PCISR,
124 #[doc = "0x164 - Parallel Capture Reception Holding Register"]
125 pub pcrhr: PCRHR,
126}
127#[doc = "PER (w) register accessor: an alias for `Reg<PER_SPEC>`"]
128pub type PER = crate::Reg<per::PER_SPEC>;
129#[doc = "PIO Enable Register"]
130pub mod per;
131#[doc = "PDR (w) register accessor: an alias for `Reg<PDR_SPEC>`"]
132pub type PDR = crate::Reg<pdr::PDR_SPEC>;
133#[doc = "PIO Disable Register"]
134pub mod pdr;
135#[doc = "PSR (r) register accessor: an alias for `Reg<PSR_SPEC>`"]
136pub type PSR = crate::Reg<psr::PSR_SPEC>;
137#[doc = "PIO Status Register"]
138pub mod psr;
139#[doc = "OER (w) register accessor: an alias for `Reg<OER_SPEC>`"]
140pub type OER = crate::Reg<oer::OER_SPEC>;
141#[doc = "Output Enable Register"]
142pub mod oer;
143#[doc = "ODR (w) register accessor: an alias for `Reg<ODR_SPEC>`"]
144pub type ODR = crate::Reg<odr::ODR_SPEC>;
145#[doc = "Output Disable Register"]
146pub mod odr;
147#[doc = "OSR (r) register accessor: an alias for `Reg<OSR_SPEC>`"]
148pub type OSR = crate::Reg<osr::OSR_SPEC>;
149#[doc = "Output Status Register"]
150pub mod osr;
151#[doc = "IFER (w) register accessor: an alias for `Reg<IFER_SPEC>`"]
152pub type IFER = crate::Reg<ifer::IFER_SPEC>;
153#[doc = "Glitch Input Filter Enable Register"]
154pub mod ifer;
155#[doc = "IFDR (w) register accessor: an alias for `Reg<IFDR_SPEC>`"]
156pub type IFDR = crate::Reg<ifdr::IFDR_SPEC>;
157#[doc = "Glitch Input Filter Disable Register"]
158pub mod ifdr;
159#[doc = "IFSR (r) register accessor: an alias for `Reg<IFSR_SPEC>`"]
160pub type IFSR = crate::Reg<ifsr::IFSR_SPEC>;
161#[doc = "Glitch Input Filter Status Register"]
162pub mod ifsr;
163#[doc = "SODR (w) register accessor: an alias for `Reg<SODR_SPEC>`"]
164pub type SODR = crate::Reg<sodr::SODR_SPEC>;
165#[doc = "Set Output Data Register"]
166pub mod sodr;
167#[doc = "CODR (w) register accessor: an alias for `Reg<CODR_SPEC>`"]
168pub type CODR = crate::Reg<codr::CODR_SPEC>;
169#[doc = "Clear Output Data Register"]
170pub mod codr;
171#[doc = "ODSR (rw) register accessor: an alias for `Reg<ODSR_SPEC>`"]
172pub type ODSR = crate::Reg<odsr::ODSR_SPEC>;
173#[doc = "Output Data Status Register"]
174pub mod odsr;
175#[doc = "PDSR (r) register accessor: an alias for `Reg<PDSR_SPEC>`"]
176pub type PDSR = crate::Reg<pdsr::PDSR_SPEC>;
177#[doc = "Pin Data Status Register"]
178pub mod pdsr;
179#[doc = "IER (w) register accessor: an alias for `Reg<IER_SPEC>`"]
180pub type IER = crate::Reg<ier::IER_SPEC>;
181#[doc = "Interrupt Enable Register"]
182pub mod ier;
183#[doc = "IDR (w) register accessor: an alias for `Reg<IDR_SPEC>`"]
184pub type IDR = crate::Reg<idr::IDR_SPEC>;
185#[doc = "Interrupt Disable Register"]
186pub mod idr;
187#[doc = "IMR (r) register accessor: an alias for `Reg<IMR_SPEC>`"]
188pub type IMR = crate::Reg<imr::IMR_SPEC>;
189#[doc = "Interrupt Mask Register"]
190pub mod imr;
191#[doc = "ISR (r) register accessor: an alias for `Reg<ISR_SPEC>`"]
192pub type ISR = crate::Reg<isr::ISR_SPEC>;
193#[doc = "Interrupt Status Register"]
194pub mod isr;
195#[doc = "MDER (w) register accessor: an alias for `Reg<MDER_SPEC>`"]
196pub type MDER = crate::Reg<mder::MDER_SPEC>;
197#[doc = "Multi-driver Enable Register"]
198pub mod mder;
199#[doc = "MDDR (w) register accessor: an alias for `Reg<MDDR_SPEC>`"]
200pub type MDDR = crate::Reg<mddr::MDDR_SPEC>;
201#[doc = "Multi-driver Disable Register"]
202pub mod mddr;
203#[doc = "MDSR (r) register accessor: an alias for `Reg<MDSR_SPEC>`"]
204pub type MDSR = crate::Reg<mdsr::MDSR_SPEC>;
205#[doc = "Multi-driver Status Register"]
206pub mod mdsr;
207#[doc = "PUDR (w) register accessor: an alias for `Reg<PUDR_SPEC>`"]
208pub type PUDR = crate::Reg<pudr::PUDR_SPEC>;
209#[doc = "Pull-up Disable Register"]
210pub mod pudr;
211#[doc = "PUER (w) register accessor: an alias for `Reg<PUER_SPEC>`"]
212pub type PUER = crate::Reg<puer::PUER_SPEC>;
213#[doc = "Pull-up Enable Register"]
214pub mod puer;
215#[doc = "PUSR (r) register accessor: an alias for `Reg<PUSR_SPEC>`"]
216pub type PUSR = crate::Reg<pusr::PUSR_SPEC>;
217#[doc = "Pad Pull-up Status Register"]
218pub mod pusr;
219#[doc = "ABCDSR (rw) register accessor: an alias for `Reg<ABCDSR_SPEC>`"]
220pub type ABCDSR = crate::Reg<abcdsr::ABCDSR_SPEC>;
221#[doc = "Peripheral Select Register"]
222pub mod abcdsr;
223#[doc = "IFSCDR (w) register accessor: an alias for `Reg<IFSCDR_SPEC>`"]
224pub type IFSCDR = crate::Reg<ifscdr::IFSCDR_SPEC>;
225#[doc = "Input Filter Slow Clock Disable Register"]
226pub mod ifscdr;
227#[doc = "IFSCER (w) register accessor: an alias for `Reg<IFSCER_SPEC>`"]
228pub type IFSCER = crate::Reg<ifscer::IFSCER_SPEC>;
229#[doc = "Input Filter Slow Clock Enable Register"]
230pub mod ifscer;
231#[doc = "IFSCSR (r) register accessor: an alias for `Reg<IFSCSR_SPEC>`"]
232pub type IFSCSR = crate::Reg<ifscsr::IFSCSR_SPEC>;
233#[doc = "Input Filter Slow Clock Status Register"]
234pub mod ifscsr;
235#[doc = "SCDR (rw) register accessor: an alias for `Reg<SCDR_SPEC>`"]
236pub type SCDR = crate::Reg<scdr::SCDR_SPEC>;
237#[doc = "Slow Clock Divider Debouncing Register"]
238pub mod scdr;
239#[doc = "PPDDR (w) register accessor: an alias for `Reg<PPDDR_SPEC>`"]
240pub type PPDDR = crate::Reg<ppddr::PPDDR_SPEC>;
241#[doc = "Pad Pull-down Disable Register"]
242pub mod ppddr;
243#[doc = "PPDER (w) register accessor: an alias for `Reg<PPDER_SPEC>`"]
244pub type PPDER = crate::Reg<ppder::PPDER_SPEC>;
245#[doc = "Pad Pull-down Enable Register"]
246pub mod ppder;
247#[doc = "PPDSR (r) register accessor: an alias for `Reg<PPDSR_SPEC>`"]
248pub type PPDSR = crate::Reg<ppdsr::PPDSR_SPEC>;
249#[doc = "Pad Pull-down Status Register"]
250pub mod ppdsr;
251#[doc = "OWER (w) register accessor: an alias for `Reg<OWER_SPEC>`"]
252pub type OWER = crate::Reg<ower::OWER_SPEC>;
253#[doc = "Output Write Enable"]
254pub mod ower;
255#[doc = "OWDR (w) register accessor: an alias for `Reg<OWDR_SPEC>`"]
256pub type OWDR = crate::Reg<owdr::OWDR_SPEC>;
257#[doc = "Output Write Disable"]
258pub mod owdr;
259#[doc = "OWSR (r) register accessor: an alias for `Reg<OWSR_SPEC>`"]
260pub type OWSR = crate::Reg<owsr::OWSR_SPEC>;
261#[doc = "Output Write Status Register"]
262pub mod owsr;
263#[doc = "AIMER (w) register accessor: an alias for `Reg<AIMER_SPEC>`"]
264pub type AIMER = crate::Reg<aimer::AIMER_SPEC>;
265#[doc = "Additional Interrupt Modes Enable Register"]
266pub mod aimer;
267#[doc = "AIMDR (w) register accessor: an alias for `Reg<AIMDR_SPEC>`"]
268pub type AIMDR = crate::Reg<aimdr::AIMDR_SPEC>;
269#[doc = "Additional Interrupt Modes Disable Register"]
270pub mod aimdr;
271#[doc = "AIMMR (r) register accessor: an alias for `Reg<AIMMR_SPEC>`"]
272pub type AIMMR = crate::Reg<aimmr::AIMMR_SPEC>;
273#[doc = "Additional Interrupt Modes Mask Register"]
274pub mod aimmr;
275#[doc = "ESR (w) register accessor: an alias for `Reg<ESR_SPEC>`"]
276pub type ESR = crate::Reg<esr::ESR_SPEC>;
277#[doc = "Edge Select Register"]
278pub mod esr;
279#[doc = "LSR (w) register accessor: an alias for `Reg<LSR_SPEC>`"]
280pub type LSR = crate::Reg<lsr::LSR_SPEC>;
281#[doc = "Level Select Register"]
282pub mod lsr;
283#[doc = "ELSR (r) register accessor: an alias for `Reg<ELSR_SPEC>`"]
284pub type ELSR = crate::Reg<elsr::ELSR_SPEC>;
285#[doc = "Edge/Level Status Register"]
286pub mod elsr;
287#[doc = "FELLSR (w) register accessor: an alias for `Reg<FELLSR_SPEC>`"]
288pub type FELLSR = crate::Reg<fellsr::FELLSR_SPEC>;
289#[doc = "Falling Edge/Low-Level Select Register"]
290pub mod fellsr;
291#[doc = "REHLSR (w) register accessor: an alias for `Reg<REHLSR_SPEC>`"]
292pub type REHLSR = crate::Reg<rehlsr::REHLSR_SPEC>;
293#[doc = "Rising Edge/High-Level Select Register"]
294pub mod rehlsr;
295#[doc = "FRLHSR (r) register accessor: an alias for `Reg<FRLHSR_SPEC>`"]
296pub type FRLHSR = crate::Reg<frlhsr::FRLHSR_SPEC>;
297#[doc = "Fall/Rise - Low/High Status Register"]
298pub mod frlhsr;
299#[doc = "LOCKSR (r) register accessor: an alias for `Reg<LOCKSR_SPEC>`"]
300pub type LOCKSR = crate::Reg<locksr::LOCKSR_SPEC>;
301#[doc = "Lock Status"]
302pub mod locksr;
303#[doc = "WPMR (rw) register accessor: an alias for `Reg<WPMR_SPEC>`"]
304pub type WPMR = crate::Reg<wpmr::WPMR_SPEC>;
305#[doc = "Write Protection Mode Register"]
306pub mod wpmr;
307#[doc = "WPSR (r) register accessor: an alias for `Reg<WPSR_SPEC>`"]
308pub type WPSR = crate::Reg<wpsr::WPSR_SPEC>;
309#[doc = "Write Protection Status Register"]
310pub mod wpsr;
311#[doc = "SCHMITT (rw) register accessor: an alias for `Reg<SCHMITT_SPEC>`"]
312pub type SCHMITT = crate::Reg<schmitt::SCHMITT_SPEC>;
313#[doc = "Schmitt Trigger Register"]
314pub mod schmitt;
315#[doc = "DELAYR (rw) register accessor: an alias for `Reg<DELAYR_SPEC>`"]
316pub type DELAYR = crate::Reg<delayr::DELAYR_SPEC>;
317#[doc = "I/O Delay Register"]
318pub mod delayr;
319#[doc = "PCMR (rw) register accessor: an alias for `Reg<PCMR_SPEC>`"]
320pub type PCMR = crate::Reg<pcmr::PCMR_SPEC>;
321#[doc = "Parallel Capture Mode Register"]
322pub mod pcmr;
323#[doc = "PCIER (w) register accessor: an alias for `Reg<PCIER_SPEC>`"]
324pub type PCIER = crate::Reg<pcier::PCIER_SPEC>;
325#[doc = "Parallel Capture Interrupt Enable Register"]
326pub mod pcier;
327#[doc = "PCIDR (w) register accessor: an alias for `Reg<PCIDR_SPEC>`"]
328pub type PCIDR = crate::Reg<pcidr::PCIDR_SPEC>;
329#[doc = "Parallel Capture Interrupt Disable Register"]
330pub mod pcidr;
331#[doc = "PCIMR (r) register accessor: an alias for `Reg<PCIMR_SPEC>`"]
332pub type PCIMR = crate::Reg<pcimr::PCIMR_SPEC>;
333#[doc = "Parallel Capture Interrupt Mask Register"]
334pub mod pcimr;
335#[doc = "PCISR (r) register accessor: an alias for `Reg<PCISR_SPEC>`"]
336pub type PCISR = crate::Reg<pcisr::PCISR_SPEC>;
337#[doc = "Parallel Capture Interrupt Status Register"]
338pub mod pcisr;
339#[doc = "PCRHR (r) register accessor: an alias for `Reg<PCRHR_SPEC>`"]
340pub type PCRHR = crate::Reg<pcrhr::PCRHR_SPEC>;
341#[doc = "Parallel Capture Reception Holding Register"]
342pub mod pcrhr;