atsam4e16e_pac/
pioc.rs

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;