xmc4500/sdmmc/
transfer_mode.rs1#[doc = "Register `TRANSFER_MODE` reader"]
2pub type R = crate::R<TRANSFER_MODE_SPEC>;
3#[doc = "Register `TRANSFER_MODE` writer"]
4pub type W = crate::W<TRANSFER_MODE_SPEC>;
5#[doc = "Block Count Enable\n\nValue on reset: 0"]
6#[derive(Clone, Copy, Debug, PartialEq, Eq)]
7pub enum BLOCK_COUNT_EN_A {
8 #[doc = "0: Disable"]
9 VALUE1 = 0,
10 #[doc = "1: Enable"]
11 VALUE2 = 1,
12}
13impl From<BLOCK_COUNT_EN_A> for bool {
14 #[inline(always)]
15 fn from(variant: BLOCK_COUNT_EN_A) -> Self {
16 variant as u8 != 0
17 }
18}
19#[doc = "Field `BLOCK_COUNT_EN` reader - Block Count Enable"]
20pub type BLOCK_COUNT_EN_R = crate::BitReader<BLOCK_COUNT_EN_A>;
21impl BLOCK_COUNT_EN_R {
22 #[doc = "Get enumerated values variant"]
23 #[inline(always)]
24 pub const fn variant(&self) -> BLOCK_COUNT_EN_A {
25 match self.bits {
26 false => BLOCK_COUNT_EN_A::VALUE1,
27 true => BLOCK_COUNT_EN_A::VALUE2,
28 }
29 }
30 #[doc = "Disable"]
31 #[inline(always)]
32 pub fn is_value1(&self) -> bool {
33 *self == BLOCK_COUNT_EN_A::VALUE1
34 }
35 #[doc = "Enable"]
36 #[inline(always)]
37 pub fn is_value2(&self) -> bool {
38 *self == BLOCK_COUNT_EN_A::VALUE2
39 }
40}
41#[doc = "Field `BLOCK_COUNT_EN` writer - Block Count Enable"]
42pub type BLOCK_COUNT_EN_W<'a, REG> = crate::BitWriter<'a, REG, BLOCK_COUNT_EN_A>;
43impl<'a, REG> BLOCK_COUNT_EN_W<'a, REG>
44where
45 REG: crate::Writable + crate::RegisterSpec,
46{
47 #[doc = "Disable"]
48 #[inline(always)]
49 pub fn value1(self) -> &'a mut crate::W<REG> {
50 self.variant(BLOCK_COUNT_EN_A::VALUE1)
51 }
52 #[doc = "Enable"]
53 #[inline(always)]
54 pub fn value2(self) -> &'a mut crate::W<REG> {
55 self.variant(BLOCK_COUNT_EN_A::VALUE2)
56 }
57}
58#[doc = "Auto CMD Enable\n\nValue on reset: 0"]
59#[derive(Clone, Copy, Debug, PartialEq, Eq)]
60#[repr(u8)]
61pub enum ACMD_EN_A {
62 #[doc = "0: Auto Command Disabled"]
63 VALUE1 = 0,
64 #[doc = "1: Auto CMD12 Enable"]
65 VALUE2 = 1,
66}
67impl From<ACMD_EN_A> for u8 {
68 #[inline(always)]
69 fn from(variant: ACMD_EN_A) -> Self {
70 variant as _
71 }
72}
73impl crate::FieldSpec for ACMD_EN_A {
74 type Ux = u8;
75}
76impl crate::IsEnum for ACMD_EN_A {}
77#[doc = "Field `ACMD_EN` reader - Auto CMD Enable"]
78pub type ACMD_EN_R = crate::FieldReader<ACMD_EN_A>;
79impl ACMD_EN_R {
80 #[doc = "Get enumerated values variant"]
81 #[inline(always)]
82 pub const fn variant(&self) -> Option<ACMD_EN_A> {
83 match self.bits {
84 0 => Some(ACMD_EN_A::VALUE1),
85 1 => Some(ACMD_EN_A::VALUE2),
86 _ => None,
87 }
88 }
89 #[doc = "Auto Command Disabled"]
90 #[inline(always)]
91 pub fn is_value1(&self) -> bool {
92 *self == ACMD_EN_A::VALUE1
93 }
94 #[doc = "Auto CMD12 Enable"]
95 #[inline(always)]
96 pub fn is_value2(&self) -> bool {
97 *self == ACMD_EN_A::VALUE2
98 }
99}
100#[doc = "Field `ACMD_EN` writer - Auto CMD Enable"]
101pub type ACMD_EN_W<'a, REG> = crate::FieldWriter<'a, REG, 2, ACMD_EN_A>;
102impl<'a, REG> ACMD_EN_W<'a, REG>
103where
104 REG: crate::Writable + crate::RegisterSpec,
105 REG::Ux: From<u8>,
106{
107 #[doc = "Auto Command Disabled"]
108 #[inline(always)]
109 pub fn value1(self) -> &'a mut crate::W<REG> {
110 self.variant(ACMD_EN_A::VALUE1)
111 }
112 #[doc = "Auto CMD12 Enable"]
113 #[inline(always)]
114 pub fn value2(self) -> &'a mut crate::W<REG> {
115 self.variant(ACMD_EN_A::VALUE2)
116 }
117}
118#[doc = "Data Transfer Direction Select\n\nValue on reset: 0"]
119#[derive(Clone, Copy, Debug, PartialEq, Eq)]
120pub enum TX_DIR_SELECT_A {
121 #[doc = "0: Write (Host to Card)"]
122 VALUE1 = 0,
123 #[doc = "1: Read (Card to Host)"]
124 VALUE2 = 1,
125}
126impl From<TX_DIR_SELECT_A> for bool {
127 #[inline(always)]
128 fn from(variant: TX_DIR_SELECT_A) -> Self {
129 variant as u8 != 0
130 }
131}
132#[doc = "Field `TX_DIR_SELECT` reader - Data Transfer Direction Select"]
133pub type TX_DIR_SELECT_R = crate::BitReader<TX_DIR_SELECT_A>;
134impl TX_DIR_SELECT_R {
135 #[doc = "Get enumerated values variant"]
136 #[inline(always)]
137 pub const fn variant(&self) -> TX_DIR_SELECT_A {
138 match self.bits {
139 false => TX_DIR_SELECT_A::VALUE1,
140 true => TX_DIR_SELECT_A::VALUE2,
141 }
142 }
143 #[doc = "Write (Host to Card)"]
144 #[inline(always)]
145 pub fn is_value1(&self) -> bool {
146 *self == TX_DIR_SELECT_A::VALUE1
147 }
148 #[doc = "Read (Card to Host)"]
149 #[inline(always)]
150 pub fn is_value2(&self) -> bool {
151 *self == TX_DIR_SELECT_A::VALUE2
152 }
153}
154#[doc = "Field `TX_DIR_SELECT` writer - Data Transfer Direction Select"]
155pub type TX_DIR_SELECT_W<'a, REG> = crate::BitWriter<'a, REG, TX_DIR_SELECT_A>;
156impl<'a, REG> TX_DIR_SELECT_W<'a, REG>
157where
158 REG: crate::Writable + crate::RegisterSpec,
159{
160 #[doc = "Write (Host to Card)"]
161 #[inline(always)]
162 pub fn value1(self) -> &'a mut crate::W<REG> {
163 self.variant(TX_DIR_SELECT_A::VALUE1)
164 }
165 #[doc = "Read (Card to Host)"]
166 #[inline(always)]
167 pub fn value2(self) -> &'a mut crate::W<REG> {
168 self.variant(TX_DIR_SELECT_A::VALUE2)
169 }
170}
171#[doc = "Multi / Single Block Select\n\nValue on reset: 0"]
172#[derive(Clone, Copy, Debug, PartialEq, Eq)]
173pub enum MULTI_BLOCK_SELECT_A {
174 #[doc = "0: Single Block"]
175 VALUE1 = 0,
176 #[doc = "1: Multiple Block"]
177 VALUE2 = 1,
178}
179impl From<MULTI_BLOCK_SELECT_A> for bool {
180 #[inline(always)]
181 fn from(variant: MULTI_BLOCK_SELECT_A) -> Self {
182 variant as u8 != 0
183 }
184}
185#[doc = "Field `MULTI_BLOCK_SELECT` reader - Multi / Single Block Select"]
186pub type MULTI_BLOCK_SELECT_R = crate::BitReader<MULTI_BLOCK_SELECT_A>;
187impl MULTI_BLOCK_SELECT_R {
188 #[doc = "Get enumerated values variant"]
189 #[inline(always)]
190 pub const fn variant(&self) -> MULTI_BLOCK_SELECT_A {
191 match self.bits {
192 false => MULTI_BLOCK_SELECT_A::VALUE1,
193 true => MULTI_BLOCK_SELECT_A::VALUE2,
194 }
195 }
196 #[doc = "Single Block"]
197 #[inline(always)]
198 pub fn is_value1(&self) -> bool {
199 *self == MULTI_BLOCK_SELECT_A::VALUE1
200 }
201 #[doc = "Multiple Block"]
202 #[inline(always)]
203 pub fn is_value2(&self) -> bool {
204 *self == MULTI_BLOCK_SELECT_A::VALUE2
205 }
206}
207#[doc = "Field `MULTI_BLOCK_SELECT` writer - Multi / Single Block Select"]
208pub type MULTI_BLOCK_SELECT_W<'a, REG> = crate::BitWriter<'a, REG, MULTI_BLOCK_SELECT_A>;
209impl<'a, REG> MULTI_BLOCK_SELECT_W<'a, REG>
210where
211 REG: crate::Writable + crate::RegisterSpec,
212{
213 #[doc = "Single Block"]
214 #[inline(always)]
215 pub fn value1(self) -> &'a mut crate::W<REG> {
216 self.variant(MULTI_BLOCK_SELECT_A::VALUE1)
217 }
218 #[doc = "Multiple Block"]
219 #[inline(always)]
220 pub fn value2(self) -> &'a mut crate::W<REG> {
221 self.variant(MULTI_BLOCK_SELECT_A::VALUE2)
222 }
223}
224#[doc = "Command Completion Signal Enable for CE-ATA Device\n\nValue on reset: 0"]
225#[derive(Clone, Copy, Debug, PartialEq, Eq)]
226pub enum CMD_COMP_ATA_A {
227 #[doc = "1: Device will send command completion Signal"]
228 VALUE1 = 1,
229 #[doc = "0: Device will not send command completion Signal"]
230 VALUE2 = 0,
231}
232impl From<CMD_COMP_ATA_A> for bool {
233 #[inline(always)]
234 fn from(variant: CMD_COMP_ATA_A) -> Self {
235 variant as u8 != 0
236 }
237}
238#[doc = "Field `CMD_COMP_ATA` reader - Command Completion Signal Enable for CE-ATA Device"]
239pub type CMD_COMP_ATA_R = crate::BitReader<CMD_COMP_ATA_A>;
240impl CMD_COMP_ATA_R {
241 #[doc = "Get enumerated values variant"]
242 #[inline(always)]
243 pub const fn variant(&self) -> CMD_COMP_ATA_A {
244 match self.bits {
245 true => CMD_COMP_ATA_A::VALUE1,
246 false => CMD_COMP_ATA_A::VALUE2,
247 }
248 }
249 #[doc = "Device will send command completion Signal"]
250 #[inline(always)]
251 pub fn is_value1(&self) -> bool {
252 *self == CMD_COMP_ATA_A::VALUE1
253 }
254 #[doc = "Device will not send command completion Signal"]
255 #[inline(always)]
256 pub fn is_value2(&self) -> bool {
257 *self == CMD_COMP_ATA_A::VALUE2
258 }
259}
260#[doc = "Field `CMD_COMP_ATA` writer - Command Completion Signal Enable for CE-ATA Device"]
261pub type CMD_COMP_ATA_W<'a, REG> = crate::BitWriter<'a, REG, CMD_COMP_ATA_A>;
262impl<'a, REG> CMD_COMP_ATA_W<'a, REG>
263where
264 REG: crate::Writable + crate::RegisterSpec,
265{
266 #[doc = "Device will send command completion Signal"]
267 #[inline(always)]
268 pub fn value1(self) -> &'a mut crate::W<REG> {
269 self.variant(CMD_COMP_ATA_A::VALUE1)
270 }
271 #[doc = "Device will not send command completion Signal"]
272 #[inline(always)]
273 pub fn value2(self) -> &'a mut crate::W<REG> {
274 self.variant(CMD_COMP_ATA_A::VALUE2)
275 }
276}
277impl R {
278 #[doc = "Bit 1 - Block Count Enable"]
279 #[inline(always)]
280 pub fn block_count_en(&self) -> BLOCK_COUNT_EN_R {
281 BLOCK_COUNT_EN_R::new(((self.bits >> 1) & 1) != 0)
282 }
283 #[doc = "Bits 2:3 - Auto CMD Enable"]
284 #[inline(always)]
285 pub fn acmd_en(&self) -> ACMD_EN_R {
286 ACMD_EN_R::new(((self.bits >> 2) & 3) as u8)
287 }
288 #[doc = "Bit 4 - Data Transfer Direction Select"]
289 #[inline(always)]
290 pub fn tx_dir_select(&self) -> TX_DIR_SELECT_R {
291 TX_DIR_SELECT_R::new(((self.bits >> 4) & 1) != 0)
292 }
293 #[doc = "Bit 5 - Multi / Single Block Select"]
294 #[inline(always)]
295 pub fn multi_block_select(&self) -> MULTI_BLOCK_SELECT_R {
296 MULTI_BLOCK_SELECT_R::new(((self.bits >> 5) & 1) != 0)
297 }
298 #[doc = "Bit 6 - Command Completion Signal Enable for CE-ATA Device"]
299 #[inline(always)]
300 pub fn cmd_comp_ata(&self) -> CMD_COMP_ATA_R {
301 CMD_COMP_ATA_R::new(((self.bits >> 6) & 1) != 0)
302 }
303}
304impl W {
305 #[doc = "Bit 1 - Block Count Enable"]
306 #[inline(always)]
307 pub fn block_count_en(&mut self) -> BLOCK_COUNT_EN_W<TRANSFER_MODE_SPEC> {
308 BLOCK_COUNT_EN_W::new(self, 1)
309 }
310 #[doc = "Bits 2:3 - Auto CMD Enable"]
311 #[inline(always)]
312 pub fn acmd_en(&mut self) -> ACMD_EN_W<TRANSFER_MODE_SPEC> {
313 ACMD_EN_W::new(self, 2)
314 }
315 #[doc = "Bit 4 - Data Transfer Direction Select"]
316 #[inline(always)]
317 pub fn tx_dir_select(&mut self) -> TX_DIR_SELECT_W<TRANSFER_MODE_SPEC> {
318 TX_DIR_SELECT_W::new(self, 4)
319 }
320 #[doc = "Bit 5 - Multi / Single Block Select"]
321 #[inline(always)]
322 pub fn multi_block_select(&mut self) -> MULTI_BLOCK_SELECT_W<TRANSFER_MODE_SPEC> {
323 MULTI_BLOCK_SELECT_W::new(self, 5)
324 }
325 #[doc = "Bit 6 - Command Completion Signal Enable for CE-ATA Device"]
326 #[inline(always)]
327 pub fn cmd_comp_ata(&mut self) -> CMD_COMP_ATA_W<TRANSFER_MODE_SPEC> {
328 CMD_COMP_ATA_W::new(self, 6)
329 }
330}
331#[doc = "Transfer Mode Register\n\nYou can [`read`](crate::Reg::read) this register and get [`transfer_mode::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`transfer_mode::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
332pub struct TRANSFER_MODE_SPEC;
333impl crate::RegisterSpec for TRANSFER_MODE_SPEC {
334 type Ux = u16;
335}
336#[doc = "`read()` method returns [`transfer_mode::R`](R) reader structure"]
337impl crate::Readable for TRANSFER_MODE_SPEC {}
338#[doc = "`write(|w| ..)` method takes [`transfer_mode::W`](W) writer structure"]
339impl crate::Writable for TRANSFER_MODE_SPEC {
340 type Safety = crate::Unsafe;
341 const ZERO_TO_MODIFY_FIELDS_BITMAP: u16 = 0;
342 const ONE_TO_MODIFY_FIELDS_BITMAP: u16 = 0;
343}
344#[doc = "`reset()` method sets TRANSFER_MODE to value 0"]
345impl crate::Resettable for TRANSFER_MODE_SPEC {
346 const RESET_VALUE: u16 = 0;
347}