cyt4bb_a/m0/sdhc0/core/
bgap_ctrl_r.rs

1#[doc = "Register `BGAP_CTRL_R` reader"]
2pub struct R(crate::R<BGAP_CTRL_R_SPEC>);
3impl core::ops::Deref for R {
4    type Target = crate::R<BGAP_CTRL_R_SPEC>;
5    #[inline(always)]
6    fn deref(&self) -> &Self::Target {
7        &self.0
8    }
9}
10impl From<crate::R<BGAP_CTRL_R_SPEC>> for R {
11    #[inline(always)]
12    fn from(reader: crate::R<BGAP_CTRL_R_SPEC>) -> Self {
13        R(reader)
14    }
15}
16#[doc = "Register `BGAP_CTRL_R` writer"]
17pub struct W(crate::W<BGAP_CTRL_R_SPEC>);
18impl core::ops::Deref for W {
19    type Target = crate::W<BGAP_CTRL_R_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<BGAP_CTRL_R_SPEC>> for W {
32    #[inline(always)]
33    fn from(writer: crate::W<BGAP_CTRL_R_SPEC>) -> Self {
34        W(writer)
35    }
36}
37#[doc = "Field `STOP_BG_REQ` reader - Stop At Block Gap Request This bit is used to stop executing read and write transactions at the next block gap for non-DMA, SDMA, and ADMA transfers. Values: - 0x0 (XFER): Transfer - 0x1 (STOP): Stop"]
38pub type STOP_BG_REQ_R = crate::BitReader<bool>;
39#[doc = "Field `STOP_BG_REQ` writer - Stop At Block Gap Request This bit is used to stop executing read and write transactions at the next block gap for non-DMA, SDMA, and ADMA transfers. Values: - 0x0 (XFER): Transfer - 0x1 (STOP): Stop"]
40pub type STOP_BG_REQ_W<'a, const O: u8> = crate::BitWriter<'a, u8, BGAP_CTRL_R_SPEC, bool, O>;
41#[doc = "Field `CONTINUE_REQ` reader - Continue Request This bit is used to restart the transaction, which was stopped using the Stop At Block Gap Request. The Host Controller automatically clears this bit when the transaction restarts. If stop at block gap request is set to 1, any write to this bit is ignored. Values: - 0x0 (NO_AFFECT): No Affect - 0x1 (RESTART): Restart"]
42pub type CONTINUE_REQ_R = crate::BitReader<bool>;
43#[doc = "Field `CONTINUE_REQ` writer - Continue Request This bit is used to restart the transaction, which was stopped using the Stop At Block Gap Request. The Host Controller automatically clears this bit when the transaction restarts. If stop at block gap request is set to 1, any write to this bit is ignored. Values: - 0x0 (NO_AFFECT): No Affect - 0x1 (RESTART): Restart"]
44pub type CONTINUE_REQ_W<'a, const O: u8> = crate::BitWriter<'a, u8, BGAP_CTRL_R_SPEC, bool, O>;
45#[doc = "Field `RD_WAIT_CTRL` reader - N/A"]
46pub type RD_WAIT_CTRL_R = crate::BitReader<bool>;
47#[doc = "Field `RD_WAIT_CTRL` writer - N/A"]
48pub type RD_WAIT_CTRL_W<'a, const O: u8> = crate::BitWriter<'a, u8, BGAP_CTRL_R_SPEC, bool, O>;
49#[doc = "Field `INT_AT_BGAP` reader - Interrupt At Block Gap This bit is valid only in the 4-bit mode of an SDIO card and is used to select a sample point in the interrupt cycle. Setting to 1 enables interrupt detection at the block gap for a multiple block transfer. Values: - 0x0 (DISABLE): Disabled - 0x1 (ENABLE): Enabled"]
50pub type INT_AT_BGAP_R = crate::BitReader<bool>;
51#[doc = "Field `INT_AT_BGAP` writer - Interrupt At Block Gap This bit is valid only in the 4-bit mode of an SDIO card and is used to select a sample point in the interrupt cycle. Setting to 1 enables interrupt detection at the block gap for a multiple block transfer. Values: - 0x0 (DISABLE): Disabled - 0x1 (ENABLE): Enabled"]
52pub type INT_AT_BGAP_W<'a, const O: u8> = crate::BitWriter<'a, u8, BGAP_CTRL_R_SPEC, bool, O>;
53impl R {
54    #[doc = "Bit 0 - Stop At Block Gap Request This bit is used to stop executing read and write transactions at the next block gap for non-DMA, SDMA, and ADMA transfers. Values: - 0x0 (XFER): Transfer - 0x1 (STOP): Stop"]
55    #[inline(always)]
56    pub fn stop_bg_req(&self) -> STOP_BG_REQ_R {
57        STOP_BG_REQ_R::new((self.bits & 1) != 0)
58    }
59    #[doc = "Bit 1 - Continue Request This bit is used to restart the transaction, which was stopped using the Stop At Block Gap Request. The Host Controller automatically clears this bit when the transaction restarts. If stop at block gap request is set to 1, any write to this bit is ignored. Values: - 0x0 (NO_AFFECT): No Affect - 0x1 (RESTART): Restart"]
60    #[inline(always)]
61    pub fn continue_req(&self) -> CONTINUE_REQ_R {
62        CONTINUE_REQ_R::new(((self.bits >> 1) & 1) != 0)
63    }
64    #[doc = "Bit 2 - N/A"]
65    #[inline(always)]
66    pub fn rd_wait_ctrl(&self) -> RD_WAIT_CTRL_R {
67        RD_WAIT_CTRL_R::new(((self.bits >> 2) & 1) != 0)
68    }
69    #[doc = "Bit 3 - Interrupt At Block Gap This bit is valid only in the 4-bit mode of an SDIO card and is used to select a sample point in the interrupt cycle. Setting to 1 enables interrupt detection at the block gap for a multiple block transfer. Values: - 0x0 (DISABLE): Disabled - 0x1 (ENABLE): Enabled"]
70    #[inline(always)]
71    pub fn int_at_bgap(&self) -> INT_AT_BGAP_R {
72        INT_AT_BGAP_R::new(((self.bits >> 3) & 1) != 0)
73    }
74}
75impl W {
76    #[doc = "Bit 0 - Stop At Block Gap Request This bit is used to stop executing read and write transactions at the next block gap for non-DMA, SDMA, and ADMA transfers. Values: - 0x0 (XFER): Transfer - 0x1 (STOP): Stop"]
77    #[inline(always)]
78    #[must_use]
79    pub fn stop_bg_req(&mut self) -> STOP_BG_REQ_W<0> {
80        STOP_BG_REQ_W::new(self)
81    }
82    #[doc = "Bit 1 - Continue Request This bit is used to restart the transaction, which was stopped using the Stop At Block Gap Request. The Host Controller automatically clears this bit when the transaction restarts. If stop at block gap request is set to 1, any write to this bit is ignored. Values: - 0x0 (NO_AFFECT): No Affect - 0x1 (RESTART): Restart"]
83    #[inline(always)]
84    #[must_use]
85    pub fn continue_req(&mut self) -> CONTINUE_REQ_W<1> {
86        CONTINUE_REQ_W::new(self)
87    }
88    #[doc = "Bit 2 - N/A"]
89    #[inline(always)]
90    #[must_use]
91    pub fn rd_wait_ctrl(&mut self) -> RD_WAIT_CTRL_W<2> {
92        RD_WAIT_CTRL_W::new(self)
93    }
94    #[doc = "Bit 3 - Interrupt At Block Gap This bit is valid only in the 4-bit mode of an SDIO card and is used to select a sample point in the interrupt cycle. Setting to 1 enables interrupt detection at the block gap for a multiple block transfer. Values: - 0x0 (DISABLE): Disabled - 0x1 (ENABLE): Enabled"]
95    #[inline(always)]
96    #[must_use]
97    pub fn int_at_bgap(&mut self) -> INT_AT_BGAP_W<3> {
98        INT_AT_BGAP_W::new(self)
99    }
100    #[doc = "Writes raw bits to the register."]
101    #[inline(always)]
102    pub unsafe fn bits(&mut self, bits: u8) -> &mut Self {
103        self.0.bits(bits);
104        self
105    }
106}
107#[doc = "Block Gap 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 [bgap_ctrl_r](index.html) module"]
108pub struct BGAP_CTRL_R_SPEC;
109impl crate::RegisterSpec for BGAP_CTRL_R_SPEC {
110    type Ux = u8;
111}
112#[doc = "`read()` method returns [bgap_ctrl_r::R](R) reader structure"]
113impl crate::Readable for BGAP_CTRL_R_SPEC {
114    type Reader = R;
115}
116#[doc = "`write(|w| ..)` method takes [bgap_ctrl_r::W](W) writer structure"]
117impl crate::Writable for BGAP_CTRL_R_SPEC {
118    type Writer = W;
119    const ZERO_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
120    const ONE_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
121}
122#[doc = "`reset()` method sets BGAP_CTRL_R to value 0"]
123impl crate::Resettable for BGAP_CTRL_R_SPEC {
124    const RESET_VALUE: Self::Ux = 0;
125}