d1_pac/dmac/
dmac_cfg.rs

1#[doc = "Register `dmac_cfg%s` reader"]
2pub type R = crate::R<DMAC_CFG_SPEC>;
3#[doc = "Field `dma_src_drq_type` reader - DMA Source DRQ Type"]
4pub type DMA_SRC_DRQ_TYPE_R = crate::FieldReader;
5#[doc = "Field `dma_src_block_size` reader - DMA Source Block Size"]
6pub type DMA_SRC_BLOCK_SIZE_R = crate::FieldReader<DMA_SRC_BLOCK_SIZE_A>;
7#[doc = "DMA Source Block Size\n\nValue on reset: 0"]
8#[derive(Clone, Copy, Debug, PartialEq, Eq)]
9#[repr(u8)]
10pub enum DMA_SRC_BLOCK_SIZE_A {
11    #[doc = "0: `0`"]
12    S1 = 0,
13    #[doc = "1: `1`"]
14    S4 = 1,
15    #[doc = "2: `10`"]
16    S8 = 2,
17    #[doc = "3: `11`"]
18    S16 = 3,
19}
20impl From<DMA_SRC_BLOCK_SIZE_A> for u8 {
21    #[inline(always)]
22    fn from(variant: DMA_SRC_BLOCK_SIZE_A) -> Self {
23        variant as _
24    }
25}
26impl crate::FieldSpec for DMA_SRC_BLOCK_SIZE_A {
27    type Ux = u8;
28}
29impl DMA_SRC_BLOCK_SIZE_R {
30    #[doc = "Get enumerated values variant"]
31    #[inline(always)]
32    pub const fn variant(&self) -> DMA_SRC_BLOCK_SIZE_A {
33        match self.bits {
34            0 => DMA_SRC_BLOCK_SIZE_A::S1,
35            1 => DMA_SRC_BLOCK_SIZE_A::S4,
36            2 => DMA_SRC_BLOCK_SIZE_A::S8,
37            3 => DMA_SRC_BLOCK_SIZE_A::S16,
38            _ => unreachable!(),
39        }
40    }
41    #[doc = "`0`"]
42    #[inline(always)]
43    pub fn is_s1(&self) -> bool {
44        *self == DMA_SRC_BLOCK_SIZE_A::S1
45    }
46    #[doc = "`1`"]
47    #[inline(always)]
48    pub fn is_s4(&self) -> bool {
49        *self == DMA_SRC_BLOCK_SIZE_A::S4
50    }
51    #[doc = "`10`"]
52    #[inline(always)]
53    pub fn is_s8(&self) -> bool {
54        *self == DMA_SRC_BLOCK_SIZE_A::S8
55    }
56    #[doc = "`11`"]
57    #[inline(always)]
58    pub fn is_s16(&self) -> bool {
59        *self == DMA_SRC_BLOCK_SIZE_A::S16
60    }
61}
62#[doc = "Field `dma_src_addr_mode` reader - DMA Source Address Mode"]
63pub type DMA_SRC_ADDR_MODE_R = crate::BitReader<DMA_SRC_ADDR_MODE_A>;
64#[doc = "DMA Source Address Mode\n\nValue on reset: 0"]
65#[derive(Clone, Copy, Debug, PartialEq, Eq)]
66pub enum DMA_SRC_ADDR_MODE_A {
67    #[doc = "0: `0`"]
68    LINEAR = 0,
69    #[doc = "1: `1`"]
70    IO = 1,
71}
72impl From<DMA_SRC_ADDR_MODE_A> for bool {
73    #[inline(always)]
74    fn from(variant: DMA_SRC_ADDR_MODE_A) -> Self {
75        variant as u8 != 0
76    }
77}
78impl DMA_SRC_ADDR_MODE_R {
79    #[doc = "Get enumerated values variant"]
80    #[inline(always)]
81    pub const fn variant(&self) -> DMA_SRC_ADDR_MODE_A {
82        match self.bits {
83            false => DMA_SRC_ADDR_MODE_A::LINEAR,
84            true => DMA_SRC_ADDR_MODE_A::IO,
85        }
86    }
87    #[doc = "`0`"]
88    #[inline(always)]
89    pub fn is_linear(&self) -> bool {
90        *self == DMA_SRC_ADDR_MODE_A::LINEAR
91    }
92    #[doc = "`1`"]
93    #[inline(always)]
94    pub fn is_io(&self) -> bool {
95        *self == DMA_SRC_ADDR_MODE_A::IO
96    }
97}
98#[doc = "Field `dma_src_data_width` reader - DMA Source Data Width"]
99pub type DMA_SRC_DATA_WIDTH_R = crate::FieldReader<DMA_SRC_DATA_WIDTH_A>;
100#[doc = "DMA Source Data Width\n\nValue on reset: 0"]
101#[derive(Clone, Copy, Debug, PartialEq, Eq)]
102#[repr(u8)]
103pub enum DMA_SRC_DATA_WIDTH_A {
104    #[doc = "0: 8 bit"]
105    B8 = 0,
106    #[doc = "1: 16 bit"]
107    B16 = 1,
108    #[doc = "2: 32 bit"]
109    B32 = 2,
110    #[doc = "3: 64 bit"]
111    B64 = 3,
112}
113impl From<DMA_SRC_DATA_WIDTH_A> for u8 {
114    #[inline(always)]
115    fn from(variant: DMA_SRC_DATA_WIDTH_A) -> Self {
116        variant as _
117    }
118}
119impl crate::FieldSpec for DMA_SRC_DATA_WIDTH_A {
120    type Ux = u8;
121}
122impl DMA_SRC_DATA_WIDTH_R {
123    #[doc = "Get enumerated values variant"]
124    #[inline(always)]
125    pub const fn variant(&self) -> DMA_SRC_DATA_WIDTH_A {
126        match self.bits {
127            0 => DMA_SRC_DATA_WIDTH_A::B8,
128            1 => DMA_SRC_DATA_WIDTH_A::B16,
129            2 => DMA_SRC_DATA_WIDTH_A::B32,
130            3 => DMA_SRC_DATA_WIDTH_A::B64,
131            _ => unreachable!(),
132        }
133    }
134    #[doc = "8 bit"]
135    #[inline(always)]
136    pub fn is_b8(&self) -> bool {
137        *self == DMA_SRC_DATA_WIDTH_A::B8
138    }
139    #[doc = "16 bit"]
140    #[inline(always)]
141    pub fn is_b16(&self) -> bool {
142        *self == DMA_SRC_DATA_WIDTH_A::B16
143    }
144    #[doc = "32 bit"]
145    #[inline(always)]
146    pub fn is_b32(&self) -> bool {
147        *self == DMA_SRC_DATA_WIDTH_A::B32
148    }
149    #[doc = "64 bit"]
150    #[inline(always)]
151    pub fn is_b64(&self) -> bool {
152        *self == DMA_SRC_DATA_WIDTH_A::B64
153    }
154}
155#[doc = "Field `dma_dest_drq_type` reader - DMA Destination DRQ Type"]
156pub type DMA_DEST_DRQ_TYPE_R = crate::FieldReader;
157#[doc = "Field `dma_dest_block_size` reader - DMA Destination Block Size"]
158pub type DMA_DEST_BLOCK_SIZE_R = crate::FieldReader<DMA_DEST_BLOCK_SIZE_A>;
159#[doc = "DMA Destination Block Size\n\nValue on reset: 0"]
160#[derive(Clone, Copy, Debug, PartialEq, Eq)]
161#[repr(u8)]
162pub enum DMA_DEST_BLOCK_SIZE_A {
163    #[doc = "0: `0`"]
164    S1 = 0,
165    #[doc = "1: `1`"]
166    S4 = 1,
167    #[doc = "2: `10`"]
168    S8 = 2,
169    #[doc = "3: `11`"]
170    S16 = 3,
171}
172impl From<DMA_DEST_BLOCK_SIZE_A> for u8 {
173    #[inline(always)]
174    fn from(variant: DMA_DEST_BLOCK_SIZE_A) -> Self {
175        variant as _
176    }
177}
178impl crate::FieldSpec for DMA_DEST_BLOCK_SIZE_A {
179    type Ux = u8;
180}
181impl DMA_DEST_BLOCK_SIZE_R {
182    #[doc = "Get enumerated values variant"]
183    #[inline(always)]
184    pub const fn variant(&self) -> DMA_DEST_BLOCK_SIZE_A {
185        match self.bits {
186            0 => DMA_DEST_BLOCK_SIZE_A::S1,
187            1 => DMA_DEST_BLOCK_SIZE_A::S4,
188            2 => DMA_DEST_BLOCK_SIZE_A::S8,
189            3 => DMA_DEST_BLOCK_SIZE_A::S16,
190            _ => unreachable!(),
191        }
192    }
193    #[doc = "`0`"]
194    #[inline(always)]
195    pub fn is_s1(&self) -> bool {
196        *self == DMA_DEST_BLOCK_SIZE_A::S1
197    }
198    #[doc = "`1`"]
199    #[inline(always)]
200    pub fn is_s4(&self) -> bool {
201        *self == DMA_DEST_BLOCK_SIZE_A::S4
202    }
203    #[doc = "`10`"]
204    #[inline(always)]
205    pub fn is_s8(&self) -> bool {
206        *self == DMA_DEST_BLOCK_SIZE_A::S8
207    }
208    #[doc = "`11`"]
209    #[inline(always)]
210    pub fn is_s16(&self) -> bool {
211        *self == DMA_DEST_BLOCK_SIZE_A::S16
212    }
213}
214#[doc = "Field `dma_addr_mode` reader - DMA Destination Address Mode"]
215pub type DMA_ADDR_MODE_R = crate::BitReader<DMA_ADDR_MODE_A>;
216#[doc = "DMA Destination Address Mode\n\nValue on reset: 0"]
217#[derive(Clone, Copy, Debug, PartialEq, Eq)]
218pub enum DMA_ADDR_MODE_A {
219    #[doc = "0: `0`"]
220    LINEAR = 0,
221    #[doc = "1: `1`"]
222    IO = 1,
223}
224impl From<DMA_ADDR_MODE_A> for bool {
225    #[inline(always)]
226    fn from(variant: DMA_ADDR_MODE_A) -> Self {
227        variant as u8 != 0
228    }
229}
230impl DMA_ADDR_MODE_R {
231    #[doc = "Get enumerated values variant"]
232    #[inline(always)]
233    pub const fn variant(&self) -> DMA_ADDR_MODE_A {
234        match self.bits {
235            false => DMA_ADDR_MODE_A::LINEAR,
236            true => DMA_ADDR_MODE_A::IO,
237        }
238    }
239    #[doc = "`0`"]
240    #[inline(always)]
241    pub fn is_linear(&self) -> bool {
242        *self == DMA_ADDR_MODE_A::LINEAR
243    }
244    #[doc = "`1`"]
245    #[inline(always)]
246    pub fn is_io(&self) -> bool {
247        *self == DMA_ADDR_MODE_A::IO
248    }
249}
250#[doc = "Field `dma_dest_data_width` reader - DMA Destination Data Width"]
251pub type DMA_DEST_DATA_WIDTH_R = crate::FieldReader<DMA_DEST_DATA_WIDTH_A>;
252#[doc = "DMA Destination Data Width\n\nValue on reset: 0"]
253#[derive(Clone, Copy, Debug, PartialEq, Eq)]
254#[repr(u8)]
255pub enum DMA_DEST_DATA_WIDTH_A {
256    #[doc = "0: 8 bit"]
257    B8 = 0,
258    #[doc = "1: 16 bit"]
259    B16 = 1,
260    #[doc = "2: 32 bit"]
261    B32 = 2,
262    #[doc = "3: 64 bit"]
263    B64 = 3,
264}
265impl From<DMA_DEST_DATA_WIDTH_A> for u8 {
266    #[inline(always)]
267    fn from(variant: DMA_DEST_DATA_WIDTH_A) -> Self {
268        variant as _
269    }
270}
271impl crate::FieldSpec for DMA_DEST_DATA_WIDTH_A {
272    type Ux = u8;
273}
274impl DMA_DEST_DATA_WIDTH_R {
275    #[doc = "Get enumerated values variant"]
276    #[inline(always)]
277    pub const fn variant(&self) -> DMA_DEST_DATA_WIDTH_A {
278        match self.bits {
279            0 => DMA_DEST_DATA_WIDTH_A::B8,
280            1 => DMA_DEST_DATA_WIDTH_A::B16,
281            2 => DMA_DEST_DATA_WIDTH_A::B32,
282            3 => DMA_DEST_DATA_WIDTH_A::B64,
283            _ => unreachable!(),
284        }
285    }
286    #[doc = "8 bit"]
287    #[inline(always)]
288    pub fn is_b8(&self) -> bool {
289        *self == DMA_DEST_DATA_WIDTH_A::B8
290    }
291    #[doc = "16 bit"]
292    #[inline(always)]
293    pub fn is_b16(&self) -> bool {
294        *self == DMA_DEST_DATA_WIDTH_A::B16
295    }
296    #[doc = "32 bit"]
297    #[inline(always)]
298    pub fn is_b32(&self) -> bool {
299        *self == DMA_DEST_DATA_WIDTH_A::B32
300    }
301    #[doc = "64 bit"]
302    #[inline(always)]
303    pub fn is_b64(&self) -> bool {
304        *self == DMA_DEST_DATA_WIDTH_A::B64
305    }
306}
307#[doc = "Field `bmode_sel` reader - "]
308pub type BMODE_SEL_R = crate::BitReader<BMODE_SEL_A>;
309#[doc = "\n\nValue on reset: 0"]
310#[derive(Clone, Copy, Debug, PartialEq, Eq)]
311pub enum BMODE_SEL_A {
312    #[doc = "0: `0`"]
313    NORMAL = 0,
314    #[doc = "1: `1`"]
315    BMODE = 1,
316}
317impl From<BMODE_SEL_A> for bool {
318    #[inline(always)]
319    fn from(variant: BMODE_SEL_A) -> Self {
320        variant as u8 != 0
321    }
322}
323impl BMODE_SEL_R {
324    #[doc = "Get enumerated values variant"]
325    #[inline(always)]
326    pub const fn variant(&self) -> BMODE_SEL_A {
327        match self.bits {
328            false => BMODE_SEL_A::NORMAL,
329            true => BMODE_SEL_A::BMODE,
330        }
331    }
332    #[doc = "`0`"]
333    #[inline(always)]
334    pub fn is_normal(&self) -> bool {
335        *self == BMODE_SEL_A::NORMAL
336    }
337    #[doc = "`1`"]
338    #[inline(always)]
339    pub fn is_bmode(&self) -> bool {
340        *self == BMODE_SEL_A::BMODE
341    }
342}
343impl R {
344    #[doc = "Bits 0:5 - DMA Source DRQ Type"]
345    #[inline(always)]
346    pub fn dma_src_drq_type(&self) -> DMA_SRC_DRQ_TYPE_R {
347        DMA_SRC_DRQ_TYPE_R::new((self.bits & 0x3f) as u8)
348    }
349    #[doc = "Bits 6:7 - DMA Source Block Size"]
350    #[inline(always)]
351    pub fn dma_src_block_size(&self) -> DMA_SRC_BLOCK_SIZE_R {
352        DMA_SRC_BLOCK_SIZE_R::new(((self.bits >> 6) & 3) as u8)
353    }
354    #[doc = "Bit 8 - DMA Source Address Mode"]
355    #[inline(always)]
356    pub fn dma_src_addr_mode(&self) -> DMA_SRC_ADDR_MODE_R {
357        DMA_SRC_ADDR_MODE_R::new(((self.bits >> 8) & 1) != 0)
358    }
359    #[doc = "Bits 9:10 - DMA Source Data Width"]
360    #[inline(always)]
361    pub fn dma_src_data_width(&self) -> DMA_SRC_DATA_WIDTH_R {
362        DMA_SRC_DATA_WIDTH_R::new(((self.bits >> 9) & 3) as u8)
363    }
364    #[doc = "Bits 16:21 - DMA Destination DRQ Type"]
365    #[inline(always)]
366    pub fn dma_dest_drq_type(&self) -> DMA_DEST_DRQ_TYPE_R {
367        DMA_DEST_DRQ_TYPE_R::new(((self.bits >> 16) & 0x3f) as u8)
368    }
369    #[doc = "Bits 22:23 - DMA Destination Block Size"]
370    #[inline(always)]
371    pub fn dma_dest_block_size(&self) -> DMA_DEST_BLOCK_SIZE_R {
372        DMA_DEST_BLOCK_SIZE_R::new(((self.bits >> 22) & 3) as u8)
373    }
374    #[doc = "Bit 24 - DMA Destination Address Mode"]
375    #[inline(always)]
376    pub fn dma_addr_mode(&self) -> DMA_ADDR_MODE_R {
377        DMA_ADDR_MODE_R::new(((self.bits >> 24) & 1) != 0)
378    }
379    #[doc = "Bits 25:26 - DMA Destination Data Width"]
380    #[inline(always)]
381    pub fn dma_dest_data_width(&self) -> DMA_DEST_DATA_WIDTH_R {
382        DMA_DEST_DATA_WIDTH_R::new(((self.bits >> 25) & 3) as u8)
383    }
384    #[doc = "Bit 30"]
385    #[inline(always)]
386    pub fn bmode_sel(&self) -> BMODE_SEL_R {
387        BMODE_SEL_R::new(((self.bits >> 30) & 1) != 0)
388    }
389}
390#[doc = "DMAC Channel Configuration Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`dmac_cfg::R`](R).  See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
391pub struct DMAC_CFG_SPEC;
392impl crate::RegisterSpec for DMAC_CFG_SPEC {
393    type Ux = u32;
394}
395#[doc = "`read()` method returns [`dmac_cfg::R`](R) reader structure"]
396impl crate::Readable for DMAC_CFG_SPEC {}
397#[doc = "`reset()` method sets dmac_cfg%s to value 0"]
398impl crate::Resettable for DMAC_CFG_SPEC {
399    const RESET_VALUE: Self::Ux = 0;
400}