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; 0x4c],
111 #[doc = "0x150 - Parallel Capture Mode Register"]
112 pub pcmr: PCMR,
113 #[doc = "0x154 - Parallel Capture Interrupt Enable Register"]
114 pub pcier: PCIER,
115 #[doc = "0x158 - Parallel Capture Interrupt Disable Register"]
116 pub pcidr: PCIDR,
117 #[doc = "0x15c - Parallel Capture Interrupt Mask Register"]
118 pub pcimr: PCIMR,
119 #[doc = "0x160 - Parallel Capture Interrupt Status Register"]
120 pub pcisr: PCISR,
121 #[doc = "0x164 - Parallel Capture Reception Holding Register"]
122 pub pcrhr: PCRHR,
123}
124#[doc = "PER (w) register accessor: an alias for `Reg<PER_SPEC>`"]
125pub type PER = crate::Reg<per::PER_SPEC>;
126#[doc = "PIO Enable Register"]
127pub mod per;
128#[doc = "PDR (w) register accessor: an alias for `Reg<PDR_SPEC>`"]
129pub type PDR = crate::Reg<pdr::PDR_SPEC>;
130#[doc = "PIO Disable Register"]
131pub mod pdr;
132#[doc = "PSR (r) register accessor: an alias for `Reg<PSR_SPEC>`"]
133pub type PSR = crate::Reg<psr::PSR_SPEC>;
134#[doc = "PIO Status Register"]
135pub mod psr;
136#[doc = "OER (w) register accessor: an alias for `Reg<OER_SPEC>`"]
137pub type OER = crate::Reg<oer::OER_SPEC>;
138#[doc = "Output Enable Register"]
139pub mod oer;
140#[doc = "ODR (w) register accessor: an alias for `Reg<ODR_SPEC>`"]
141pub type ODR = crate::Reg<odr::ODR_SPEC>;
142#[doc = "Output Disable Register"]
143pub mod odr;
144#[doc = "OSR (r) register accessor: an alias for `Reg<OSR_SPEC>`"]
145pub type OSR = crate::Reg<osr::OSR_SPEC>;
146#[doc = "Output Status Register"]
147pub mod osr;
148#[doc = "IFER (w) register accessor: an alias for `Reg<IFER_SPEC>`"]
149pub type IFER = crate::Reg<ifer::IFER_SPEC>;
150#[doc = "Glitch Input Filter Enable Register"]
151pub mod ifer;
152#[doc = "IFDR (w) register accessor: an alias for `Reg<IFDR_SPEC>`"]
153pub type IFDR = crate::Reg<ifdr::IFDR_SPEC>;
154#[doc = "Glitch Input Filter Disable Register"]
155pub mod ifdr;
156#[doc = "IFSR (r) register accessor: an alias for `Reg<IFSR_SPEC>`"]
157pub type IFSR = crate::Reg<ifsr::IFSR_SPEC>;
158#[doc = "Glitch Input Filter Status Register"]
159pub mod ifsr;
160#[doc = "SODR (w) register accessor: an alias for `Reg<SODR_SPEC>`"]
161pub type SODR = crate::Reg<sodr::SODR_SPEC>;
162#[doc = "Set Output Data Register"]
163pub mod sodr;
164#[doc = "CODR (w) register accessor: an alias for `Reg<CODR_SPEC>`"]
165pub type CODR = crate::Reg<codr::CODR_SPEC>;
166#[doc = "Clear Output Data Register"]
167pub mod codr;
168#[doc = "ODSR (rw) register accessor: an alias for `Reg<ODSR_SPEC>`"]
169pub type ODSR = crate::Reg<odsr::ODSR_SPEC>;
170#[doc = "Output Data Status Register"]
171pub mod odsr;
172#[doc = "PDSR (r) register accessor: an alias for `Reg<PDSR_SPEC>`"]
173pub type PDSR = crate::Reg<pdsr::PDSR_SPEC>;
174#[doc = "Pin Data Status Register"]
175pub mod pdsr;
176#[doc = "IER (w) register accessor: an alias for `Reg<IER_SPEC>`"]
177pub type IER = crate::Reg<ier::IER_SPEC>;
178#[doc = "Interrupt Enable Register"]
179pub mod ier;
180#[doc = "IDR (w) register accessor: an alias for `Reg<IDR_SPEC>`"]
181pub type IDR = crate::Reg<idr::IDR_SPEC>;
182#[doc = "Interrupt Disable Register"]
183pub mod idr;
184#[doc = "IMR (r) register accessor: an alias for `Reg<IMR_SPEC>`"]
185pub type IMR = crate::Reg<imr::IMR_SPEC>;
186#[doc = "Interrupt Mask Register"]
187pub mod imr;
188#[doc = "ISR (r) register accessor: an alias for `Reg<ISR_SPEC>`"]
189pub type ISR = crate::Reg<isr::ISR_SPEC>;
190#[doc = "Interrupt Status Register"]
191pub mod isr;
192#[doc = "MDER (w) register accessor: an alias for `Reg<MDER_SPEC>`"]
193pub type MDER = crate::Reg<mder::MDER_SPEC>;
194#[doc = "Multi-driver Enable Register"]
195pub mod mder;
196#[doc = "MDDR (w) register accessor: an alias for `Reg<MDDR_SPEC>`"]
197pub type MDDR = crate::Reg<mddr::MDDR_SPEC>;
198#[doc = "Multi-driver Disable Register"]
199pub mod mddr;
200#[doc = "MDSR (r) register accessor: an alias for `Reg<MDSR_SPEC>`"]
201pub type MDSR = crate::Reg<mdsr::MDSR_SPEC>;
202#[doc = "Multi-driver Status Register"]
203pub mod mdsr;
204#[doc = "PUDR (w) register accessor: an alias for `Reg<PUDR_SPEC>`"]
205pub type PUDR = crate::Reg<pudr::PUDR_SPEC>;
206#[doc = "Pull-up Disable Register"]
207pub mod pudr;
208#[doc = "PUER (w) register accessor: an alias for `Reg<PUER_SPEC>`"]
209pub type PUER = crate::Reg<puer::PUER_SPEC>;
210#[doc = "Pull-up Enable Register"]
211pub mod puer;
212#[doc = "PUSR (r) register accessor: an alias for `Reg<PUSR_SPEC>`"]
213pub type PUSR = crate::Reg<pusr::PUSR_SPEC>;
214#[doc = "Pad Pull-up Status Register"]
215pub mod pusr;
216#[doc = "ABCDSR (rw) register accessor: an alias for `Reg<ABCDSR_SPEC>`"]
217pub type ABCDSR = crate::Reg<abcdsr::ABCDSR_SPEC>;
218#[doc = "Peripheral Select Register"]
219pub mod abcdsr;
220#[doc = "IFSCDR (w) register accessor: an alias for `Reg<IFSCDR_SPEC>`"]
221pub type IFSCDR = crate::Reg<ifscdr::IFSCDR_SPEC>;
222#[doc = "Input Filter Slow Clock Disable Register"]
223pub mod ifscdr;
224#[doc = "IFSCER (w) register accessor: an alias for `Reg<IFSCER_SPEC>`"]
225pub type IFSCER = crate::Reg<ifscer::IFSCER_SPEC>;
226#[doc = "Input Filter Slow Clock Enable Register"]
227pub mod ifscer;
228#[doc = "IFSCSR (r) register accessor: an alias for `Reg<IFSCSR_SPEC>`"]
229pub type IFSCSR = crate::Reg<ifscsr::IFSCSR_SPEC>;
230#[doc = "Input Filter Slow Clock Status Register"]
231pub mod ifscsr;
232#[doc = "SCDR (rw) register accessor: an alias for `Reg<SCDR_SPEC>`"]
233pub type SCDR = crate::Reg<scdr::SCDR_SPEC>;
234#[doc = "Slow Clock Divider Debouncing Register"]
235pub mod scdr;
236#[doc = "PPDDR (w) register accessor: an alias for `Reg<PPDDR_SPEC>`"]
237pub type PPDDR = crate::Reg<ppddr::PPDDR_SPEC>;
238#[doc = "Pad Pull-down Disable Register"]
239pub mod ppddr;
240#[doc = "PPDER (w) register accessor: an alias for `Reg<PPDER_SPEC>`"]
241pub type PPDER = crate::Reg<ppder::PPDER_SPEC>;
242#[doc = "Pad Pull-down Enable Register"]
243pub mod ppder;
244#[doc = "PPDSR (r) register accessor: an alias for `Reg<PPDSR_SPEC>`"]
245pub type PPDSR = crate::Reg<ppdsr::PPDSR_SPEC>;
246#[doc = "Pad Pull-down Status Register"]
247pub mod ppdsr;
248#[doc = "OWER (w) register accessor: an alias for `Reg<OWER_SPEC>`"]
249pub type OWER = crate::Reg<ower::OWER_SPEC>;
250#[doc = "Output Write Enable"]
251pub mod ower;
252#[doc = "OWDR (w) register accessor: an alias for `Reg<OWDR_SPEC>`"]
253pub type OWDR = crate::Reg<owdr::OWDR_SPEC>;
254#[doc = "Output Write Disable"]
255pub mod owdr;
256#[doc = "OWSR (r) register accessor: an alias for `Reg<OWSR_SPEC>`"]
257pub type OWSR = crate::Reg<owsr::OWSR_SPEC>;
258#[doc = "Output Write Status Register"]
259pub mod owsr;
260#[doc = "AIMER (w) register accessor: an alias for `Reg<AIMER_SPEC>`"]
261pub type AIMER = crate::Reg<aimer::AIMER_SPEC>;
262#[doc = "Additional Interrupt Modes Enable Register"]
263pub mod aimer;
264#[doc = "AIMDR (w) register accessor: an alias for `Reg<AIMDR_SPEC>`"]
265pub type AIMDR = crate::Reg<aimdr::AIMDR_SPEC>;
266#[doc = "Additional Interrupt Modes Disable Register"]
267pub mod aimdr;
268#[doc = "AIMMR (r) register accessor: an alias for `Reg<AIMMR_SPEC>`"]
269pub type AIMMR = crate::Reg<aimmr::AIMMR_SPEC>;
270#[doc = "Additional Interrupt Modes Mask Register"]
271pub mod aimmr;
272#[doc = "ESR (w) register accessor: an alias for `Reg<ESR_SPEC>`"]
273pub type ESR = crate::Reg<esr::ESR_SPEC>;
274#[doc = "Edge Select Register"]
275pub mod esr;
276#[doc = "LSR (w) register accessor: an alias for `Reg<LSR_SPEC>`"]
277pub type LSR = crate::Reg<lsr::LSR_SPEC>;
278#[doc = "Level Select Register"]
279pub mod lsr;
280#[doc = "ELSR (r) register accessor: an alias for `Reg<ELSR_SPEC>`"]
281pub type ELSR = crate::Reg<elsr::ELSR_SPEC>;
282#[doc = "Edge/Level Status Register"]
283pub mod elsr;
284#[doc = "FELLSR (w) register accessor: an alias for `Reg<FELLSR_SPEC>`"]
285pub type FELLSR = crate::Reg<fellsr::FELLSR_SPEC>;
286#[doc = "Falling Edge/Low-Level Select Register"]
287pub mod fellsr;
288#[doc = "REHLSR (w) register accessor: an alias for `Reg<REHLSR_SPEC>`"]
289pub type REHLSR = crate::Reg<rehlsr::REHLSR_SPEC>;
290#[doc = "Rising Edge/ High-Level Select Register"]
291pub mod rehlsr;
292#[doc = "FRLHSR (r) register accessor: an alias for `Reg<FRLHSR_SPEC>`"]
293pub type FRLHSR = crate::Reg<frlhsr::FRLHSR_SPEC>;
294#[doc = "Fall/Rise - Low/High Status Register"]
295pub mod frlhsr;
296#[doc = "LOCKSR (r) register accessor: an alias for `Reg<LOCKSR_SPEC>`"]
297pub type LOCKSR = crate::Reg<locksr::LOCKSR_SPEC>;
298#[doc = "Lock Status"]
299pub mod locksr;
300#[doc = "WPMR (rw) register accessor: an alias for `Reg<WPMR_SPEC>`"]
301pub type WPMR = crate::Reg<wpmr::WPMR_SPEC>;
302#[doc = "Write Protection Mode Register"]
303pub mod wpmr;
304#[doc = "WPSR (r) register accessor: an alias for `Reg<WPSR_SPEC>`"]
305pub type WPSR = crate::Reg<wpsr::WPSR_SPEC>;
306#[doc = "Write Protection Status Register"]
307pub mod wpsr;
308#[doc = "SCHMITT (rw) register accessor: an alias for `Reg<SCHMITT_SPEC>`"]
309pub type SCHMITT = crate::Reg<schmitt::SCHMITT_SPEC>;
310#[doc = "Schmitt Trigger Register"]
311pub mod schmitt;
312#[doc = "PCMR (rw) register accessor: an alias for `Reg<PCMR_SPEC>`"]
313pub type PCMR = crate::Reg<pcmr::PCMR_SPEC>;
314#[doc = "Parallel Capture Mode Register"]
315pub mod pcmr;
316#[doc = "PCIER (w) register accessor: an alias for `Reg<PCIER_SPEC>`"]
317pub type PCIER = crate::Reg<pcier::PCIER_SPEC>;
318#[doc = "Parallel Capture Interrupt Enable Register"]
319pub mod pcier;
320#[doc = "PCIDR (w) register accessor: an alias for `Reg<PCIDR_SPEC>`"]
321pub type PCIDR = crate::Reg<pcidr::PCIDR_SPEC>;
322#[doc = "Parallel Capture Interrupt Disable Register"]
323pub mod pcidr;
324#[doc = "PCIMR (r) register accessor: an alias for `Reg<PCIMR_SPEC>`"]
325pub type PCIMR = crate::Reg<pcimr::PCIMR_SPEC>;
326#[doc = "Parallel Capture Interrupt Mask Register"]
327pub mod pcimr;
328#[doc = "PCISR (r) register accessor: an alias for `Reg<PCISR_SPEC>`"]
329pub type PCISR = crate::Reg<pcisr::PCISR_SPEC>;
330#[doc = "Parallel Capture Interrupt Status Register"]
331pub mod pcisr;
332#[doc = "PCRHR (r) register accessor: an alias for `Reg<PCRHR_SPEC>`"]
333pub type PCRHR = crate::Reg<pcrhr::PCRHR_SPEC>;
334#[doc = "Parallel Capture Reception Holding Register"]
335pub mod pcrhr;