xmc4800/sdmmc/
present_state.rs

1#[doc = "Register `PRESENT_STATE` reader"]
2pub type R = crate::R<PRESENT_STATE_SPEC>;
3#[doc = "Field `COMMAND_INHIBIT_CMD` reader - Command Inhibit (CMD)"]
4pub type COMMAND_INHIBIT_CMD_R = crate::BitReader;
5#[doc = "Command Inhibit (DAT)\n\nValue on reset: 0"]
6#[derive(Clone, Copy, Debug, PartialEq, Eq)]
7pub enum COMMAND_INHIBIT_DAT_A {
8    #[doc = "0: Can issue command which uses the DAT line"]
9    VALUE1 = 0,
10    #[doc = "1: Cannot issue command which uses the DAT line"]
11    VALUE2 = 1,
12}
13impl From<COMMAND_INHIBIT_DAT_A> for bool {
14    #[inline(always)]
15    fn from(variant: COMMAND_INHIBIT_DAT_A) -> Self {
16        variant as u8 != 0
17    }
18}
19#[doc = "Field `COMMAND_INHIBIT_DAT` reader - Command Inhibit (DAT)"]
20pub type COMMAND_INHIBIT_DAT_R = crate::BitReader<COMMAND_INHIBIT_DAT_A>;
21impl COMMAND_INHIBIT_DAT_R {
22    #[doc = "Get enumerated values variant"]
23    #[inline(always)]
24    pub const fn variant(&self) -> COMMAND_INHIBIT_DAT_A {
25        match self.bits {
26            false => COMMAND_INHIBIT_DAT_A::VALUE1,
27            true => COMMAND_INHIBIT_DAT_A::VALUE2,
28        }
29    }
30    #[doc = "Can issue command which uses the DAT line"]
31    #[inline(always)]
32    pub fn is_value1(&self) -> bool {
33        *self == COMMAND_INHIBIT_DAT_A::VALUE1
34    }
35    #[doc = "Cannot issue command which uses the DAT line"]
36    #[inline(always)]
37    pub fn is_value2(&self) -> bool {
38        *self == COMMAND_INHIBIT_DAT_A::VALUE2
39    }
40}
41#[doc = "DAT Line Active\n\nValue on reset: 0"]
42#[derive(Clone, Copy, Debug, PartialEq, Eq)]
43pub enum DAT_LINE_ACTIVE_A {
44    #[doc = "0: DAT line inactive"]
45    VALUE1 = 0,
46    #[doc = "1: DAT line active"]
47    VALUE2 = 1,
48}
49impl From<DAT_LINE_ACTIVE_A> for bool {
50    #[inline(always)]
51    fn from(variant: DAT_LINE_ACTIVE_A) -> Self {
52        variant as u8 != 0
53    }
54}
55#[doc = "Field `DAT_LINE_ACTIVE` reader - DAT Line Active"]
56pub type DAT_LINE_ACTIVE_R = crate::BitReader<DAT_LINE_ACTIVE_A>;
57impl DAT_LINE_ACTIVE_R {
58    #[doc = "Get enumerated values variant"]
59    #[inline(always)]
60    pub const fn variant(&self) -> DAT_LINE_ACTIVE_A {
61        match self.bits {
62            false => DAT_LINE_ACTIVE_A::VALUE1,
63            true => DAT_LINE_ACTIVE_A::VALUE2,
64        }
65    }
66    #[doc = "DAT line inactive"]
67    #[inline(always)]
68    pub fn is_value1(&self) -> bool {
69        *self == DAT_LINE_ACTIVE_A::VALUE1
70    }
71    #[doc = "DAT line active"]
72    #[inline(always)]
73    pub fn is_value2(&self) -> bool {
74        *self == DAT_LINE_ACTIVE_A::VALUE2
75    }
76}
77#[doc = "Write Transfer Active\n\nValue on reset: 0"]
78#[derive(Clone, Copy, Debug, PartialEq, Eq)]
79pub enum WRITE_TRANSFER_ACTIVE_A {
80    #[doc = "0: No valid data"]
81    VALUE1 = 0,
82    #[doc = "1: Transferring data"]
83    VALUE2 = 1,
84}
85impl From<WRITE_TRANSFER_ACTIVE_A> for bool {
86    #[inline(always)]
87    fn from(variant: WRITE_TRANSFER_ACTIVE_A) -> Self {
88        variant as u8 != 0
89    }
90}
91#[doc = "Field `WRITE_TRANSFER_ACTIVE` reader - Write Transfer Active"]
92pub type WRITE_TRANSFER_ACTIVE_R = crate::BitReader<WRITE_TRANSFER_ACTIVE_A>;
93impl WRITE_TRANSFER_ACTIVE_R {
94    #[doc = "Get enumerated values variant"]
95    #[inline(always)]
96    pub const fn variant(&self) -> WRITE_TRANSFER_ACTIVE_A {
97        match self.bits {
98            false => WRITE_TRANSFER_ACTIVE_A::VALUE1,
99            true => WRITE_TRANSFER_ACTIVE_A::VALUE2,
100        }
101    }
102    #[doc = "No valid data"]
103    #[inline(always)]
104    pub fn is_value1(&self) -> bool {
105        *self == WRITE_TRANSFER_ACTIVE_A::VALUE1
106    }
107    #[doc = "Transferring data"]
108    #[inline(always)]
109    pub fn is_value2(&self) -> bool {
110        *self == WRITE_TRANSFER_ACTIVE_A::VALUE2
111    }
112}
113#[doc = "Read Transfer Active\n\nValue on reset: 0"]
114#[derive(Clone, Copy, Debug, PartialEq, Eq)]
115pub enum READ_TRANSFER_ACTIVE_A {
116    #[doc = "0: No valid data"]
117    VALUE1 = 0,
118    #[doc = "1: Transferring data"]
119    VALUE2 = 1,
120}
121impl From<READ_TRANSFER_ACTIVE_A> for bool {
122    #[inline(always)]
123    fn from(variant: READ_TRANSFER_ACTIVE_A) -> Self {
124        variant as u8 != 0
125    }
126}
127#[doc = "Field `READ_TRANSFER_ACTIVE` reader - Read Transfer Active"]
128pub type READ_TRANSFER_ACTIVE_R = crate::BitReader<READ_TRANSFER_ACTIVE_A>;
129impl READ_TRANSFER_ACTIVE_R {
130    #[doc = "Get enumerated values variant"]
131    #[inline(always)]
132    pub const fn variant(&self) -> READ_TRANSFER_ACTIVE_A {
133        match self.bits {
134            false => READ_TRANSFER_ACTIVE_A::VALUE1,
135            true => READ_TRANSFER_ACTIVE_A::VALUE2,
136        }
137    }
138    #[doc = "No valid data"]
139    #[inline(always)]
140    pub fn is_value1(&self) -> bool {
141        *self == READ_TRANSFER_ACTIVE_A::VALUE1
142    }
143    #[doc = "Transferring data"]
144    #[inline(always)]
145    pub fn is_value2(&self) -> bool {
146        *self == READ_TRANSFER_ACTIVE_A::VALUE2
147    }
148}
149#[doc = "Buffer Write Enable\n\nValue on reset: 0"]
150#[derive(Clone, Copy, Debug, PartialEq, Eq)]
151pub enum BUFFER_WRITE_ENABLE_A {
152    #[doc = "0: Write Disable"]
153    VALUE1 = 0,
154    #[doc = "1: Write Enable."]
155    VALUE2 = 1,
156}
157impl From<BUFFER_WRITE_ENABLE_A> for bool {
158    #[inline(always)]
159    fn from(variant: BUFFER_WRITE_ENABLE_A) -> Self {
160        variant as u8 != 0
161    }
162}
163#[doc = "Field `BUFFER_WRITE_ENABLE` reader - Buffer Write Enable"]
164pub type BUFFER_WRITE_ENABLE_R = crate::BitReader<BUFFER_WRITE_ENABLE_A>;
165impl BUFFER_WRITE_ENABLE_R {
166    #[doc = "Get enumerated values variant"]
167    #[inline(always)]
168    pub const fn variant(&self) -> BUFFER_WRITE_ENABLE_A {
169        match self.bits {
170            false => BUFFER_WRITE_ENABLE_A::VALUE1,
171            true => BUFFER_WRITE_ENABLE_A::VALUE2,
172        }
173    }
174    #[doc = "Write Disable"]
175    #[inline(always)]
176    pub fn is_value1(&self) -> bool {
177        *self == BUFFER_WRITE_ENABLE_A::VALUE1
178    }
179    #[doc = "Write Enable."]
180    #[inline(always)]
181    pub fn is_value2(&self) -> bool {
182        *self == BUFFER_WRITE_ENABLE_A::VALUE2
183    }
184}
185#[doc = "Buffer Read Enable\n\nValue on reset: 0"]
186#[derive(Clone, Copy, Debug, PartialEq, Eq)]
187pub enum BUFFER_READ_ENABLE_A {
188    #[doc = "0: Read Disable"]
189    VALUE1 = 0,
190    #[doc = "1: Read Enable."]
191    VALUE2 = 1,
192}
193impl From<BUFFER_READ_ENABLE_A> for bool {
194    #[inline(always)]
195    fn from(variant: BUFFER_READ_ENABLE_A) -> Self {
196        variant as u8 != 0
197    }
198}
199#[doc = "Field `BUFFER_READ_ENABLE` reader - Buffer Read Enable"]
200pub type BUFFER_READ_ENABLE_R = crate::BitReader<BUFFER_READ_ENABLE_A>;
201impl BUFFER_READ_ENABLE_R {
202    #[doc = "Get enumerated values variant"]
203    #[inline(always)]
204    pub const fn variant(&self) -> BUFFER_READ_ENABLE_A {
205        match self.bits {
206            false => BUFFER_READ_ENABLE_A::VALUE1,
207            true => BUFFER_READ_ENABLE_A::VALUE2,
208        }
209    }
210    #[doc = "Read Disable"]
211    #[inline(always)]
212    pub fn is_value1(&self) -> bool {
213        *self == BUFFER_READ_ENABLE_A::VALUE1
214    }
215    #[doc = "Read Enable."]
216    #[inline(always)]
217    pub fn is_value2(&self) -> bool {
218        *self == BUFFER_READ_ENABLE_A::VALUE2
219    }
220}
221#[doc = "Card Inserted\n\nValue on reset: 0"]
222#[derive(Clone, Copy, Debug, PartialEq, Eq)]
223pub enum CARD_INSERTED_A {
224    #[doc = "0: Reset or Debouncing or No Card"]
225    VALUE1 = 0,
226    #[doc = "1: Card Inserted"]
227    VALUE2 = 1,
228}
229impl From<CARD_INSERTED_A> for bool {
230    #[inline(always)]
231    fn from(variant: CARD_INSERTED_A) -> Self {
232        variant as u8 != 0
233    }
234}
235#[doc = "Field `CARD_INSERTED` reader - Card Inserted"]
236pub type CARD_INSERTED_R = crate::BitReader<CARD_INSERTED_A>;
237impl CARD_INSERTED_R {
238    #[doc = "Get enumerated values variant"]
239    #[inline(always)]
240    pub const fn variant(&self) -> CARD_INSERTED_A {
241        match self.bits {
242            false => CARD_INSERTED_A::VALUE1,
243            true => CARD_INSERTED_A::VALUE2,
244        }
245    }
246    #[doc = "Reset or Debouncing or No Card"]
247    #[inline(always)]
248    pub fn is_value1(&self) -> bool {
249        *self == CARD_INSERTED_A::VALUE1
250    }
251    #[doc = "Card Inserted"]
252    #[inline(always)]
253    pub fn is_value2(&self) -> bool {
254        *self == CARD_INSERTED_A::VALUE2
255    }
256}
257#[doc = "Card State Stable\n\nValue on reset: 0"]
258#[derive(Clone, Copy, Debug, PartialEq, Eq)]
259pub enum CARD_STATE_STABLE_A {
260    #[doc = "0: Reset of Debouncing"]
261    VALUE1 = 0,
262    #[doc = "1: No Card or Inserted"]
263    VALUE2 = 1,
264}
265impl From<CARD_STATE_STABLE_A> for bool {
266    #[inline(always)]
267    fn from(variant: CARD_STATE_STABLE_A) -> Self {
268        variant as u8 != 0
269    }
270}
271#[doc = "Field `CARD_STATE_STABLE` reader - Card State Stable"]
272pub type CARD_STATE_STABLE_R = crate::BitReader<CARD_STATE_STABLE_A>;
273impl CARD_STATE_STABLE_R {
274    #[doc = "Get enumerated values variant"]
275    #[inline(always)]
276    pub const fn variant(&self) -> CARD_STATE_STABLE_A {
277        match self.bits {
278            false => CARD_STATE_STABLE_A::VALUE1,
279            true => CARD_STATE_STABLE_A::VALUE2,
280        }
281    }
282    #[doc = "Reset of Debouncing"]
283    #[inline(always)]
284    pub fn is_value1(&self) -> bool {
285        *self == CARD_STATE_STABLE_A::VALUE1
286    }
287    #[doc = "No Card or Inserted"]
288    #[inline(always)]
289    pub fn is_value2(&self) -> bool {
290        *self == CARD_STATE_STABLE_A::VALUE2
291    }
292}
293#[doc = "Card Detect Pin Level\n\nValue on reset: 0"]
294#[derive(Clone, Copy, Debug, PartialEq, Eq)]
295pub enum CARD_DETECT_PIN_LEVEL_A {
296    #[doc = "0: No Card present (SDCD = 1)"]
297    VALUE1 = 0,
298    #[doc = "1: Card present (SDCD = 0)"]
299    VALUE2 = 1,
300}
301impl From<CARD_DETECT_PIN_LEVEL_A> for bool {
302    #[inline(always)]
303    fn from(variant: CARD_DETECT_PIN_LEVEL_A) -> Self {
304        variant as u8 != 0
305    }
306}
307#[doc = "Field `CARD_DETECT_PIN_LEVEL` reader - Card Detect Pin Level"]
308pub type CARD_DETECT_PIN_LEVEL_R = crate::BitReader<CARD_DETECT_PIN_LEVEL_A>;
309impl CARD_DETECT_PIN_LEVEL_R {
310    #[doc = "Get enumerated values variant"]
311    #[inline(always)]
312    pub const fn variant(&self) -> CARD_DETECT_PIN_LEVEL_A {
313        match self.bits {
314            false => CARD_DETECT_PIN_LEVEL_A::VALUE1,
315            true => CARD_DETECT_PIN_LEVEL_A::VALUE2,
316        }
317    }
318    #[doc = "No Card present (SDCD = 1)"]
319    #[inline(always)]
320    pub fn is_value1(&self) -> bool {
321        *self == CARD_DETECT_PIN_LEVEL_A::VALUE1
322    }
323    #[doc = "Card present (SDCD = 0)"]
324    #[inline(always)]
325    pub fn is_value2(&self) -> bool {
326        *self == CARD_DETECT_PIN_LEVEL_A::VALUE2
327    }
328}
329#[doc = "Write Protect Switch Pin Level\n\nValue on reset: 0"]
330#[derive(Clone, Copy, Debug, PartialEq, Eq)]
331pub enum WRITE_PROTECT_PIN_LEVEL_A {
332    #[doc = "0: Write protected (SDWP = 1)"]
333    VALUE1 = 0,
334    #[doc = "1: Write enabled (SDWP = 0)"]
335    VALUE2 = 1,
336}
337impl From<WRITE_PROTECT_PIN_LEVEL_A> for bool {
338    #[inline(always)]
339    fn from(variant: WRITE_PROTECT_PIN_LEVEL_A) -> Self {
340        variant as u8 != 0
341    }
342}
343#[doc = "Field `WRITE_PROTECT_PIN_LEVEL` reader - Write Protect Switch Pin Level"]
344pub type WRITE_PROTECT_PIN_LEVEL_R = crate::BitReader<WRITE_PROTECT_PIN_LEVEL_A>;
345impl WRITE_PROTECT_PIN_LEVEL_R {
346    #[doc = "Get enumerated values variant"]
347    #[inline(always)]
348    pub const fn variant(&self) -> WRITE_PROTECT_PIN_LEVEL_A {
349        match self.bits {
350            false => WRITE_PROTECT_PIN_LEVEL_A::VALUE1,
351            true => WRITE_PROTECT_PIN_LEVEL_A::VALUE2,
352        }
353    }
354    #[doc = "Write protected (SDWP = 1)"]
355    #[inline(always)]
356    pub fn is_value1(&self) -> bool {
357        *self == WRITE_PROTECT_PIN_LEVEL_A::VALUE1
358    }
359    #[doc = "Write enabled (SDWP = 0)"]
360    #[inline(always)]
361    pub fn is_value2(&self) -> bool {
362        *self == WRITE_PROTECT_PIN_LEVEL_A::VALUE2
363    }
364}
365#[doc = "Field `DAT_3_0_PIN_LEVEL` reader - Line Signal Level"]
366pub type DAT_3_0_PIN_LEVEL_R = crate::FieldReader;
367#[doc = "Field `CMD_LINE_LEVEL` reader - CMD Line Signal Level"]
368pub type CMD_LINE_LEVEL_R = crate::BitReader;
369#[doc = "Field `DAT_7_4_PIN_LEVEL` reader - Line Signal Level"]
370pub type DAT_7_4_PIN_LEVEL_R = crate::FieldReader;
371impl R {
372    #[doc = "Bit 0 - Command Inhibit (CMD)"]
373    #[inline(always)]
374    pub fn command_inhibit_cmd(&self) -> COMMAND_INHIBIT_CMD_R {
375        COMMAND_INHIBIT_CMD_R::new((self.bits & 1) != 0)
376    }
377    #[doc = "Bit 1 - Command Inhibit (DAT)"]
378    #[inline(always)]
379    pub fn command_inhibit_dat(&self) -> COMMAND_INHIBIT_DAT_R {
380        COMMAND_INHIBIT_DAT_R::new(((self.bits >> 1) & 1) != 0)
381    }
382    #[doc = "Bit 2 - DAT Line Active"]
383    #[inline(always)]
384    pub fn dat_line_active(&self) -> DAT_LINE_ACTIVE_R {
385        DAT_LINE_ACTIVE_R::new(((self.bits >> 2) & 1) != 0)
386    }
387    #[doc = "Bit 8 - Write Transfer Active"]
388    #[inline(always)]
389    pub fn write_transfer_active(&self) -> WRITE_TRANSFER_ACTIVE_R {
390        WRITE_TRANSFER_ACTIVE_R::new(((self.bits >> 8) & 1) != 0)
391    }
392    #[doc = "Bit 9 - Read Transfer Active"]
393    #[inline(always)]
394    pub fn read_transfer_active(&self) -> READ_TRANSFER_ACTIVE_R {
395        READ_TRANSFER_ACTIVE_R::new(((self.bits >> 9) & 1) != 0)
396    }
397    #[doc = "Bit 10 - Buffer Write Enable"]
398    #[inline(always)]
399    pub fn buffer_write_enable(&self) -> BUFFER_WRITE_ENABLE_R {
400        BUFFER_WRITE_ENABLE_R::new(((self.bits >> 10) & 1) != 0)
401    }
402    #[doc = "Bit 11 - Buffer Read Enable"]
403    #[inline(always)]
404    pub fn buffer_read_enable(&self) -> BUFFER_READ_ENABLE_R {
405        BUFFER_READ_ENABLE_R::new(((self.bits >> 11) & 1) != 0)
406    }
407    #[doc = "Bit 16 - Card Inserted"]
408    #[inline(always)]
409    pub fn card_inserted(&self) -> CARD_INSERTED_R {
410        CARD_INSERTED_R::new(((self.bits >> 16) & 1) != 0)
411    }
412    #[doc = "Bit 17 - Card State Stable"]
413    #[inline(always)]
414    pub fn card_state_stable(&self) -> CARD_STATE_STABLE_R {
415        CARD_STATE_STABLE_R::new(((self.bits >> 17) & 1) != 0)
416    }
417    #[doc = "Bit 18 - Card Detect Pin Level"]
418    #[inline(always)]
419    pub fn card_detect_pin_level(&self) -> CARD_DETECT_PIN_LEVEL_R {
420        CARD_DETECT_PIN_LEVEL_R::new(((self.bits >> 18) & 1) != 0)
421    }
422    #[doc = "Bit 19 - Write Protect Switch Pin Level"]
423    #[inline(always)]
424    pub fn write_protect_pin_level(&self) -> WRITE_PROTECT_PIN_LEVEL_R {
425        WRITE_PROTECT_PIN_LEVEL_R::new(((self.bits >> 19) & 1) != 0)
426    }
427    #[doc = "Bits 20:23 - Line Signal Level"]
428    #[inline(always)]
429    pub fn dat_3_0_pin_level(&self) -> DAT_3_0_PIN_LEVEL_R {
430        DAT_3_0_PIN_LEVEL_R::new(((self.bits >> 20) & 0x0f) as u8)
431    }
432    #[doc = "Bit 24 - CMD Line Signal Level"]
433    #[inline(always)]
434    pub fn cmd_line_level(&self) -> CMD_LINE_LEVEL_R {
435        CMD_LINE_LEVEL_R::new(((self.bits >> 24) & 1) != 0)
436    }
437    #[doc = "Bits 25:28 - Line Signal Level"]
438    #[inline(always)]
439    pub fn dat_7_4_pin_level(&self) -> DAT_7_4_PIN_LEVEL_R {
440        DAT_7_4_PIN_LEVEL_R::new(((self.bits >> 25) & 0x0f) as u8)
441    }
442}
443#[doc = "Present State Register\n\nYou can [`read`](crate::Reg::read) this register and get [`present_state::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
444pub struct PRESENT_STATE_SPEC;
445impl crate::RegisterSpec for PRESENT_STATE_SPEC {
446    type Ux = u32;
447}
448#[doc = "`read()` method returns [`present_state::R`](R) reader structure"]
449impl crate::Readable for PRESENT_STATE_SPEC {}
450#[doc = "`reset()` method sets PRESENT_STATE to value 0"]
451impl crate::Resettable for PRESENT_STATE_SPEC {
452    const RESET_VALUE: u32 = 0;
453}