1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4 smhc_ctrl: SMHC_CTRL,
5 smhc_clkdiv: SMHC_CLKDIV,
6 smhc_tmout: SMHC_TMOUT,
7 smhc_ctype: SMHC_CTYPE,
8 smhc_blksiz: SMHC_BLKSIZ,
9 smhc_bytcnt: SMHC_BYTCNT,
10 smhc_cmd: SMHC_CMD,
11 smhc_cmdarg: SMHC_CMDARG,
12 smhc_resp0: SMHC_RESP0,
13 smhc_resp1: SMHC_RESP1,
14 smhc_resp2: SMHC_RESP2,
15 smhc_resp3: SMHC_RESP3,
16 smhc_intmask: SMHC_INTMASK,
17 smhc_mintsts: SMHC_MINTSTS,
18 smhc_rintsts: SMHC_RINTSTS,
19 smhc_status: SMHC_STATUS,
20 smhc_fifoth: SMHC_FIFOTH,
21 smhc_funs: SMHC_FUNS,
22 smhc_tbc0: SMHC_TBC0,
23 smhc_tbc1: SMHC_TBC1,
24 smhc_dbgc: SMHC_DBGC,
25 smhc_csdc: SMHC_CSDC,
26 smhc_a12a: SMHC_A12A,
27 smhc_ntsr: SMHC_NTSR,
28 _reserved24: [u8; 0x18],
29 smhc_hwrst: SMHC_HWRST,
30 _reserved25: [u8; 0x04],
31 smhc_idmac: SMHC_IDMAC,
32 smhc_dlba: SMHC_DLBA,
33 smhc_idst: SMHC_IDST,
34 smhc_idie: SMHC_IDIE,
35 _reserved29: [u8; 0x70],
36 smhc_thld: SMHC_THLD,
37 smhc_sfc: SMHC_SFC,
38 smhc_a23a: SMHC_A23A,
39 emmc_ddr_sbit_det: EMMC_DDR_SBIT_DET,
40 _reserved33: [u8; 0x28],
41 smhc_ext_cmd: SMHC_EXT_CMD,
42 smhc_ext_resp: SMHC_EXT_RESP,
43 smhc_drv_dl: SMHC_DRV_DL,
44 smhc_smap_dl: SMHC_SMAP_DL,
45 smhc_ds_dl: SMHC_DS_DL,
46 smhc_hs400_dl: SMHC_HS400_DL,
47 _reserved39: [u8; 0xb0],
48 smhc_fifo: SMHC_FIFO,
49}
50impl RegisterBlock {
51 #[doc = "0x00 - Control Register"]
52 #[inline(always)]
53 pub const fn smhc_ctrl(&self) -> &SMHC_CTRL {
54 &self.smhc_ctrl
55 }
56 #[doc = "0x04 - Clock Control Register"]
57 #[inline(always)]
58 pub const fn smhc_clkdiv(&self) -> &SMHC_CLKDIV {
59 &self.smhc_clkdiv
60 }
61 #[doc = "0x08 - Time Out Register"]
62 #[inline(always)]
63 pub const fn smhc_tmout(&self) -> &SMHC_TMOUT {
64 &self.smhc_tmout
65 }
66 #[doc = "0x0c - Bus Width Register"]
67 #[inline(always)]
68 pub const fn smhc_ctype(&self) -> &SMHC_CTYPE {
69 &self.smhc_ctype
70 }
71 #[doc = "0x10 - Block Size Register"]
72 #[inline(always)]
73 pub const fn smhc_blksiz(&self) -> &SMHC_BLKSIZ {
74 &self.smhc_blksiz
75 }
76 #[doc = "0x14 - Byte Count Register"]
77 #[inline(always)]
78 pub const fn smhc_bytcnt(&self) -> &SMHC_BYTCNT {
79 &self.smhc_bytcnt
80 }
81 #[doc = "0x18 - Command Register"]
82 #[inline(always)]
83 pub const fn smhc_cmd(&self) -> &SMHC_CMD {
84 &self.smhc_cmd
85 }
86 #[doc = "0x1c - Command Argument Register"]
87 #[inline(always)]
88 pub const fn smhc_cmdarg(&self) -> &SMHC_CMDARG {
89 &self.smhc_cmdarg
90 }
91 #[doc = "0x20 - Response 0 Register"]
92 #[inline(always)]
93 pub const fn smhc_resp0(&self) -> &SMHC_RESP0 {
94 &self.smhc_resp0
95 }
96 #[doc = "0x24 - Response 1 Register"]
97 #[inline(always)]
98 pub const fn smhc_resp1(&self) -> &SMHC_RESP1 {
99 &self.smhc_resp1
100 }
101 #[doc = "0x28 - Response 2 Register"]
102 #[inline(always)]
103 pub const fn smhc_resp2(&self) -> &SMHC_RESP2 {
104 &self.smhc_resp2
105 }
106 #[doc = "0x2c - Response 3 Register"]
107 #[inline(always)]
108 pub const fn smhc_resp3(&self) -> &SMHC_RESP3 {
109 &self.smhc_resp3
110 }
111 #[doc = "0x30 - Interrupt Mask Register"]
112 #[inline(always)]
113 pub const fn smhc_intmask(&self) -> &SMHC_INTMASK {
114 &self.smhc_intmask
115 }
116 #[doc = "0x34 - Masked Interrupt Status Register"]
117 #[inline(always)]
118 pub const fn smhc_mintsts(&self) -> &SMHC_MINTSTS {
119 &self.smhc_mintsts
120 }
121 #[doc = "0x38 - Raw Interrupt Status Register"]
122 #[inline(always)]
123 pub const fn smhc_rintsts(&self) -> &SMHC_RINTSTS {
124 &self.smhc_rintsts
125 }
126 #[doc = "0x3c - Status Register"]
127 #[inline(always)]
128 pub const fn smhc_status(&self) -> &SMHC_STATUS {
129 &self.smhc_status
130 }
131 #[doc = "0x40 - FIFO Water Level Register"]
132 #[inline(always)]
133 pub const fn smhc_fifoth(&self) -> &SMHC_FIFOTH {
134 &self.smhc_fifoth
135 }
136 #[doc = "0x44 - FIFO Function Select Register"]
137 #[inline(always)]
138 pub const fn smhc_funs(&self) -> &SMHC_FUNS {
139 &self.smhc_funs
140 }
141 #[doc = "0x48 - Transferred Byte Count between Controller and Card"]
142 #[inline(always)]
143 pub const fn smhc_tbc0(&self) -> &SMHC_TBC0 {
144 &self.smhc_tbc0
145 }
146 #[doc = "0x4c - Transferred Byte Count between Host Memory and Internal FIFO"]
147 #[inline(always)]
148 pub const fn smhc_tbc1(&self) -> &SMHC_TBC1 {
149 &self.smhc_tbc1
150 }
151 #[doc = "0x50 - Current Debug Control Register"]
152 #[inline(always)]
153 pub const fn smhc_dbgc(&self) -> &SMHC_DBGC {
154 &self.smhc_dbgc
155 }
156 #[doc = "0x54 - CRC Status Detect Control Registers"]
157 #[inline(always)]
158 pub const fn smhc_csdc(&self) -> &SMHC_CSDC {
159 &self.smhc_csdc
160 }
161 #[doc = "0x58 - Auto Command 12 Argument Register"]
162 #[inline(always)]
163 pub const fn smhc_a12a(&self) -> &SMHC_A12A {
164 &self.smhc_a12a
165 }
166 #[doc = "0x5c - SD New Timing Set Register"]
167 #[inline(always)]
168 pub const fn smhc_ntsr(&self) -> &SMHC_NTSR {
169 &self.smhc_ntsr
170 }
171 #[doc = "0x78 - Hardware Reset Register"]
172 #[inline(always)]
173 pub const fn smhc_hwrst(&self) -> &SMHC_HWRST {
174 &self.smhc_hwrst
175 }
176 #[doc = "0x80 - IDMAC Control Register"]
177 #[inline(always)]
178 pub const fn smhc_idmac(&self) -> &SMHC_IDMAC {
179 &self.smhc_idmac
180 }
181 #[doc = "0x84 - Descriptor List Base Address Register"]
182 #[inline(always)]
183 pub const fn smhc_dlba(&self) -> &SMHC_DLBA {
184 &self.smhc_dlba
185 }
186 #[doc = "0x88 - IDMAC Status Register"]
187 #[inline(always)]
188 pub const fn smhc_idst(&self) -> &SMHC_IDST {
189 &self.smhc_idst
190 }
191 #[doc = "0x8c - IDMAC Interrupt Enable Register"]
192 #[inline(always)]
193 pub const fn smhc_idie(&self) -> &SMHC_IDIE {
194 &self.smhc_idie
195 }
196 #[doc = "0x100 - Card Threshold Control Register"]
197 #[inline(always)]
198 pub const fn smhc_thld(&self) -> &SMHC_THLD {
199 &self.smhc_thld
200 }
201 #[doc = "0x104 - Sample FIFO Control Register"]
202 #[inline(always)]
203 pub const fn smhc_sfc(&self) -> &SMHC_SFC {
204 &self.smhc_sfc
205 }
206 #[doc = "0x108 - Auto Command 23 Argument Register"]
207 #[inline(always)]
208 pub const fn smhc_a23a(&self) -> &SMHC_A23A {
209 &self.smhc_a23a
210 }
211 #[doc = "0x10c - eMMC4.5 DDR Start Bit Detection Control Register"]
212 #[inline(always)]
213 pub const fn emmc_ddr_sbit_det(&self) -> &EMMC_DDR_SBIT_DET {
214 &self.emmc_ddr_sbit_det
215 }
216 #[doc = "0x138 - Extended Command Register"]
217 #[inline(always)]
218 pub const fn smhc_ext_cmd(&self) -> &SMHC_EXT_CMD {
219 &self.smhc_ext_cmd
220 }
221 #[doc = "0x13c - Extended Response Register"]
222 #[inline(always)]
223 pub const fn smhc_ext_resp(&self) -> &SMHC_EXT_RESP {
224 &self.smhc_ext_resp
225 }
226 #[doc = "0x140 - Drive Delay Control Register"]
227 #[inline(always)]
228 pub const fn smhc_drv_dl(&self) -> &SMHC_DRV_DL {
229 &self.smhc_drv_dl
230 }
231 #[doc = "0x144 - Sample Delay Control Register"]
232 #[inline(always)]
233 pub const fn smhc_smap_dl(&self) -> &SMHC_SMAP_DL {
234 &self.smhc_smap_dl
235 }
236 #[doc = "0x148 - Data Strobe Delay Control Register"]
237 #[inline(always)]
238 pub const fn smhc_ds_dl(&self) -> &SMHC_DS_DL {
239 &self.smhc_ds_dl
240 }
241 #[doc = "0x14c - HS400 Delay Control Register"]
242 #[inline(always)]
243 pub const fn smhc_hs400_dl(&self) -> &SMHC_HS400_DL {
244 &self.smhc_hs400_dl
245 }
246 #[doc = "0x200 - Read/Write FIFO"]
247 #[inline(always)]
248 pub const fn smhc_fifo(&self) -> &SMHC_FIFO {
249 &self.smhc_fifo
250 }
251}
252#[doc = "smhc_ctrl (rw) register accessor: Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_ctrl::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 [`smhc_ctrl::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@smhc_ctrl`] module"]
253pub type SMHC_CTRL = crate::Reg<smhc_ctrl::SMHC_CTRL_SPEC>;
254#[doc = "Control Register"]
255pub mod smhc_ctrl;
256#[doc = "smhc_clkdiv (rw) register accessor: Clock Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_clkdiv::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 [`smhc_clkdiv::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@smhc_clkdiv`] module"]
257pub type SMHC_CLKDIV = crate::Reg<smhc_clkdiv::SMHC_CLKDIV_SPEC>;
258#[doc = "Clock Control Register"]
259pub mod smhc_clkdiv;
260#[doc = "smhc_tmout (rw) register accessor: Time Out Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_tmout::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 [`smhc_tmout::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@smhc_tmout`] module"]
261pub type SMHC_TMOUT = crate::Reg<smhc_tmout::SMHC_TMOUT_SPEC>;
262#[doc = "Time Out Register"]
263pub mod smhc_tmout;
264#[doc = "smhc_ctype (rw) register accessor: Bus Width Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_ctype::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 [`smhc_ctype::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@smhc_ctype`] module"]
265pub type SMHC_CTYPE = crate::Reg<smhc_ctype::SMHC_CTYPE_SPEC>;
266#[doc = "Bus Width Register"]
267pub mod smhc_ctype;
268#[doc = "smhc_blksiz (rw) register accessor: Block Size Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_blksiz::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 [`smhc_blksiz::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@smhc_blksiz`] module"]
269pub type SMHC_BLKSIZ = crate::Reg<smhc_blksiz::SMHC_BLKSIZ_SPEC>;
270#[doc = "Block Size Register"]
271pub mod smhc_blksiz;
272#[doc = "smhc_bytcnt (rw) register accessor: Byte Count Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_bytcnt::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 [`smhc_bytcnt::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@smhc_bytcnt`] module"]
273pub type SMHC_BYTCNT = crate::Reg<smhc_bytcnt::SMHC_BYTCNT_SPEC>;
274#[doc = "Byte Count Register"]
275pub mod smhc_bytcnt;
276#[doc = "smhc_cmd (rw) register accessor: Command Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_cmd::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 [`smhc_cmd::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@smhc_cmd`] module"]
277pub type SMHC_CMD = crate::Reg<smhc_cmd::SMHC_CMD_SPEC>;
278#[doc = "Command Register"]
279pub mod smhc_cmd;
280#[doc = "smhc_cmdarg (rw) register accessor: Command Argument Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_cmdarg::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 [`smhc_cmdarg::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@smhc_cmdarg`] module"]
281pub type SMHC_CMDARG = crate::Reg<smhc_cmdarg::SMHC_CMDARG_SPEC>;
282#[doc = "Command Argument Register"]
283pub mod smhc_cmdarg;
284#[doc = "smhc_resp0 (r) register accessor: Response 0 Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_resp0::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@smhc_resp0`] module"]
285pub type SMHC_RESP0 = crate::Reg<smhc_resp0::SMHC_RESP0_SPEC>;
286#[doc = "Response 0 Register"]
287pub mod smhc_resp0;
288#[doc = "smhc_resp1 (r) register accessor: Response 1 Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_resp1::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@smhc_resp1`] module"]
289pub type SMHC_RESP1 = crate::Reg<smhc_resp1::SMHC_RESP1_SPEC>;
290#[doc = "Response 1 Register"]
291pub mod smhc_resp1;
292#[doc = "smhc_resp2 (r) register accessor: Response 2 Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_resp2::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@smhc_resp2`] module"]
293pub type SMHC_RESP2 = crate::Reg<smhc_resp2::SMHC_RESP2_SPEC>;
294#[doc = "Response 2 Register"]
295pub mod smhc_resp2;
296#[doc = "smhc_resp3 (r) register accessor: Response 3 Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_resp3::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@smhc_resp3`] module"]
297pub type SMHC_RESP3 = crate::Reg<smhc_resp3::SMHC_RESP3_SPEC>;
298#[doc = "Response 3 Register"]
299pub mod smhc_resp3;
300#[doc = "smhc_intmask (rw) register accessor: Interrupt Mask Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_intmask::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 [`smhc_intmask::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@smhc_intmask`] module"]
301pub type SMHC_INTMASK = crate::Reg<smhc_intmask::SMHC_INTMASK_SPEC>;
302#[doc = "Interrupt Mask Register"]
303pub mod smhc_intmask;
304#[doc = "smhc_mintsts (r) register accessor: Masked Interrupt Status Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_mintsts::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@smhc_mintsts`] module"]
305pub type SMHC_MINTSTS = crate::Reg<smhc_mintsts::SMHC_MINTSTS_SPEC>;
306#[doc = "Masked Interrupt Status Register"]
307pub mod smhc_mintsts;
308#[doc = "smhc_rintsts (rw) register accessor: Raw Interrupt Status Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_rintsts::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 [`smhc_rintsts::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@smhc_rintsts`] module"]
309pub type SMHC_RINTSTS = crate::Reg<smhc_rintsts::SMHC_RINTSTS_SPEC>;
310#[doc = "Raw Interrupt Status Register"]
311pub mod smhc_rintsts;
312#[doc = "smhc_status (r) register accessor: Status Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_status::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@smhc_status`] module"]
313pub type SMHC_STATUS = crate::Reg<smhc_status::SMHC_STATUS_SPEC>;
314#[doc = "Status Register"]
315pub mod smhc_status;
316#[doc = "smhc_fifoth (rw) register accessor: FIFO Water Level Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_fifoth::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 [`smhc_fifoth::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@smhc_fifoth`] module"]
317pub type SMHC_FIFOTH = crate::Reg<smhc_fifoth::SMHC_FIFOTH_SPEC>;
318#[doc = "FIFO Water Level Register"]
319pub mod smhc_fifoth;
320#[doc = "smhc_funs (rw) register accessor: FIFO Function Select Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_funs::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 [`smhc_funs::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@smhc_funs`] module"]
321pub type SMHC_FUNS = crate::Reg<smhc_funs::SMHC_FUNS_SPEC>;
322#[doc = "FIFO Function Select Register"]
323pub mod smhc_funs;
324#[doc = "smhc_tbc0 (r) register accessor: Transferred Byte Count between Controller and Card\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_tbc0::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@smhc_tbc0`] module"]
325pub type SMHC_TBC0 = crate::Reg<smhc_tbc0::SMHC_TBC0_SPEC>;
326#[doc = "Transferred Byte Count between Controller and Card"]
327pub mod smhc_tbc0;
328#[doc = "smhc_tbc1 (r) register accessor: Transferred Byte Count between Host Memory and Internal FIFO\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_tbc1::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@smhc_tbc1`] module"]
329pub type SMHC_TBC1 = crate::Reg<smhc_tbc1::SMHC_TBC1_SPEC>;
330#[doc = "Transferred Byte Count between Host Memory and Internal FIFO"]
331pub mod smhc_tbc1;
332#[doc = "smhc_dbgc (rw) register accessor: Current Debug Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_dbgc::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 [`smhc_dbgc::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@smhc_dbgc`] module"]
333pub type SMHC_DBGC = crate::Reg<smhc_dbgc::SMHC_DBGC_SPEC>;
334#[doc = "Current Debug Control Register"]
335pub mod smhc_dbgc;
336#[doc = "smhc_csdc (rw) register accessor: CRC Status Detect Control Registers\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_csdc::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 [`smhc_csdc::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@smhc_csdc`] module"]
337pub type SMHC_CSDC = crate::Reg<smhc_csdc::SMHC_CSDC_SPEC>;
338#[doc = "CRC Status Detect Control Registers"]
339pub mod smhc_csdc;
340#[doc = "smhc_a12a (rw) register accessor: Auto Command 12 Argument Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_a12a::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 [`smhc_a12a::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@smhc_a12a`] module"]
341pub type SMHC_A12A = crate::Reg<smhc_a12a::SMHC_A12A_SPEC>;
342#[doc = "Auto Command 12 Argument Register"]
343pub mod smhc_a12a;
344#[doc = "smhc_ntsr (rw) register accessor: SD New Timing Set Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_ntsr::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 [`smhc_ntsr::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@smhc_ntsr`] module"]
345pub type SMHC_NTSR = crate::Reg<smhc_ntsr::SMHC_NTSR_SPEC>;
346#[doc = "SD New Timing Set Register"]
347pub mod smhc_ntsr;
348#[doc = "smhc_hwrst (rw) register accessor: Hardware Reset Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_hwrst::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 [`smhc_hwrst::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@smhc_hwrst`] module"]
349pub type SMHC_HWRST = crate::Reg<smhc_hwrst::SMHC_HWRST_SPEC>;
350#[doc = "Hardware Reset Register"]
351pub mod smhc_hwrst;
352#[doc = "smhc_idmac (rw) register accessor: IDMAC Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_idmac::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 [`smhc_idmac::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@smhc_idmac`] module"]
353pub type SMHC_IDMAC = crate::Reg<smhc_idmac::SMHC_IDMAC_SPEC>;
354#[doc = "IDMAC Control Register"]
355pub mod smhc_idmac;
356#[doc = "smhc_dlba (rw) register accessor: Descriptor List Base Address Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_dlba::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 [`smhc_dlba::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@smhc_dlba`] module"]
357pub type SMHC_DLBA = crate::Reg<smhc_dlba::SMHC_DLBA_SPEC>;
358#[doc = "Descriptor List Base Address Register"]
359pub mod smhc_dlba;
360#[doc = "smhc_idst (rw) register accessor: IDMAC Status Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_idst::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 [`smhc_idst::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@smhc_idst`] module"]
361pub type SMHC_IDST = crate::Reg<smhc_idst::SMHC_IDST_SPEC>;
362#[doc = "IDMAC Status Register"]
363pub mod smhc_idst;
364#[doc = "smhc_idie (rw) register accessor: IDMAC Interrupt Enable Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_idie::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 [`smhc_idie::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@smhc_idie`] module"]
365pub type SMHC_IDIE = crate::Reg<smhc_idie::SMHC_IDIE_SPEC>;
366#[doc = "IDMAC Interrupt Enable Register"]
367pub mod smhc_idie;
368#[doc = "smhc_thld (rw) register accessor: Card Threshold Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_thld::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 [`smhc_thld::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@smhc_thld`] module"]
369pub type SMHC_THLD = crate::Reg<smhc_thld::SMHC_THLD_SPEC>;
370#[doc = "Card Threshold Control Register"]
371pub mod smhc_thld;
372#[doc = "smhc_sfc (rw) register accessor: Sample FIFO Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_sfc::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 [`smhc_sfc::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@smhc_sfc`] module"]
373pub type SMHC_SFC = crate::Reg<smhc_sfc::SMHC_SFC_SPEC>;
374#[doc = "Sample FIFO Control Register"]
375pub mod smhc_sfc;
376#[doc = "smhc_a23a (rw) register accessor: Auto Command 23 Argument Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_a23a::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 [`smhc_a23a::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@smhc_a23a`] module"]
377pub type SMHC_A23A = crate::Reg<smhc_a23a::SMHC_A23A_SPEC>;
378#[doc = "Auto Command 23 Argument Register"]
379pub mod smhc_a23a;
380#[doc = "emmc_ddr_sbit_det (rw) register accessor: eMMC4.5 DDR Start Bit Detection Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`emmc_ddr_sbit_det::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 [`emmc_ddr_sbit_det::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@emmc_ddr_sbit_det`] module"]
381pub type EMMC_DDR_SBIT_DET = crate::Reg<emmc_ddr_sbit_det::EMMC_DDR_SBIT_DET_SPEC>;
382#[doc = "eMMC4.5 DDR Start Bit Detection Control Register"]
383pub mod emmc_ddr_sbit_det;
384#[doc = "smhc_ext_cmd (rw) register accessor: Extended Command Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_ext_cmd::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 [`smhc_ext_cmd::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@smhc_ext_cmd`] module"]
385pub type SMHC_EXT_CMD = crate::Reg<smhc_ext_cmd::SMHC_EXT_CMD_SPEC>;
386#[doc = "Extended Command Register"]
387pub mod smhc_ext_cmd;
388#[doc = "smhc_ext_resp (r) register accessor: Extended Response Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_ext_resp::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@smhc_ext_resp`] module"]
389pub type SMHC_EXT_RESP = crate::Reg<smhc_ext_resp::SMHC_EXT_RESP_SPEC>;
390#[doc = "Extended Response Register"]
391pub mod smhc_ext_resp;
392#[doc = "smhc_drv_dl (rw) register accessor: Drive Delay Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_drv_dl::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 [`smhc_drv_dl::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@smhc_drv_dl`] module"]
393pub type SMHC_DRV_DL = crate::Reg<smhc_drv_dl::SMHC_DRV_DL_SPEC>;
394#[doc = "Drive Delay Control Register"]
395pub mod smhc_drv_dl;
396#[doc = "smhc_smap_dl (rw) register accessor: Sample Delay Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_smap_dl::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 [`smhc_smap_dl::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@smhc_smap_dl`] module"]
397pub type SMHC_SMAP_DL = crate::Reg<smhc_smap_dl::SMHC_SMAP_DL_SPEC>;
398#[doc = "Sample Delay Control Register"]
399pub mod smhc_smap_dl;
400#[doc = "smhc_ds_dl (rw) register accessor: Data Strobe Delay Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_ds_dl::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 [`smhc_ds_dl::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@smhc_ds_dl`] module"]
401pub type SMHC_DS_DL = crate::Reg<smhc_ds_dl::SMHC_DS_DL_SPEC>;
402#[doc = "Data Strobe Delay Control Register"]
403pub mod smhc_ds_dl;
404#[doc = "smhc_hs400_dl (rw) register accessor: HS400 Delay Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_hs400_dl::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 [`smhc_hs400_dl::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@smhc_hs400_dl`] module"]
405pub type SMHC_HS400_DL = crate::Reg<smhc_hs400_dl::SMHC_HS400_DL_SPEC>;
406#[doc = "HS400 Delay Control Register"]
407pub mod smhc_hs400_dl;
408#[doc = "smhc_fifo (rw) register accessor: Read/Write FIFO\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`smhc_fifo::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 [`smhc_fifo::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@smhc_fifo`] module"]
409pub type SMHC_FIFO = crate::Reg<smhc_fifo::SMHC_FIFO_SPEC>;
410#[doc = "Read/Write FIFO"]
411pub mod smhc_fifo;