atsamd11c/
port.rs

1#[repr(C)]
2#[doc = "Register block"]
3pub struct RegisterBlock {
4    dir: [Dir; 1],
5    dirclr: [Dirclr; 1],
6    dirset: [Dirset; 1],
7    dirtgl: [Dirtgl; 1],
8    out: [Out; 1],
9    outclr: [Outclr; 1],
10    outset: [Outset; 1],
11    outtgl: [Outtgl; 1],
12    in_: [In; 1],
13    ctrl: [Ctrl; 1],
14    wrconfig: [Wrconfig; 1],
15    _reserved11: [u8; 0x04],
16    pmux0_: [Pmux0_; 16],
17    pincfg0_: [Pincfg0_; 32],
18}
19impl RegisterBlock {
20    #[doc = "0x00 - Data Direction"]
21    #[inline(always)]
22    pub const fn dir(&self, n: usize) -> &Dir {
23        &self.dir[n]
24    }
25    #[doc = "Iterator for array of:"]
26    #[doc = "0x00 - Data Direction"]
27    #[inline(always)]
28    pub fn dir_iter(&self) -> impl Iterator<Item = &Dir> {
29        self.dir.iter()
30    }
31    #[doc = "0x04 - Data Direction Clear"]
32    #[inline(always)]
33    pub const fn dirclr(&self, n: usize) -> &Dirclr {
34        &self.dirclr[n]
35    }
36    #[doc = "Iterator for array of:"]
37    #[doc = "0x04 - Data Direction Clear"]
38    #[inline(always)]
39    pub fn dirclr_iter(&self) -> impl Iterator<Item = &Dirclr> {
40        self.dirclr.iter()
41    }
42    #[doc = "0x08 - Data Direction Set"]
43    #[inline(always)]
44    pub const fn dirset(&self, n: usize) -> &Dirset {
45        &self.dirset[n]
46    }
47    #[doc = "Iterator for array of:"]
48    #[doc = "0x08 - Data Direction Set"]
49    #[inline(always)]
50    pub fn dirset_iter(&self) -> impl Iterator<Item = &Dirset> {
51        self.dirset.iter()
52    }
53    #[doc = "0x0c - Data Direction Toggle"]
54    #[inline(always)]
55    pub const fn dirtgl(&self, n: usize) -> &Dirtgl {
56        &self.dirtgl[n]
57    }
58    #[doc = "Iterator for array of:"]
59    #[doc = "0x0c - Data Direction Toggle"]
60    #[inline(always)]
61    pub fn dirtgl_iter(&self) -> impl Iterator<Item = &Dirtgl> {
62        self.dirtgl.iter()
63    }
64    #[doc = "0x10 - Data Output Value"]
65    #[inline(always)]
66    pub const fn out(&self, n: usize) -> &Out {
67        &self.out[n]
68    }
69    #[doc = "Iterator for array of:"]
70    #[doc = "0x10 - Data Output Value"]
71    #[inline(always)]
72    pub fn out_iter(&self) -> impl Iterator<Item = &Out> {
73        self.out.iter()
74    }
75    #[doc = "0x14 - Data Output Value Clear"]
76    #[inline(always)]
77    pub const fn outclr(&self, n: usize) -> &Outclr {
78        &self.outclr[n]
79    }
80    #[doc = "Iterator for array of:"]
81    #[doc = "0x14 - Data Output Value Clear"]
82    #[inline(always)]
83    pub fn outclr_iter(&self) -> impl Iterator<Item = &Outclr> {
84        self.outclr.iter()
85    }
86    #[doc = "0x18 - Data Output Value Set"]
87    #[inline(always)]
88    pub const fn outset(&self, n: usize) -> &Outset {
89        &self.outset[n]
90    }
91    #[doc = "Iterator for array of:"]
92    #[doc = "0x18 - Data Output Value Set"]
93    #[inline(always)]
94    pub fn outset_iter(&self) -> impl Iterator<Item = &Outset> {
95        self.outset.iter()
96    }
97    #[doc = "0x1c - Data Output Value Toggle"]
98    #[inline(always)]
99    pub const fn outtgl(&self, n: usize) -> &Outtgl {
100        &self.outtgl[n]
101    }
102    #[doc = "Iterator for array of:"]
103    #[doc = "0x1c - Data Output Value Toggle"]
104    #[inline(always)]
105    pub fn outtgl_iter(&self) -> impl Iterator<Item = &Outtgl> {
106        self.outtgl.iter()
107    }
108    #[doc = "0x20 - Data Input Value"]
109    #[inline(always)]
110    pub const fn in_(&self, n: usize) -> &In {
111        &self.in_[n]
112    }
113    #[doc = "Iterator for array of:"]
114    #[doc = "0x20 - Data Input Value"]
115    #[inline(always)]
116    pub fn in__iter(&self) -> impl Iterator<Item = &In> {
117        self.in_.iter()
118    }
119    #[doc = "0x24 - Control"]
120    #[inline(always)]
121    pub const fn ctrl(&self, n: usize) -> &Ctrl {
122        &self.ctrl[n]
123    }
124    #[doc = "Iterator for array of:"]
125    #[doc = "0x24 - Control"]
126    #[inline(always)]
127    pub fn ctrl_iter(&self) -> impl Iterator<Item = &Ctrl> {
128        self.ctrl.iter()
129    }
130    #[doc = "0x28 - Write Configuration"]
131    #[inline(always)]
132    pub const fn wrconfig(&self, n: usize) -> &Wrconfig {
133        &self.wrconfig[n]
134    }
135    #[doc = "Iterator for array of:"]
136    #[doc = "0x28 - Write Configuration"]
137    #[inline(always)]
138    pub fn wrconfig_iter(&self) -> impl Iterator<Item = &Wrconfig> {
139        self.wrconfig.iter()
140    }
141    #[doc = "0x30..0x40 - Peripheral Multiplexing n - Group 0"]
142    #[inline(always)]
143    pub const fn pmux0_(&self, n: usize) -> &Pmux0_ {
144        &self.pmux0_[n]
145    }
146    #[doc = "Iterator for array of:"]
147    #[doc = "0x30..0x40 - Peripheral Multiplexing n - Group 0"]
148    #[inline(always)]
149    pub fn pmux0__iter(&self) -> impl Iterator<Item = &Pmux0_> {
150        self.pmux0_.iter()
151    }
152    #[doc = "0x40..0x60 - Pin Configuration n - Group 0"]
153    #[inline(always)]
154    pub const fn pincfg0_(&self, n: usize) -> &Pincfg0_ {
155        &self.pincfg0_[n]
156    }
157    #[doc = "Iterator for array of:"]
158    #[doc = "0x40..0x60 - Pin Configuration n - Group 0"]
159    #[inline(always)]
160    pub fn pincfg0__iter(&self) -> impl Iterator<Item = &Pincfg0_> {
161        self.pincfg0_.iter()
162    }
163}
164#[doc = "DIR (rw) register accessor: Data Direction\n\nYou can [`read`](crate::Reg::read) this register and get [`dir::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dir::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dir`]
165module"]
166#[doc(alias = "DIR")]
167pub type Dir = crate::Reg<dir::DirSpec>;
168#[doc = "Data Direction"]
169pub mod dir;
170#[doc = "DIRCLR (rw) register accessor: Data Direction Clear\n\nYou can [`read`](crate::Reg::read) this register and get [`dirclr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dirclr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dirclr`]
171module"]
172#[doc(alias = "DIRCLR")]
173pub type Dirclr = crate::Reg<dirclr::DirclrSpec>;
174#[doc = "Data Direction Clear"]
175pub mod dirclr;
176#[doc = "DIRSET (rw) register accessor: Data Direction Set\n\nYou can [`read`](crate::Reg::read) this register and get [`dirset::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dirset::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dirset`]
177module"]
178#[doc(alias = "DIRSET")]
179pub type Dirset = crate::Reg<dirset::DirsetSpec>;
180#[doc = "Data Direction Set"]
181pub mod dirset;
182#[doc = "DIRTGL (rw) register accessor: Data Direction Toggle\n\nYou can [`read`](crate::Reg::read) this register and get [`dirtgl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dirtgl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dirtgl`]
183module"]
184#[doc(alias = "DIRTGL")]
185pub type Dirtgl = crate::Reg<dirtgl::DirtglSpec>;
186#[doc = "Data Direction Toggle"]
187pub mod dirtgl;
188#[doc = "OUT (rw) register accessor: Data Output Value\n\nYou can [`read`](crate::Reg::read) this register and get [`out::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`out::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@out`]
189module"]
190#[doc(alias = "OUT")]
191pub type Out = crate::Reg<out::OutSpec>;
192#[doc = "Data Output Value"]
193pub mod out;
194#[doc = "OUTCLR (rw) register accessor: Data Output Value Clear\n\nYou can [`read`](crate::Reg::read) this register and get [`outclr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`outclr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@outclr`]
195module"]
196#[doc(alias = "OUTCLR")]
197pub type Outclr = crate::Reg<outclr::OutclrSpec>;
198#[doc = "Data Output Value Clear"]
199pub mod outclr;
200#[doc = "OUTSET (rw) register accessor: Data Output Value Set\n\nYou can [`read`](crate::Reg::read) this register and get [`outset::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`outset::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@outset`]
201module"]
202#[doc(alias = "OUTSET")]
203pub type Outset = crate::Reg<outset::OutsetSpec>;
204#[doc = "Data Output Value Set"]
205pub mod outset;
206#[doc = "OUTTGL (rw) register accessor: Data Output Value Toggle\n\nYou can [`read`](crate::Reg::read) this register and get [`outtgl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`outtgl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@outtgl`]
207module"]
208#[doc(alias = "OUTTGL")]
209pub type Outtgl = crate::Reg<outtgl::OuttglSpec>;
210#[doc = "Data Output Value Toggle"]
211pub mod outtgl;
212#[doc = "IN (r) register accessor: Data Input Value\n\nYou can [`read`](crate::Reg::read) this register and get [`in_::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@in_`]
213module"]
214#[doc(alias = "IN")]
215pub type In = crate::Reg<in_::InSpec>;
216#[doc = "Data Input Value"]
217pub mod in_;
218#[doc = "CTRL (rw) register accessor: Control\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrl`]
219module"]
220#[doc(alias = "CTRL")]
221pub type Ctrl = crate::Reg<ctrl::CtrlSpec>;
222#[doc = "Control"]
223pub mod ctrl;
224#[doc = "WRCONFIG (w) register accessor: Write Configuration\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`wrconfig::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@wrconfig`]
225module"]
226#[doc(alias = "WRCONFIG")]
227pub type Wrconfig = crate::Reg<wrconfig::WrconfigSpec>;
228#[doc = "Write Configuration"]
229pub mod wrconfig;
230#[doc = "PMUX0_ (rw) register accessor: Peripheral Multiplexing n - Group 0\n\nYou can [`read`](crate::Reg::read) this register and get [`pmux0_::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pmux0_::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@pmux0_`]
231module"]
232#[doc(alias = "PMUX0_")]
233pub type Pmux0_ = crate::Reg<pmux0_::Pmux0_Spec>;
234#[doc = "Peripheral Multiplexing n - Group 0"]
235pub mod pmux0_;
236#[doc = "PINCFG0_ (rw) register accessor: Pin Configuration n - Group 0\n\nYou can [`read`](crate::Reg::read) this register and get [`pincfg0_::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pincfg0_::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@pincfg0_`]
237module"]
238#[doc(alias = "PINCFG0_")]
239pub type Pincfg0_ = crate::Reg<pincfg0_::Pincfg0_Spec>;
240#[doc = "Pin Configuration n - Group 0"]
241pub mod pincfg0_;