ra4m3/
sci3.rs

1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4    _reserved_0_smr: [u8; 0x01],
5    #[doc = "0x01 - Bit Rate Register"]
6    pub brr: BRR,
7    _reserved_2_scr: [u8; 0x01],
8    #[doc = "0x03 - Transmit Data Register"]
9    pub tdr: TDR,
10    _reserved_4_ssr: [u8; 0x01],
11    #[doc = "0x05 - Receive Data Register"]
12    pub rdr: RDR,
13    #[doc = "0x06 - Smart Card Mode Register"]
14    pub scmr: SCMR,
15    #[doc = "0x07 - Serial Extended Mode Register"]
16    pub semr: SEMR,
17    #[doc = "0x08 - Noise Filter Setting Register"]
18    pub snfr: SNFR,
19    #[doc = "0x09 - IIC Mode Register 1"]
20    pub simr1: SIMR1,
21    #[doc = "0x0a - IIC Mode Register 2"]
22    pub simr2: SIMR2,
23    #[doc = "0x0b - IIC Mode Register 3"]
24    pub simr3: SIMR3,
25    #[doc = "0x0c - IIC Status Register"]
26    pub sisr: SISR,
27    #[doc = "0x0d - SPI Mode Register"]
28    pub spmr: SPMR,
29    _reserved_14_ftdrh: [u8; 0x02],
30    _reserved_15_frdrh: [u8; 0x02],
31    #[doc = "0x12 - Modulation Duty Register"]
32    pub mddr: MDDR,
33    #[doc = "0x13 - Data Compare Match Control Register"]
34    pub dccr: DCCR,
35    #[doc = "0x14 - FIFO Control Register"]
36    pub fcr: FCR,
37    #[doc = "0x16 - FIFO Data Count Register"]
38    pub fdr: FDR,
39    #[doc = "0x18 - Line Status Register"]
40    pub lsr: LSR,
41    #[doc = "0x1a - Compare Match Data Register"]
42    pub cdr: CDR,
43    #[doc = "0x1c - Serial Port Register"]
44    pub sptr: SPTR,
45    #[doc = "0x1d - Adjustment Communication Timing Register"]
46    pub actr: ACTR,
47    _reserved24: [u8; 0x02],
48    #[doc = "0x20 - Manchester Mode Register"]
49    pub mmr: MMR,
50    _reserved25: [u8; 0x01],
51    #[doc = "0x22 - Transmit Manchester Preface Setting Register"]
52    pub tmpr: TMPR,
53    #[doc = "0x23 - Receive Manchester Preface Setting Register"]
54    pub rmpr: RMPR,
55    #[doc = "0x24 - Manchester Extended Error Status Register"]
56    pub mesr: MESR,
57    #[doc = "0x25 - Manchester Extended Error Control Register"]
58    pub mecr: MECR,
59}
60impl RegisterBlock {
61    #[doc = "0x00 - Serial Mode Register for Smart Card Interface Mode (SCMR.SMIF = 1)"]
62    #[inline(always)]
63    pub const fn smr_smci(&self) -> &SMR_SMCI {
64        unsafe { &*(self as *const Self).cast::<u8>().add(0usize).cast() }
65    }
66    #[doc = "0x00 - Serial Mode Register for Non-Smart Card Interface Mode (SCMR.SMIF = 0)"]
67    #[inline(always)]
68    pub const fn smr(&self) -> &SMR {
69        unsafe { &*(self as *const Self).cast::<u8>().add(0usize).cast() }
70    }
71    #[doc = "0x02 - Serial Control Register for Smart Card Interface Mode (SCMR.SMIF = 1)"]
72    #[inline(always)]
73    pub const fn scr_smci(&self) -> &SCR_SMCI {
74        unsafe { &*(self as *const Self).cast::<u8>().add(2usize).cast() }
75    }
76    #[doc = "0x02 - Serial Control Register for Non-Smart Card Interface Mode (SCMR.SMIF = 0)"]
77    #[inline(always)]
78    pub const fn scr(&self) -> &SCR {
79        unsafe { &*(self as *const Self).cast::<u8>().add(2usize).cast() }
80    }
81    #[doc = "0x04 - Serial Status Register for Smart Card Interface Mode (SCMR.SMIF = 1, and MMR.MANEN = 0)"]
82    #[inline(always)]
83    pub const fn ssr_smci(&self) -> &SSR_SMCI {
84        unsafe { &*(self as *const Self).cast::<u8>().add(4usize).cast() }
85    }
86    #[doc = "0x04 - Serial Status Register for Manchester Mode (SCMR.SMIF = 0, and MMR.MANEN = 1)"]
87    #[inline(always)]
88    pub const fn ssr_manc(&self) -> &SSR_MANC {
89        unsafe { &*(self as *const Self).cast::<u8>().add(4usize).cast() }
90    }
91    #[doc = "0x04 - Serial Status Register for Non-Smart Card Interface and FIFO Mode (SCMR.SMIF = 0, FCR.FM = 1, and MMR.MANEN = 0)"]
92    #[inline(always)]
93    pub const fn ssr_fifo(&self) -> &SSR_FIFO {
94        unsafe { &*(self as *const Self).cast::<u8>().add(4usize).cast() }
95    }
96    #[doc = "0x04 - Serial Status Register for Non-Smart Card Interface and Non-FIFO Mode (SCMR.SMIF = 0, FCR.FM = 0, and MMR.MANEN = 0)"]
97    #[inline(always)]
98    pub const fn ssr(&self) -> &SSR {
99        unsafe { &*(self as *const Self).cast::<u8>().add(4usize).cast() }
100    }
101    #[doc = "0x0e - Transmit FIFO Data Register"]
102    #[inline(always)]
103    pub const fn ftdrh(&self) -> &FTDRH {
104        unsafe { &*(self as *const Self).cast::<u8>().add(14usize).cast() }
105    }
106    #[doc = "0x0e - Transmit Data Register for Manchester mode (MMR.MANEN = 1)"]
107    #[inline(always)]
108    pub const fn tdrhl_man(&self) -> &TDRHL_MAN {
109        unsafe { &*(self as *const Self).cast::<u8>().add(14usize).cast() }
110    }
111    #[doc = "0x0e - Transmit Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
112    #[inline(always)]
113    pub const fn tdrhl(&self) -> &TDRHL {
114        unsafe { &*(self as *const Self).cast::<u8>().add(14usize).cast() }
115    }
116    #[doc = "0x0e - Transmit FIFO Data Register"]
117    #[inline(always)]
118    pub const fn ftdrhl(&self) -> &FTDRHL {
119        unsafe { &*(self as *const Self).cast::<u8>().add(14usize).cast() }
120    }
121    #[doc = "0x0f - Transmit FIFO Data Register"]
122    #[inline(always)]
123    pub const fn ftdrl(&self) -> &FTDRL {
124        unsafe { &*(self as *const Self).cast::<u8>().add(15usize).cast() }
125    }
126    #[doc = "0x10 - Receive FIFO Data Register"]
127    #[inline(always)]
128    pub const fn frdrh(&self) -> &FRDRH {
129        unsafe { &*(self as *const Self).cast::<u8>().add(16usize).cast() }
130    }
131    #[doc = "0x10 - Receive Data Register for Manchester mode (MMR.MANEN = 1)"]
132    #[inline(always)]
133    pub const fn rdrhl_man(&self) -> &RDRHL_MAN {
134        unsafe { &*(self as *const Self).cast::<u8>().add(16usize).cast() }
135    }
136    #[doc = "0x10 - Receive Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
137    #[inline(always)]
138    pub const fn rdrhl(&self) -> &RDRHL {
139        unsafe { &*(self as *const Self).cast::<u8>().add(16usize).cast() }
140    }
141    #[doc = "0x10 - Receive FIFO Data Register"]
142    #[inline(always)]
143    pub const fn frdrhl(&self) -> &FRDRHL {
144        unsafe { &*(self as *const Self).cast::<u8>().add(16usize).cast() }
145    }
146    #[doc = "0x11 - Receive FIFO Data Register"]
147    #[inline(always)]
148    pub const fn frdrl(&self) -> &FRDRL {
149        unsafe { &*(self as *const Self).cast::<u8>().add(17usize).cast() }
150    }
151}
152#[doc = "SMR (rw) register accessor: an alias for `Reg<SMR_SPEC>`"]
153pub type SMR = crate::Reg<smr::SMR_SPEC>;
154#[doc = "Serial Mode Register for Non-Smart Card Interface Mode (SCMR.SMIF = 0)"]
155pub mod smr;
156#[doc = "SMR_SMCI (rw) register accessor: an alias for `Reg<SMR_SMCI_SPEC>`"]
157pub type SMR_SMCI = crate::Reg<smr_smci::SMR_SMCI_SPEC>;
158#[doc = "Serial Mode Register for Smart Card Interface Mode (SCMR.SMIF = 1)"]
159pub mod smr_smci;
160#[doc = "BRR (rw) register accessor: an alias for `Reg<BRR_SPEC>`"]
161pub type BRR = crate::Reg<brr::BRR_SPEC>;
162#[doc = "Bit Rate Register"]
163pub mod brr;
164#[doc = "SCR (rw) register accessor: an alias for `Reg<SCR_SPEC>`"]
165pub type SCR = crate::Reg<scr::SCR_SPEC>;
166#[doc = "Serial Control Register for Non-Smart Card Interface Mode (SCMR.SMIF = 0)"]
167pub mod scr;
168#[doc = "SCR_SMCI (rw) register accessor: an alias for `Reg<SCR_SMCI_SPEC>`"]
169pub type SCR_SMCI = crate::Reg<scr_smci::SCR_SMCI_SPEC>;
170#[doc = "Serial Control Register for Smart Card Interface Mode (SCMR.SMIF = 1)"]
171pub mod scr_smci;
172#[doc = "TDR (rw) register accessor: an alias for `Reg<TDR_SPEC>`"]
173pub type TDR = crate::Reg<tdr::TDR_SPEC>;
174#[doc = "Transmit Data Register"]
175pub mod tdr;
176#[doc = "SSR (rw) register accessor: an alias for `Reg<SSR_SPEC>`"]
177pub type SSR = crate::Reg<ssr::SSR_SPEC>;
178#[doc = "Serial Status Register for Non-Smart Card Interface and Non-FIFO Mode (SCMR.SMIF = 0, FCR.FM = 0, and MMR.MANEN = 0)"]
179pub mod ssr;
180#[doc = "SSR_FIFO (rw) register accessor: an alias for `Reg<SSR_FIFO_SPEC>`"]
181pub type SSR_FIFO = crate::Reg<ssr_fifo::SSR_FIFO_SPEC>;
182#[doc = "Serial Status Register for Non-Smart Card Interface and FIFO Mode (SCMR.SMIF = 0, FCR.FM = 1, and MMR.MANEN = 0)"]
183pub mod ssr_fifo;
184#[doc = "SSR_MANC (rw) register accessor: an alias for `Reg<SSR_MANC_SPEC>`"]
185pub type SSR_MANC = crate::Reg<ssr_manc::SSR_MANC_SPEC>;
186#[doc = "Serial Status Register for Manchester Mode (SCMR.SMIF = 0, and MMR.MANEN = 1)"]
187pub mod ssr_manc;
188#[doc = "SSR_SMCI (rw) register accessor: an alias for `Reg<SSR_SMCI_SPEC>`"]
189pub type SSR_SMCI = crate::Reg<ssr_smci::SSR_SMCI_SPEC>;
190#[doc = "Serial Status Register for Smart Card Interface Mode (SCMR.SMIF = 1, and MMR.MANEN = 0)"]
191pub mod ssr_smci;
192#[doc = "RDR (r) register accessor: an alias for `Reg<RDR_SPEC>`"]
193pub type RDR = crate::Reg<rdr::RDR_SPEC>;
194#[doc = "Receive Data Register"]
195pub mod rdr;
196#[doc = "SCMR (rw) register accessor: an alias for `Reg<SCMR_SPEC>`"]
197pub type SCMR = crate::Reg<scmr::SCMR_SPEC>;
198#[doc = "Smart Card Mode Register"]
199pub mod scmr;
200#[doc = "SEMR (rw) register accessor: an alias for `Reg<SEMR_SPEC>`"]
201pub type SEMR = crate::Reg<semr::SEMR_SPEC>;
202#[doc = "Serial Extended Mode Register"]
203pub mod semr;
204#[doc = "SNFR (rw) register accessor: an alias for `Reg<SNFR_SPEC>`"]
205pub type SNFR = crate::Reg<snfr::SNFR_SPEC>;
206#[doc = "Noise Filter Setting Register"]
207pub mod snfr;
208#[doc = "SIMR1 (rw) register accessor: an alias for `Reg<SIMR1_SPEC>`"]
209pub type SIMR1 = crate::Reg<simr1::SIMR1_SPEC>;
210#[doc = "IIC Mode Register 1"]
211pub mod simr1;
212#[doc = "SIMR2 (rw) register accessor: an alias for `Reg<SIMR2_SPEC>`"]
213pub type SIMR2 = crate::Reg<simr2::SIMR2_SPEC>;
214#[doc = "IIC Mode Register 2"]
215pub mod simr2;
216#[doc = "SIMR3 (rw) register accessor: an alias for `Reg<SIMR3_SPEC>`"]
217pub type SIMR3 = crate::Reg<simr3::SIMR3_SPEC>;
218#[doc = "IIC Mode Register 3"]
219pub mod simr3;
220#[doc = "SISR (r) register accessor: an alias for `Reg<SISR_SPEC>`"]
221pub type SISR = crate::Reg<sisr::SISR_SPEC>;
222#[doc = "IIC Status Register"]
223pub mod sisr;
224#[doc = "SPMR (rw) register accessor: an alias for `Reg<SPMR_SPEC>`"]
225pub type SPMR = crate::Reg<spmr::SPMR_SPEC>;
226#[doc = "SPI Mode Register"]
227pub mod spmr;
228#[doc = "FTDRHL (w) register accessor: an alias for `Reg<FTDRHL_SPEC>`"]
229pub type FTDRHL = crate::Reg<ftdrhl::FTDRHL_SPEC>;
230#[doc = "Transmit FIFO Data Register"]
231pub mod ftdrhl;
232#[doc = "TDRHL (rw) register accessor: an alias for `Reg<TDRHL_SPEC>`"]
233pub type TDRHL = crate::Reg<tdrhl::TDRHL_SPEC>;
234#[doc = "Transmit Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
235pub mod tdrhl;
236#[doc = "TDRHL_MAN (rw) register accessor: an alias for `Reg<TDRHL_MAN_SPEC>`"]
237pub type TDRHL_MAN = crate::Reg<tdrhl_man::TDRHL_MAN_SPEC>;
238#[doc = "Transmit Data Register for Manchester mode (MMR.MANEN = 1)"]
239pub mod tdrhl_man;
240#[doc = "FTDRH (w) register accessor: an alias for `Reg<FTDRH_SPEC>`"]
241pub type FTDRH = crate::Reg<ftdrh::FTDRH_SPEC>;
242#[doc = "Transmit FIFO Data Register"]
243pub mod ftdrh;
244#[doc = "FTDRL (w) register accessor: an alias for `Reg<FTDRL_SPEC>`"]
245pub type FTDRL = crate::Reg<ftdrl::FTDRL_SPEC>;
246#[doc = "Transmit FIFO Data Register"]
247pub mod ftdrl;
248#[doc = "FRDRHL (r) register accessor: an alias for `Reg<FRDRHL_SPEC>`"]
249pub type FRDRHL = crate::Reg<frdrhl::FRDRHL_SPEC>;
250#[doc = "Receive FIFO Data Register"]
251pub mod frdrhl;
252#[doc = "RDRHL (r) register accessor: an alias for `Reg<RDRHL_SPEC>`"]
253pub type RDRHL = crate::Reg<rdrhl::RDRHL_SPEC>;
254#[doc = "Receive Data Register for Non-Manchester mode (MMR.MANEN = 0)"]
255pub mod rdrhl;
256#[doc = "RDRHL_MAN (r) register accessor: an alias for `Reg<RDRHL_MAN_SPEC>`"]
257pub type RDRHL_MAN = crate::Reg<rdrhl_man::RDRHL_MAN_SPEC>;
258#[doc = "Receive Data Register for Manchester mode (MMR.MANEN = 1)"]
259pub mod rdrhl_man;
260#[doc = "FRDRH (r) register accessor: an alias for `Reg<FRDRH_SPEC>`"]
261pub type FRDRH = crate::Reg<frdrh::FRDRH_SPEC>;
262#[doc = "Receive FIFO Data Register"]
263pub mod frdrh;
264#[doc = "FRDRL (r) register accessor: an alias for `Reg<FRDRL_SPEC>`"]
265pub type FRDRL = crate::Reg<frdrl::FRDRL_SPEC>;
266#[doc = "Receive FIFO Data Register"]
267pub mod frdrl;
268#[doc = "MDDR (rw) register accessor: an alias for `Reg<MDDR_SPEC>`"]
269pub type MDDR = crate::Reg<mddr::MDDR_SPEC>;
270#[doc = "Modulation Duty Register"]
271pub mod mddr;
272#[doc = "DCCR (rw) register accessor: an alias for `Reg<DCCR_SPEC>`"]
273pub type DCCR = crate::Reg<dccr::DCCR_SPEC>;
274#[doc = "Data Compare Match Control Register"]
275pub mod dccr;
276#[doc = "FCR (rw) register accessor: an alias for `Reg<FCR_SPEC>`"]
277pub type FCR = crate::Reg<fcr::FCR_SPEC>;
278#[doc = "FIFO Control Register"]
279pub mod fcr;
280#[doc = "FDR (r) register accessor: an alias for `Reg<FDR_SPEC>`"]
281pub type FDR = crate::Reg<fdr::FDR_SPEC>;
282#[doc = "FIFO Data Count Register"]
283pub mod fdr;
284#[doc = "LSR (r) register accessor: an alias for `Reg<LSR_SPEC>`"]
285pub type LSR = crate::Reg<lsr::LSR_SPEC>;
286#[doc = "Line Status Register"]
287pub mod lsr;
288#[doc = "CDR (rw) register accessor: an alias for `Reg<CDR_SPEC>`"]
289pub type CDR = crate::Reg<cdr::CDR_SPEC>;
290#[doc = "Compare Match Data Register"]
291pub mod cdr;
292#[doc = "SPTR (rw) register accessor: an alias for `Reg<SPTR_SPEC>`"]
293pub type SPTR = crate::Reg<sptr::SPTR_SPEC>;
294#[doc = "Serial Port Register"]
295pub mod sptr;
296#[doc = "ACTR (rw) register accessor: an alias for `Reg<ACTR_SPEC>`"]
297pub type ACTR = crate::Reg<actr::ACTR_SPEC>;
298#[doc = "Adjustment Communication Timing Register"]
299pub mod actr;
300#[doc = "MMR (rw) register accessor: an alias for `Reg<MMR_SPEC>`"]
301pub type MMR = crate::Reg<mmr::MMR_SPEC>;
302#[doc = "Manchester Mode Register"]
303pub mod mmr;
304#[doc = "TMPR (rw) register accessor: an alias for `Reg<TMPR_SPEC>`"]
305pub type TMPR = crate::Reg<tmpr::TMPR_SPEC>;
306#[doc = "Transmit Manchester Preface Setting Register"]
307pub mod tmpr;
308#[doc = "RMPR (rw) register accessor: an alias for `Reg<RMPR_SPEC>`"]
309pub type RMPR = crate::Reg<rmpr::RMPR_SPEC>;
310#[doc = "Receive Manchester Preface Setting Register"]
311pub mod rmpr;
312#[doc = "MESR (rw) register accessor: an alias for `Reg<MESR_SPEC>`"]
313pub type MESR = crate::Reg<mesr::MESR_SPEC>;
314#[doc = "Manchester Extended Error Status Register"]
315pub mod mesr;
316#[doc = "MECR (rw) register accessor: an alias for `Reg<MECR_SPEC>`"]
317pub type MECR = crate::Reg<mecr::MECR_SPEC>;
318#[doc = "Manchester Extended Error Control Register"]
319pub mod mecr;