efm32gg12b430_pac/sdio/
hostctrl1.rs

1#[doc = "Register `HOSTCTRL1` reader"]
2pub struct R(crate::R<HOSTCTRL1_SPEC>);
3impl core::ops::Deref for R {
4    type Target = crate::R<HOSTCTRL1_SPEC>;
5    #[inline(always)]
6    fn deref(&self) -> &Self::Target {
7        &self.0
8    }
9}
10impl From<crate::R<HOSTCTRL1_SPEC>> for R {
11    #[inline(always)]
12    fn from(reader: crate::R<HOSTCTRL1_SPEC>) -> Self {
13        R(reader)
14    }
15}
16#[doc = "Register `HOSTCTRL1` writer"]
17pub struct W(crate::W<HOSTCTRL1_SPEC>);
18impl core::ops::Deref for W {
19    type Target = crate::W<HOSTCTRL1_SPEC>;
20    #[inline(always)]
21    fn deref(&self) -> &Self::Target {
22        &self.0
23    }
24}
25impl core::ops::DerefMut for W {
26    #[inline(always)]
27    fn deref_mut(&mut self) -> &mut Self::Target {
28        &mut self.0
29    }
30}
31impl From<crate::W<HOSTCTRL1_SPEC>> for W {
32    #[inline(always)]
33    fn from(writer: crate::W<HOSTCTRL1_SPEC>) -> Self {
34        W(writer)
35    }
36}
37#[doc = "Field `LEDCTRL` reader - LED Control"]
38pub type LEDCTRL_R = crate::BitReader<bool>;
39#[doc = "Field `LEDCTRL` writer - LED Control"]
40pub type LEDCTRL_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 0>;
41#[doc = "Field `DATTRANWD` reader - Data Transfer Width 1-bit or 4-bit Mode"]
42pub type DATTRANWD_R = crate::BitReader<bool>;
43#[doc = "Field `DATTRANWD` writer - Data Transfer Width 1-bit or 4-bit Mode"]
44pub type DATTRANWD_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 1>;
45#[doc = "Field `HSEN` reader - High Speed Enable"]
46pub type HSEN_R = crate::BitReader<bool>;
47#[doc = "Field `HSEN` writer - High Speed Enable"]
48pub type HSEN_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 2>;
49#[doc = "DMA Select\n\nValue on reset: 0"]
50#[derive(Clone, Copy, Debug, PartialEq)]
51#[repr(u8)]
52pub enum DMASEL_A {
53    #[doc = "0: SDMA selected"]
54    SDMA = 0,
55    #[doc = "1: 32-bit ADMA1 selected"]
56    ADMA1 = 1,
57    #[doc = "2: 32-bit ADMA2 selected"]
58    ADMA2 = 2,
59    #[doc = "3: 64-bit ADMA2 selected"]
60    _64BITADMA2 = 3,
61}
62impl From<DMASEL_A> for u8 {
63    #[inline(always)]
64    fn from(variant: DMASEL_A) -> Self {
65        variant as _
66    }
67}
68#[doc = "Field `DMASEL` reader - DMA Select"]
69pub type DMASEL_R = crate::FieldReader<u8, DMASEL_A>;
70impl DMASEL_R {
71    #[doc = "Get enumerated values variant"]
72    #[inline(always)]
73    pub fn variant(&self) -> DMASEL_A {
74        match self.bits {
75            0 => DMASEL_A::SDMA,
76            1 => DMASEL_A::ADMA1,
77            2 => DMASEL_A::ADMA2,
78            3 => DMASEL_A::_64BITADMA2,
79            _ => unreachable!(),
80        }
81    }
82    #[doc = "Checks if the value of the field is `SDMA`"]
83    #[inline(always)]
84    pub fn is_sdma(&self) -> bool {
85        *self == DMASEL_A::SDMA
86    }
87    #[doc = "Checks if the value of the field is `ADMA1`"]
88    #[inline(always)]
89    pub fn is_adma1(&self) -> bool {
90        *self == DMASEL_A::ADMA1
91    }
92    #[doc = "Checks if the value of the field is `ADMA2`"]
93    #[inline(always)]
94    pub fn is_adma2(&self) -> bool {
95        *self == DMASEL_A::ADMA2
96    }
97    #[doc = "Checks if the value of the field is `_64BITADMA2`"]
98    #[inline(always)]
99    pub fn is_64bitadma2(&self) -> bool {
100        *self == DMASEL_A::_64BITADMA2
101    }
102}
103#[doc = "Field `DMASEL` writer - DMA Select"]
104pub type DMASEL_W<'a> = crate::FieldWriterSafe<'a, u32, HOSTCTRL1_SPEC, u8, DMASEL_A, 2, 3>;
105impl<'a> DMASEL_W<'a> {
106    #[doc = "SDMA selected"]
107    #[inline(always)]
108    pub fn sdma(self) -> &'a mut W {
109        self.variant(DMASEL_A::SDMA)
110    }
111    #[doc = "32-bit ADMA1 selected"]
112    #[inline(always)]
113    pub fn adma1(self) -> &'a mut W {
114        self.variant(DMASEL_A::ADMA1)
115    }
116    #[doc = "32-bit ADMA2 selected"]
117    #[inline(always)]
118    pub fn adma2(self) -> &'a mut W {
119        self.variant(DMASEL_A::ADMA2)
120    }
121    #[doc = "64-bit ADMA2 selected"]
122    #[inline(always)]
123    pub fn _64bitadma2(self) -> &'a mut W {
124        self.variant(DMASEL_A::_64BITADMA2)
125    }
126}
127#[doc = "Field `EXTDATTRANWD` reader - Extended Data Transfer Width"]
128pub type EXTDATTRANWD_R = crate::BitReader<bool>;
129#[doc = "Field `EXTDATTRANWD` writer - Extended Data Transfer Width"]
130pub type EXTDATTRANWD_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 5>;
131#[doc = "Field `CDTSTLVL` reader - Card Detect Test Level"]
132pub type CDTSTLVL_R = crate::BitReader<bool>;
133#[doc = "Field `CDTSTLVL` writer - Card Detect Test Level"]
134pub type CDTSTLVL_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 6>;
135#[doc = "Field `CDSIGDET` reader - Card Detetct Signal Detection"]
136pub type CDSIGDET_R = crate::BitReader<bool>;
137#[doc = "Field `CDSIGDET` writer - Card Detetct Signal Detection"]
138pub type CDSIGDET_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 7>;
139#[doc = "Field `SDBUSPOWER` reader - SD Bus Power"]
140pub type SDBUSPOWER_R = crate::BitReader<bool>;
141#[doc = "Field `SDBUSPOWER` writer - SD Bus Power"]
142pub type SDBUSPOWER_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 8>;
143#[doc = "SD Bus Voltage Select\n\nValue on reset: 0"]
144#[derive(Clone, Copy, Debug, PartialEq)]
145#[repr(u8)]
146pub enum SDBUSVOLTSEL_A {
147    #[doc = "5: Select 1.8V"]
148    _1P8V = 5,
149    #[doc = "6: Select 3.0V"]
150    _3P0V = 6,
151    #[doc = "7: Select 3.3V"]
152    _3P3V = 7,
153}
154impl From<SDBUSVOLTSEL_A> for u8 {
155    #[inline(always)]
156    fn from(variant: SDBUSVOLTSEL_A) -> Self {
157        variant as _
158    }
159}
160#[doc = "Field `SDBUSVOLTSEL` reader - SD Bus Voltage Select"]
161pub type SDBUSVOLTSEL_R = crate::FieldReader<u8, SDBUSVOLTSEL_A>;
162impl SDBUSVOLTSEL_R {
163    #[doc = "Get enumerated values variant"]
164    #[inline(always)]
165    pub fn variant(&self) -> Option<SDBUSVOLTSEL_A> {
166        match self.bits {
167            5 => Some(SDBUSVOLTSEL_A::_1P8V),
168            6 => Some(SDBUSVOLTSEL_A::_3P0V),
169            7 => Some(SDBUSVOLTSEL_A::_3P3V),
170            _ => None,
171        }
172    }
173    #[doc = "Checks if the value of the field is `_1P8V`"]
174    #[inline(always)]
175    pub fn is_1p8v(&self) -> bool {
176        *self == SDBUSVOLTSEL_A::_1P8V
177    }
178    #[doc = "Checks if the value of the field is `_3P0V`"]
179    #[inline(always)]
180    pub fn is_3p0v(&self) -> bool {
181        *self == SDBUSVOLTSEL_A::_3P0V
182    }
183    #[doc = "Checks if the value of the field is `_3P3V`"]
184    #[inline(always)]
185    pub fn is_3p3v(&self) -> bool {
186        *self == SDBUSVOLTSEL_A::_3P3V
187    }
188}
189#[doc = "Field `SDBUSVOLTSEL` writer - SD Bus Voltage Select"]
190pub type SDBUSVOLTSEL_W<'a> = crate::FieldWriter<'a, u32, HOSTCTRL1_SPEC, u8, SDBUSVOLTSEL_A, 3, 9>;
191impl<'a> SDBUSVOLTSEL_W<'a> {
192    #[doc = "Select 1.8V"]
193    #[inline(always)]
194    pub fn _1p8v(self) -> &'a mut W {
195        self.variant(SDBUSVOLTSEL_A::_1P8V)
196    }
197    #[doc = "Select 3.0V"]
198    #[inline(always)]
199    pub fn _3p0v(self) -> &'a mut W {
200        self.variant(SDBUSVOLTSEL_A::_3P0V)
201    }
202    #[doc = "Select 3.3V"]
203    #[inline(always)]
204    pub fn _3p3v(self) -> &'a mut W {
205        self.variant(SDBUSVOLTSEL_A::_3P3V)
206    }
207}
208#[doc = "Field `HRDRST` reader - Hardware Reset Signal"]
209pub type HRDRST_R = crate::BitReader<bool>;
210#[doc = "Field `HRDRST` writer - Hardware Reset Signal"]
211pub type HRDRST_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 12>;
212#[doc = "Field `STOPATBLKGAPREQ` reader - Stop at Block Gap Request"]
213pub type STOPATBLKGAPREQ_R = crate::BitReader<bool>;
214#[doc = "Field `STOPATBLKGAPREQ` writer - Stop at Block Gap Request"]
215pub type STOPATBLKGAPREQ_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 16>;
216#[doc = "Field `CONTINUEREQ` reader - Continue Request"]
217pub type CONTINUEREQ_R = crate::BitReader<bool>;
218#[doc = "Field `CONTINUEREQ` writer - Continue Request"]
219pub type CONTINUEREQ_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 17>;
220#[doc = "Field `RDWAITCTRL` reader - Read Wait Control"]
221pub type RDWAITCTRL_R = crate::BitReader<bool>;
222#[doc = "Field `RDWAITCTRL` writer - Read Wait Control"]
223pub type RDWAITCTRL_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 18>;
224#[doc = "Field `INTATBLKGAP` reader - Interrupt at Block Gap"]
225pub type INTATBLKGAP_R = crate::BitReader<bool>;
226#[doc = "Field `INTATBLKGAP` writer - Interrupt at Block Gap"]
227pub type INTATBLKGAP_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 19>;
228#[doc = "Field `SPIMODE` reader - SPI Mode Enable"]
229pub type SPIMODE_R = crate::BitReader<bool>;
230#[doc = "Field `SPIMODE` writer - SPI Mode Enable"]
231pub type SPIMODE_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 20>;
232#[doc = "Field `BOOTEN` reader - Boot Enable"]
233pub type BOOTEN_R = crate::BitReader<bool>;
234#[doc = "Field `BOOTEN` writer - Boot Enable"]
235pub type BOOTEN_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 21>;
236#[doc = "Field `ALTBOOTEN` reader - Alternate Boot Enable"]
237pub type ALTBOOTEN_R = crate::BitReader<bool>;
238#[doc = "Field `ALTBOOTEN` writer - Alternate Boot Enable"]
239pub type ALTBOOTEN_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 22>;
240#[doc = "Field `BOOTACKCHK` reader - Boot Ack Check"]
241pub type BOOTACKCHK_R = crate::BitReader<bool>;
242#[doc = "Field `BOOTACKCHK` writer - Boot Ack Check"]
243pub type BOOTACKCHK_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 23>;
244#[doc = "Field `WKUPEVNTENONCARDINT` reader - Wakeup Event Enable on Card Interrupt"]
245pub type WKUPEVNTENONCARDINT_R = crate::BitReader<bool>;
246#[doc = "Field `WKUPEVNTENONCARDINT` writer - Wakeup Event Enable on Card Interrupt"]
247pub type WKUPEVNTENONCARDINT_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 24>;
248#[doc = "Field `WKUPEVNTENONCINS` reader - Wakeup Event Enable on SD Card Insertion"]
249pub type WKUPEVNTENONCINS_R = crate::BitReader<bool>;
250#[doc = "Field `WKUPEVNTENONCINS` writer - Wakeup Event Enable on SD Card Insertion"]
251pub type WKUPEVNTENONCINS_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 25>;
252#[doc = "Field `WKUPEVNTENONCRM` reader - Wakeup Event Enable on SD Card Removal"]
253pub type WKUPEVNTENONCRM_R = crate::BitReader<bool>;
254#[doc = "Field `WKUPEVNTENONCRM` writer - Wakeup Event Enable on SD Card Removal"]
255pub type WKUPEVNTENONCRM_W<'a> = crate::BitWriter<'a, u32, HOSTCTRL1_SPEC, bool, 26>;
256impl R {
257    #[doc = "Bit 0 - LED Control"]
258    #[inline(always)]
259    pub fn ledctrl(&self) -> LEDCTRL_R {
260        LEDCTRL_R::new((self.bits & 1) != 0)
261    }
262    #[doc = "Bit 1 - Data Transfer Width 1-bit or 4-bit Mode"]
263    #[inline(always)]
264    pub fn dattranwd(&self) -> DATTRANWD_R {
265        DATTRANWD_R::new(((self.bits >> 1) & 1) != 0)
266    }
267    #[doc = "Bit 2 - High Speed Enable"]
268    #[inline(always)]
269    pub fn hsen(&self) -> HSEN_R {
270        HSEN_R::new(((self.bits >> 2) & 1) != 0)
271    }
272    #[doc = "Bits 3:4 - DMA Select"]
273    #[inline(always)]
274    pub fn dmasel(&self) -> DMASEL_R {
275        DMASEL_R::new(((self.bits >> 3) & 3) as u8)
276    }
277    #[doc = "Bit 5 - Extended Data Transfer Width"]
278    #[inline(always)]
279    pub fn extdattranwd(&self) -> EXTDATTRANWD_R {
280        EXTDATTRANWD_R::new(((self.bits >> 5) & 1) != 0)
281    }
282    #[doc = "Bit 6 - Card Detect Test Level"]
283    #[inline(always)]
284    pub fn cdtstlvl(&self) -> CDTSTLVL_R {
285        CDTSTLVL_R::new(((self.bits >> 6) & 1) != 0)
286    }
287    #[doc = "Bit 7 - Card Detetct Signal Detection"]
288    #[inline(always)]
289    pub fn cdsigdet(&self) -> CDSIGDET_R {
290        CDSIGDET_R::new(((self.bits >> 7) & 1) != 0)
291    }
292    #[doc = "Bit 8 - SD Bus Power"]
293    #[inline(always)]
294    pub fn sdbuspower(&self) -> SDBUSPOWER_R {
295        SDBUSPOWER_R::new(((self.bits >> 8) & 1) != 0)
296    }
297    #[doc = "Bits 9:11 - SD Bus Voltage Select"]
298    #[inline(always)]
299    pub fn sdbusvoltsel(&self) -> SDBUSVOLTSEL_R {
300        SDBUSVOLTSEL_R::new(((self.bits >> 9) & 7) as u8)
301    }
302    #[doc = "Bit 12 - Hardware Reset Signal"]
303    #[inline(always)]
304    pub fn hrdrst(&self) -> HRDRST_R {
305        HRDRST_R::new(((self.bits >> 12) & 1) != 0)
306    }
307    #[doc = "Bit 16 - Stop at Block Gap Request"]
308    #[inline(always)]
309    pub fn stopatblkgapreq(&self) -> STOPATBLKGAPREQ_R {
310        STOPATBLKGAPREQ_R::new(((self.bits >> 16) & 1) != 0)
311    }
312    #[doc = "Bit 17 - Continue Request"]
313    #[inline(always)]
314    pub fn continuereq(&self) -> CONTINUEREQ_R {
315        CONTINUEREQ_R::new(((self.bits >> 17) & 1) != 0)
316    }
317    #[doc = "Bit 18 - Read Wait Control"]
318    #[inline(always)]
319    pub fn rdwaitctrl(&self) -> RDWAITCTRL_R {
320        RDWAITCTRL_R::new(((self.bits >> 18) & 1) != 0)
321    }
322    #[doc = "Bit 19 - Interrupt at Block Gap"]
323    #[inline(always)]
324    pub fn intatblkgap(&self) -> INTATBLKGAP_R {
325        INTATBLKGAP_R::new(((self.bits >> 19) & 1) != 0)
326    }
327    #[doc = "Bit 20 - SPI Mode Enable"]
328    #[inline(always)]
329    pub fn spimode(&self) -> SPIMODE_R {
330        SPIMODE_R::new(((self.bits >> 20) & 1) != 0)
331    }
332    #[doc = "Bit 21 - Boot Enable"]
333    #[inline(always)]
334    pub fn booten(&self) -> BOOTEN_R {
335        BOOTEN_R::new(((self.bits >> 21) & 1) != 0)
336    }
337    #[doc = "Bit 22 - Alternate Boot Enable"]
338    #[inline(always)]
339    pub fn altbooten(&self) -> ALTBOOTEN_R {
340        ALTBOOTEN_R::new(((self.bits >> 22) & 1) != 0)
341    }
342    #[doc = "Bit 23 - Boot Ack Check"]
343    #[inline(always)]
344    pub fn bootackchk(&self) -> BOOTACKCHK_R {
345        BOOTACKCHK_R::new(((self.bits >> 23) & 1) != 0)
346    }
347    #[doc = "Bit 24 - Wakeup Event Enable on Card Interrupt"]
348    #[inline(always)]
349    pub fn wkupevntenoncardint(&self) -> WKUPEVNTENONCARDINT_R {
350        WKUPEVNTENONCARDINT_R::new(((self.bits >> 24) & 1) != 0)
351    }
352    #[doc = "Bit 25 - Wakeup Event Enable on SD Card Insertion"]
353    #[inline(always)]
354    pub fn wkupevntenoncins(&self) -> WKUPEVNTENONCINS_R {
355        WKUPEVNTENONCINS_R::new(((self.bits >> 25) & 1) != 0)
356    }
357    #[doc = "Bit 26 - Wakeup Event Enable on SD Card Removal"]
358    #[inline(always)]
359    pub fn wkupevntenoncrm(&self) -> WKUPEVNTENONCRM_R {
360        WKUPEVNTENONCRM_R::new(((self.bits >> 26) & 1) != 0)
361    }
362}
363impl W {
364    #[doc = "Bit 0 - LED Control"]
365    #[inline(always)]
366    pub fn ledctrl(&mut self) -> LEDCTRL_W {
367        LEDCTRL_W::new(self)
368    }
369    #[doc = "Bit 1 - Data Transfer Width 1-bit or 4-bit Mode"]
370    #[inline(always)]
371    pub fn dattranwd(&mut self) -> DATTRANWD_W {
372        DATTRANWD_W::new(self)
373    }
374    #[doc = "Bit 2 - High Speed Enable"]
375    #[inline(always)]
376    pub fn hsen(&mut self) -> HSEN_W {
377        HSEN_W::new(self)
378    }
379    #[doc = "Bits 3:4 - DMA Select"]
380    #[inline(always)]
381    pub fn dmasel(&mut self) -> DMASEL_W {
382        DMASEL_W::new(self)
383    }
384    #[doc = "Bit 5 - Extended Data Transfer Width"]
385    #[inline(always)]
386    pub fn extdattranwd(&mut self) -> EXTDATTRANWD_W {
387        EXTDATTRANWD_W::new(self)
388    }
389    #[doc = "Bit 6 - Card Detect Test Level"]
390    #[inline(always)]
391    pub fn cdtstlvl(&mut self) -> CDTSTLVL_W {
392        CDTSTLVL_W::new(self)
393    }
394    #[doc = "Bit 7 - Card Detetct Signal Detection"]
395    #[inline(always)]
396    pub fn cdsigdet(&mut self) -> CDSIGDET_W {
397        CDSIGDET_W::new(self)
398    }
399    #[doc = "Bit 8 - SD Bus Power"]
400    #[inline(always)]
401    pub fn sdbuspower(&mut self) -> SDBUSPOWER_W {
402        SDBUSPOWER_W::new(self)
403    }
404    #[doc = "Bits 9:11 - SD Bus Voltage Select"]
405    #[inline(always)]
406    pub fn sdbusvoltsel(&mut self) -> SDBUSVOLTSEL_W {
407        SDBUSVOLTSEL_W::new(self)
408    }
409    #[doc = "Bit 12 - Hardware Reset Signal"]
410    #[inline(always)]
411    pub fn hrdrst(&mut self) -> HRDRST_W {
412        HRDRST_W::new(self)
413    }
414    #[doc = "Bit 16 - Stop at Block Gap Request"]
415    #[inline(always)]
416    pub fn stopatblkgapreq(&mut self) -> STOPATBLKGAPREQ_W {
417        STOPATBLKGAPREQ_W::new(self)
418    }
419    #[doc = "Bit 17 - Continue Request"]
420    #[inline(always)]
421    pub fn continuereq(&mut self) -> CONTINUEREQ_W {
422        CONTINUEREQ_W::new(self)
423    }
424    #[doc = "Bit 18 - Read Wait Control"]
425    #[inline(always)]
426    pub fn rdwaitctrl(&mut self) -> RDWAITCTRL_W {
427        RDWAITCTRL_W::new(self)
428    }
429    #[doc = "Bit 19 - Interrupt at Block Gap"]
430    #[inline(always)]
431    pub fn intatblkgap(&mut self) -> INTATBLKGAP_W {
432        INTATBLKGAP_W::new(self)
433    }
434    #[doc = "Bit 20 - SPI Mode Enable"]
435    #[inline(always)]
436    pub fn spimode(&mut self) -> SPIMODE_W {
437        SPIMODE_W::new(self)
438    }
439    #[doc = "Bit 21 - Boot Enable"]
440    #[inline(always)]
441    pub fn booten(&mut self) -> BOOTEN_W {
442        BOOTEN_W::new(self)
443    }
444    #[doc = "Bit 22 - Alternate Boot Enable"]
445    #[inline(always)]
446    pub fn altbooten(&mut self) -> ALTBOOTEN_W {
447        ALTBOOTEN_W::new(self)
448    }
449    #[doc = "Bit 23 - Boot Ack Check"]
450    #[inline(always)]
451    pub fn bootackchk(&mut self) -> BOOTACKCHK_W {
452        BOOTACKCHK_W::new(self)
453    }
454    #[doc = "Bit 24 - Wakeup Event Enable on Card Interrupt"]
455    #[inline(always)]
456    pub fn wkupevntenoncardint(&mut self) -> WKUPEVNTENONCARDINT_W {
457        WKUPEVNTENONCARDINT_W::new(self)
458    }
459    #[doc = "Bit 25 - Wakeup Event Enable on SD Card Insertion"]
460    #[inline(always)]
461    pub fn wkupevntenoncins(&mut self) -> WKUPEVNTENONCINS_W {
462        WKUPEVNTENONCINS_W::new(self)
463    }
464    #[doc = "Bit 26 - Wakeup Event Enable on SD Card Removal"]
465    #[inline(always)]
466    pub fn wkupevntenoncrm(&mut self) -> WKUPEVNTENONCRM_W {
467        WKUPEVNTENONCRM_W::new(self)
468    }
469    #[doc = "Writes raw bits to the register."]
470    #[inline(always)]
471    pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
472        self.0.bits(bits);
473        self
474    }
475}
476#[doc = "Host Control1, Power, Block Gap and Wakeup-up Control Register\n\nThis register you can [`read`](crate::generic::Reg::read), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [hostctrl1](index.html) module"]
477pub struct HOSTCTRL1_SPEC;
478impl crate::RegisterSpec for HOSTCTRL1_SPEC {
479    type Ux = u32;
480}
481#[doc = "`read()` method returns [hostctrl1::R](R) reader structure"]
482impl crate::Readable for HOSTCTRL1_SPEC {
483    type Reader = R;
484}
485#[doc = "`write(|w| ..)` method takes [hostctrl1::W](W) writer structure"]
486impl crate::Writable for HOSTCTRL1_SPEC {
487    type Writer = W;
488}
489#[doc = "`reset()` method sets HOSTCTRL1 to value 0x0080_0000"]
490impl crate::Resettable for HOSTCTRL1_SPEC {
491    #[inline(always)]
492    fn reset_value() -> Self::Ux {
493        0x0080_0000
494    }
495}