atsam3s1b/
twi1.rs

1#[repr(C)]
2#[doc = "Register block"]
3pub struct RegisterBlock {
4    cr: Cr,
5    mmr: Mmr,
6    smr: Smr,
7    iadr: Iadr,
8    cwgr: Cwgr,
9    _reserved5: [u8; 0x0c],
10    sr: Sr,
11    ier: Ier,
12    idr: Idr,
13    imr: Imr,
14    rhr: Rhr,
15    thr: Thr,
16    _reserved11: [u8; 0xc8],
17    rpr: Rpr,
18    rcr: Rcr,
19    tpr: Tpr,
20    tcr: Tcr,
21    rnpr: Rnpr,
22    rncr: Rncr,
23    tnpr: Tnpr,
24    tncr: Tncr,
25    ptcr: Ptcr,
26    ptsr: Ptsr,
27}
28impl RegisterBlock {
29    #[doc = "0x00 - Control Register"]
30    #[inline(always)]
31    pub const fn cr(&self) -> &Cr {
32        &self.cr
33    }
34    #[doc = "0x04 - Master Mode Register"]
35    #[inline(always)]
36    pub const fn mmr(&self) -> &Mmr {
37        &self.mmr
38    }
39    #[doc = "0x08 - Slave Mode Register"]
40    #[inline(always)]
41    pub const fn smr(&self) -> &Smr {
42        &self.smr
43    }
44    #[doc = "0x0c - Internal Address Register"]
45    #[inline(always)]
46    pub const fn iadr(&self) -> &Iadr {
47        &self.iadr
48    }
49    #[doc = "0x10 - Clock Waveform Generator Register"]
50    #[inline(always)]
51    pub const fn cwgr(&self) -> &Cwgr {
52        &self.cwgr
53    }
54    #[doc = "0x20 - Status Register"]
55    #[inline(always)]
56    pub const fn sr(&self) -> &Sr {
57        &self.sr
58    }
59    #[doc = "0x24 - Interrupt Enable Register"]
60    #[inline(always)]
61    pub const fn ier(&self) -> &Ier {
62        &self.ier
63    }
64    #[doc = "0x28 - Interrupt Disable Register"]
65    #[inline(always)]
66    pub const fn idr(&self) -> &Idr {
67        &self.idr
68    }
69    #[doc = "0x2c - Interrupt Mask Register"]
70    #[inline(always)]
71    pub const fn imr(&self) -> &Imr {
72        &self.imr
73    }
74    #[doc = "0x30 - Receive Holding Register"]
75    #[inline(always)]
76    pub const fn rhr(&self) -> &Rhr {
77        &self.rhr
78    }
79    #[doc = "0x34 - Transmit Holding Register"]
80    #[inline(always)]
81    pub const fn thr(&self) -> &Thr {
82        &self.thr
83    }
84    #[doc = "0x100 - Receive Pointer Register"]
85    #[inline(always)]
86    pub const fn rpr(&self) -> &Rpr {
87        &self.rpr
88    }
89    #[doc = "0x104 - Receive Counter Register"]
90    #[inline(always)]
91    pub const fn rcr(&self) -> &Rcr {
92        &self.rcr
93    }
94    #[doc = "0x108 - Transmit Pointer Register"]
95    #[inline(always)]
96    pub const fn tpr(&self) -> &Tpr {
97        &self.tpr
98    }
99    #[doc = "0x10c - Transmit Counter Register"]
100    #[inline(always)]
101    pub const fn tcr(&self) -> &Tcr {
102        &self.tcr
103    }
104    #[doc = "0x110 - Receive Next Pointer Register"]
105    #[inline(always)]
106    pub const fn rnpr(&self) -> &Rnpr {
107        &self.rnpr
108    }
109    #[doc = "0x114 - Receive Next Counter Register"]
110    #[inline(always)]
111    pub const fn rncr(&self) -> &Rncr {
112        &self.rncr
113    }
114    #[doc = "0x118 - Transmit Next Pointer Register"]
115    #[inline(always)]
116    pub const fn tnpr(&self) -> &Tnpr {
117        &self.tnpr
118    }
119    #[doc = "0x11c - Transmit Next Counter Register"]
120    #[inline(always)]
121    pub const fn tncr(&self) -> &Tncr {
122        &self.tncr
123    }
124    #[doc = "0x120 - Transfer Control Register"]
125    #[inline(always)]
126    pub const fn ptcr(&self) -> &Ptcr {
127        &self.ptcr
128    }
129    #[doc = "0x124 - Transfer Status Register"]
130    #[inline(always)]
131    pub const fn ptsr(&self) -> &Ptsr {
132        &self.ptsr
133    }
134}
135#[doc = "CR (w) register accessor: Control Register\n\nYou can [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`cr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cr`]
136module"]
137#[doc(alias = "CR")]
138pub type Cr = crate::Reg<cr::CrSpec>;
139#[doc = "Control Register"]
140pub mod cr;
141#[doc = "MMR (rw) register accessor: Master Mode Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`mmr::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`mmr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@mmr`]
142module"]
143#[doc(alias = "MMR")]
144pub type Mmr = crate::Reg<mmr::MmrSpec>;
145#[doc = "Master Mode Register"]
146pub mod mmr;
147#[doc = "SMR (rw) register accessor: Slave Mode Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smr::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`smr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@smr`]
148module"]
149#[doc(alias = "SMR")]
150pub type Smr = crate::Reg<smr::SmrSpec>;
151#[doc = "Slave Mode Register"]
152pub mod smr;
153#[doc = "IADR (rw) register accessor: Internal Address Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`iadr::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`iadr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@iadr`]
154module"]
155#[doc(alias = "IADR")]
156pub type Iadr = crate::Reg<iadr::IadrSpec>;
157#[doc = "Internal Address Register"]
158pub mod iadr;
159#[doc = "CWGR (rw) register accessor: Clock Waveform Generator Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cwgr::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`cwgr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cwgr`]
160module"]
161#[doc(alias = "CWGR")]
162pub type Cwgr = crate::Reg<cwgr::CwgrSpec>;
163#[doc = "Clock Waveform Generator Register"]
164pub mod cwgr;
165#[doc = "SR (r) register accessor: Status Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`sr::R`].  See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@sr`]
166module"]
167#[doc(alias = "SR")]
168pub type Sr = crate::Reg<sr::SrSpec>;
169#[doc = "Status Register"]
170pub mod sr;
171#[doc = "IER (w) register accessor: Interrupt Enable Register\n\nYou can [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`ier::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ier`]
172module"]
173#[doc(alias = "IER")]
174pub type Ier = crate::Reg<ier::IerSpec>;
175#[doc = "Interrupt Enable Register"]
176pub mod ier;
177#[doc = "IDR (w) register accessor: Interrupt Disable Register\n\nYou can [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`idr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@idr`]
178module"]
179#[doc(alias = "IDR")]
180pub type Idr = crate::Reg<idr::IdrSpec>;
181#[doc = "Interrupt Disable Register"]
182pub mod idr;
183#[doc = "IMR (r) register accessor: Interrupt Mask Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`imr::R`].  See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@imr`]
184module"]
185#[doc(alias = "IMR")]
186pub type Imr = crate::Reg<imr::ImrSpec>;
187#[doc = "Interrupt Mask Register"]
188pub mod imr;
189#[doc = "RHR (r) register accessor: Receive Holding Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`rhr::R`].  See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rhr`]
190module"]
191#[doc(alias = "RHR")]
192pub type Rhr = crate::Reg<rhr::RhrSpec>;
193#[doc = "Receive Holding Register"]
194pub mod rhr;
195#[doc = "THR (w) register accessor: Transmit Holding Register\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`thr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@thr`]
196module"]
197#[doc(alias = "THR")]
198pub type Thr = crate::Reg<thr::ThrSpec>;
199#[doc = "Transmit Holding Register"]
200pub mod thr;
201#[doc = "RPR (rw) register accessor: Receive Pointer Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`rpr::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`rpr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rpr`]
202module"]
203#[doc(alias = "RPR")]
204pub type Rpr = crate::Reg<rpr::RprSpec>;
205#[doc = "Receive Pointer Register"]
206pub mod rpr;
207#[doc = "RCR (rw) register accessor: Receive Counter Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`rcr::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`rcr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rcr`]
208module"]
209#[doc(alias = "RCR")]
210pub type Rcr = crate::Reg<rcr::RcrSpec>;
211#[doc = "Receive Counter Register"]
212pub mod rcr;
213#[doc = "TPR (rw) register accessor: Transmit Pointer Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tpr::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`tpr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tpr`]
214module"]
215#[doc(alias = "TPR")]
216pub type Tpr = crate::Reg<tpr::TprSpec>;
217#[doc = "Transmit Pointer Register"]
218pub mod tpr;
219#[doc = "TCR (rw) register accessor: Transmit Counter Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tcr::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`tcr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tcr`]
220module"]
221#[doc(alias = "TCR")]
222pub type Tcr = crate::Reg<tcr::TcrSpec>;
223#[doc = "Transmit Counter Register"]
224pub mod tcr;
225#[doc = "RNPR (rw) register accessor: Receive Next Pointer Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`rnpr::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`rnpr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rnpr`]
226module"]
227#[doc(alias = "RNPR")]
228pub type Rnpr = crate::Reg<rnpr::RnprSpec>;
229#[doc = "Receive Next Pointer Register"]
230pub mod rnpr;
231#[doc = "RNCR (rw) register accessor: Receive Next Counter Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`rncr::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`rncr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rncr`]
232module"]
233#[doc(alias = "RNCR")]
234pub type Rncr = crate::Reg<rncr::RncrSpec>;
235#[doc = "Receive Next Counter Register"]
236pub mod rncr;
237#[doc = "TNPR (rw) register accessor: Transmit Next Pointer Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tnpr::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`tnpr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tnpr`]
238module"]
239#[doc(alias = "TNPR")]
240pub type Tnpr = crate::Reg<tnpr::TnprSpec>;
241#[doc = "Transmit Next Pointer Register"]
242pub mod tnpr;
243#[doc = "TNCR (rw) register accessor: Transmit Next Counter Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tncr::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`tncr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tncr`]
244module"]
245#[doc(alias = "TNCR")]
246pub type Tncr = crate::Reg<tncr::TncrSpec>;
247#[doc = "Transmit Next Counter Register"]
248pub mod tncr;
249#[doc = "PTCR (w) register accessor: Transfer Control Register\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`ptcr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ptcr`]
250module"]
251#[doc(alias = "PTCR")]
252pub type Ptcr = crate::Reg<ptcr::PtcrSpec>;
253#[doc = "Transfer Control Register"]
254pub mod ptcr;
255#[doc = "PTSR (r) register accessor: Transfer Status Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`ptsr::R`].  See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ptsr`]
256module"]
257#[doc(alias = "PTSR")]
258pub type Ptsr = crate::Reg<ptsr::PtsrSpec>;
259#[doc = "Transfer Status Register"]
260pub mod ptsr;