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;