xmc4100/gpdma0_ch2/
cfgl.rs

1#[doc = "Register `CFGL` reader"]
2pub type R = crate::R<CFGL_SPEC>;
3#[doc = "Register `CFGL` writer"]
4pub type W = crate::W<CFGL_SPEC>;
5#[doc = "Field `CH_PRIOR` reader - Channel priority"]
6pub type CH_PRIOR_R = crate::FieldReader;
7#[doc = "Field `CH_PRIOR` writer - Channel priority"]
8pub type CH_PRIOR_W<'a, REG> = crate::FieldWriter<'a, REG, 3>;
9#[doc = "Channel Suspend\n\nValue on reset: 0"]
10#[derive(Clone, Copy, Debug, PartialEq, Eq)]
11pub enum CH_SUSP_A {
12    #[doc = "0: Not suspended."]
13    VALUE1 = 0,
14    #[doc = "1: Suspend DMA transfer from the source."]
15    VALUE2 = 1,
16}
17impl From<CH_SUSP_A> for bool {
18    #[inline(always)]
19    fn from(variant: CH_SUSP_A) -> Self {
20        variant as u8 != 0
21    }
22}
23#[doc = "Field `CH_SUSP` reader - Channel Suspend"]
24pub type CH_SUSP_R = crate::BitReader<CH_SUSP_A>;
25impl CH_SUSP_R {
26    #[doc = "Get enumerated values variant"]
27    #[inline(always)]
28    pub const fn variant(&self) -> CH_SUSP_A {
29        match self.bits {
30            false => CH_SUSP_A::VALUE1,
31            true => CH_SUSP_A::VALUE2,
32        }
33    }
34    #[doc = "Not suspended."]
35    #[inline(always)]
36    pub fn is_value1(&self) -> bool {
37        *self == CH_SUSP_A::VALUE1
38    }
39    #[doc = "Suspend DMA transfer from the source."]
40    #[inline(always)]
41    pub fn is_value2(&self) -> bool {
42        *self == CH_SUSP_A::VALUE2
43    }
44}
45#[doc = "Field `CH_SUSP` writer - Channel Suspend"]
46pub type CH_SUSP_W<'a, REG> = crate::BitWriter<'a, REG, CH_SUSP_A>;
47impl<'a, REG> CH_SUSP_W<'a, REG>
48where
49    REG: crate::Writable + crate::RegisterSpec,
50{
51    #[doc = "Not suspended."]
52    #[inline(always)]
53    pub fn value1(self) -> &'a mut crate::W<REG> {
54        self.variant(CH_SUSP_A::VALUE1)
55    }
56    #[doc = "Suspend DMA transfer from the source."]
57    #[inline(always)]
58    pub fn value2(self) -> &'a mut crate::W<REG> {
59        self.variant(CH_SUSP_A::VALUE2)
60    }
61}
62#[doc = "Indicates if there is data left in the channel FIFO\n\nValue on reset: 1"]
63#[derive(Clone, Copy, Debug, PartialEq, Eq)]
64pub enum FIFO_EMPTY_A {
65    #[doc = "1: Channel FIFO empty"]
66    VALUE1 = 1,
67    #[doc = "0: Channel FIFO not empty"]
68    VALUE2 = 0,
69}
70impl From<FIFO_EMPTY_A> for bool {
71    #[inline(always)]
72    fn from(variant: FIFO_EMPTY_A) -> Self {
73        variant as u8 != 0
74    }
75}
76#[doc = "Field `FIFO_EMPTY` reader - Indicates if there is data left in the channel FIFO"]
77pub type FIFO_EMPTY_R = crate::BitReader<FIFO_EMPTY_A>;
78impl FIFO_EMPTY_R {
79    #[doc = "Get enumerated values variant"]
80    #[inline(always)]
81    pub const fn variant(&self) -> FIFO_EMPTY_A {
82        match self.bits {
83            true => FIFO_EMPTY_A::VALUE1,
84            false => FIFO_EMPTY_A::VALUE2,
85        }
86    }
87    #[doc = "Channel FIFO empty"]
88    #[inline(always)]
89    pub fn is_value1(&self) -> bool {
90        *self == FIFO_EMPTY_A::VALUE1
91    }
92    #[doc = "Channel FIFO not empty"]
93    #[inline(always)]
94    pub fn is_value2(&self) -> bool {
95        *self == FIFO_EMPTY_A::VALUE2
96    }
97}
98#[doc = "Destination Software or Hardware Handshaking Select\n\nValue on reset: 1"]
99#[derive(Clone, Copy, Debug, PartialEq, Eq)]
100pub enum HS_SEL_DST_A {
101    #[doc = "0: Hardware handshaking interface. Software-initiated transaction requests are ignored."]
102    VALUE1 = 0,
103    #[doc = "1: Software handshaking interface. Hardware- initiated transaction requests are ignored."]
104    VALUE2 = 1,
105}
106impl From<HS_SEL_DST_A> for bool {
107    #[inline(always)]
108    fn from(variant: HS_SEL_DST_A) -> Self {
109        variant as u8 != 0
110    }
111}
112#[doc = "Field `HS_SEL_DST` reader - Destination Software or Hardware Handshaking Select"]
113pub type HS_SEL_DST_R = crate::BitReader<HS_SEL_DST_A>;
114impl HS_SEL_DST_R {
115    #[doc = "Get enumerated values variant"]
116    #[inline(always)]
117    pub const fn variant(&self) -> HS_SEL_DST_A {
118        match self.bits {
119            false => HS_SEL_DST_A::VALUE1,
120            true => HS_SEL_DST_A::VALUE2,
121        }
122    }
123    #[doc = "Hardware handshaking interface. Software-initiated transaction requests are ignored."]
124    #[inline(always)]
125    pub fn is_value1(&self) -> bool {
126        *self == HS_SEL_DST_A::VALUE1
127    }
128    #[doc = "Software handshaking interface. Hardware- initiated transaction requests are ignored."]
129    #[inline(always)]
130    pub fn is_value2(&self) -> bool {
131        *self == HS_SEL_DST_A::VALUE2
132    }
133}
134#[doc = "Field `HS_SEL_DST` writer - Destination Software or Hardware Handshaking Select"]
135pub type HS_SEL_DST_W<'a, REG> = crate::BitWriter<'a, REG, HS_SEL_DST_A>;
136impl<'a, REG> HS_SEL_DST_W<'a, REG>
137where
138    REG: crate::Writable + crate::RegisterSpec,
139{
140    #[doc = "Hardware handshaking interface. Software-initiated transaction requests are ignored."]
141    #[inline(always)]
142    pub fn value1(self) -> &'a mut crate::W<REG> {
143        self.variant(HS_SEL_DST_A::VALUE1)
144    }
145    #[doc = "Software handshaking interface. Hardware- initiated transaction requests are ignored."]
146    #[inline(always)]
147    pub fn value2(self) -> &'a mut crate::W<REG> {
148        self.variant(HS_SEL_DST_A::VALUE2)
149    }
150}
151#[doc = "Source Software or Hardware Handshaking Select\n\nValue on reset: 1"]
152#[derive(Clone, Copy, Debug, PartialEq, Eq)]
153pub enum HS_SEL_SRC_A {
154    #[doc = "0: Hardware handshaking interface. Software-initiated transaction requests are ignored."]
155    VALUE1 = 0,
156    #[doc = "1: Software handshaking interface. Hardware-initiated transaction requests are ignored."]
157    VALUE2 = 1,
158}
159impl From<HS_SEL_SRC_A> for bool {
160    #[inline(always)]
161    fn from(variant: HS_SEL_SRC_A) -> Self {
162        variant as u8 != 0
163    }
164}
165#[doc = "Field `HS_SEL_SRC` reader - Source Software or Hardware Handshaking Select"]
166pub type HS_SEL_SRC_R = crate::BitReader<HS_SEL_SRC_A>;
167impl HS_SEL_SRC_R {
168    #[doc = "Get enumerated values variant"]
169    #[inline(always)]
170    pub const fn variant(&self) -> HS_SEL_SRC_A {
171        match self.bits {
172            false => HS_SEL_SRC_A::VALUE1,
173            true => HS_SEL_SRC_A::VALUE2,
174        }
175    }
176    #[doc = "Hardware handshaking interface. Software-initiated transaction requests are ignored."]
177    #[inline(always)]
178    pub fn is_value1(&self) -> bool {
179        *self == HS_SEL_SRC_A::VALUE1
180    }
181    #[doc = "Software handshaking interface. Hardware-initiated transaction requests are ignored."]
182    #[inline(always)]
183    pub fn is_value2(&self) -> bool {
184        *self == HS_SEL_SRC_A::VALUE2
185    }
186}
187#[doc = "Field `HS_SEL_SRC` writer - Source Software or Hardware Handshaking Select"]
188pub type HS_SEL_SRC_W<'a, REG> = crate::BitWriter<'a, REG, HS_SEL_SRC_A>;
189impl<'a, REG> HS_SEL_SRC_W<'a, REG>
190where
191    REG: crate::Writable + crate::RegisterSpec,
192{
193    #[doc = "Hardware handshaking interface. Software-initiated transaction requests are ignored."]
194    #[inline(always)]
195    pub fn value1(self) -> &'a mut crate::W<REG> {
196        self.variant(HS_SEL_SRC_A::VALUE1)
197    }
198    #[doc = "Software handshaking interface. Hardware-initiated transaction requests are ignored."]
199    #[inline(always)]
200    pub fn value2(self) -> &'a mut crate::W<REG> {
201        self.variant(HS_SEL_SRC_A::VALUE2)
202    }
203}
204#[doc = "Channel Lock Level\n\nValue on reset: 0"]
205#[derive(Clone, Copy, Debug, PartialEq, Eq)]
206#[repr(u8)]
207pub enum LOCK_CH_L_A {
208    #[doc = "0: Over complete DMA transfer"]
209    VALUE1 = 0,
210    #[doc = "1: Over complete DMA block transfer"]
211    VALUE2 = 1,
212    #[doc = "2: Over complete DMA transaction"]
213    VALUE3 = 2,
214}
215impl From<LOCK_CH_L_A> for u8 {
216    #[inline(always)]
217    fn from(variant: LOCK_CH_L_A) -> Self {
218        variant as _
219    }
220}
221impl crate::FieldSpec for LOCK_CH_L_A {
222    type Ux = u8;
223}
224impl crate::IsEnum for LOCK_CH_L_A {}
225#[doc = "Field `LOCK_CH_L` reader - Channel Lock Level"]
226pub type LOCK_CH_L_R = crate::FieldReader<LOCK_CH_L_A>;
227impl LOCK_CH_L_R {
228    #[doc = "Get enumerated values variant"]
229    #[inline(always)]
230    pub const fn variant(&self) -> Option<LOCK_CH_L_A> {
231        match self.bits {
232            0 => Some(LOCK_CH_L_A::VALUE1),
233            1 => Some(LOCK_CH_L_A::VALUE2),
234            2 => Some(LOCK_CH_L_A::VALUE3),
235            _ => None,
236        }
237    }
238    #[doc = "Over complete DMA transfer"]
239    #[inline(always)]
240    pub fn is_value1(&self) -> bool {
241        *self == LOCK_CH_L_A::VALUE1
242    }
243    #[doc = "Over complete DMA block transfer"]
244    #[inline(always)]
245    pub fn is_value2(&self) -> bool {
246        *self == LOCK_CH_L_A::VALUE2
247    }
248    #[doc = "Over complete DMA transaction"]
249    #[inline(always)]
250    pub fn is_value3(&self) -> bool {
251        *self == LOCK_CH_L_A::VALUE3
252    }
253}
254#[doc = "Field `LOCK_CH_L` writer - Channel Lock Level"]
255pub type LOCK_CH_L_W<'a, REG> = crate::FieldWriter<'a, REG, 2, LOCK_CH_L_A>;
256impl<'a, REG> LOCK_CH_L_W<'a, REG>
257where
258    REG: crate::Writable + crate::RegisterSpec,
259    REG::Ux: From<u8>,
260{
261    #[doc = "Over complete DMA transfer"]
262    #[inline(always)]
263    pub fn value1(self) -> &'a mut crate::W<REG> {
264        self.variant(LOCK_CH_L_A::VALUE1)
265    }
266    #[doc = "Over complete DMA block transfer"]
267    #[inline(always)]
268    pub fn value2(self) -> &'a mut crate::W<REG> {
269        self.variant(LOCK_CH_L_A::VALUE2)
270    }
271    #[doc = "Over complete DMA transaction"]
272    #[inline(always)]
273    pub fn value3(self) -> &'a mut crate::W<REG> {
274        self.variant(LOCK_CH_L_A::VALUE3)
275    }
276}
277#[doc = "Bus Lock Level\n\nValue on reset: 0"]
278#[derive(Clone, Copy, Debug, PartialEq, Eq)]
279#[repr(u8)]
280pub enum LOCK_B_L_A {
281    #[doc = "0: Over complete DMA transfer"]
282    VALUE1 = 0,
283    #[doc = "1: Over complete DMA block transfer"]
284    VALUE2 = 1,
285    #[doc = "2: Over complete DMA transaction"]
286    VALUE3 = 2,
287}
288impl From<LOCK_B_L_A> for u8 {
289    #[inline(always)]
290    fn from(variant: LOCK_B_L_A) -> Self {
291        variant as _
292    }
293}
294impl crate::FieldSpec for LOCK_B_L_A {
295    type Ux = u8;
296}
297impl crate::IsEnum for LOCK_B_L_A {}
298#[doc = "Field `LOCK_B_L` reader - Bus Lock Level"]
299pub type LOCK_B_L_R = crate::FieldReader<LOCK_B_L_A>;
300impl LOCK_B_L_R {
301    #[doc = "Get enumerated values variant"]
302    #[inline(always)]
303    pub const fn variant(&self) -> Option<LOCK_B_L_A> {
304        match self.bits {
305            0 => Some(LOCK_B_L_A::VALUE1),
306            1 => Some(LOCK_B_L_A::VALUE2),
307            2 => Some(LOCK_B_L_A::VALUE3),
308            _ => None,
309        }
310    }
311    #[doc = "Over complete DMA transfer"]
312    #[inline(always)]
313    pub fn is_value1(&self) -> bool {
314        *self == LOCK_B_L_A::VALUE1
315    }
316    #[doc = "Over complete DMA block transfer"]
317    #[inline(always)]
318    pub fn is_value2(&self) -> bool {
319        *self == LOCK_B_L_A::VALUE2
320    }
321    #[doc = "Over complete DMA transaction"]
322    #[inline(always)]
323    pub fn is_value3(&self) -> bool {
324        *self == LOCK_B_L_A::VALUE3
325    }
326}
327#[doc = "Field `LOCK_B_L` writer - Bus Lock Level"]
328pub type LOCK_B_L_W<'a, REG> = crate::FieldWriter<'a, REG, 2, LOCK_B_L_A>;
329impl<'a, REG> LOCK_B_L_W<'a, REG>
330where
331    REG: crate::Writable + crate::RegisterSpec,
332    REG::Ux: From<u8>,
333{
334    #[doc = "Over complete DMA transfer"]
335    #[inline(always)]
336    pub fn value1(self) -> &'a mut crate::W<REG> {
337        self.variant(LOCK_B_L_A::VALUE1)
338    }
339    #[doc = "Over complete DMA block transfer"]
340    #[inline(always)]
341    pub fn value2(self) -> &'a mut crate::W<REG> {
342        self.variant(LOCK_B_L_A::VALUE2)
343    }
344    #[doc = "Over complete DMA transaction"]
345    #[inline(always)]
346    pub fn value3(self) -> &'a mut crate::W<REG> {
347        self.variant(LOCK_B_L_A::VALUE3)
348    }
349}
350#[doc = "Field `LOCK_CH` reader - Channel Lock Bit"]
351pub type LOCK_CH_R = crate::BitReader;
352#[doc = "Field `LOCK_CH` writer - Channel Lock Bit"]
353pub type LOCK_CH_W<'a, REG> = crate::BitWriter<'a, REG>;
354#[doc = "Field `LOCK_B` reader - Bus Lock Bit"]
355pub type LOCK_B_R = crate::BitReader;
356#[doc = "Field `LOCK_B` writer - Bus Lock Bit"]
357pub type LOCK_B_W<'a, REG> = crate::BitWriter<'a, REG>;
358#[doc = "Destination Handshaking Interface Polarity\n\nValue on reset: 0"]
359#[derive(Clone, Copy, Debug, PartialEq, Eq)]
360pub enum DST_HS_POL_A {
361    #[doc = "0: Active high"]
362    VALUE1 = 0,
363    #[doc = "1: Active low"]
364    VALUE2 = 1,
365}
366impl From<DST_HS_POL_A> for bool {
367    #[inline(always)]
368    fn from(variant: DST_HS_POL_A) -> Self {
369        variant as u8 != 0
370    }
371}
372#[doc = "Field `DST_HS_POL` reader - Destination Handshaking Interface Polarity"]
373pub type DST_HS_POL_R = crate::BitReader<DST_HS_POL_A>;
374impl DST_HS_POL_R {
375    #[doc = "Get enumerated values variant"]
376    #[inline(always)]
377    pub const fn variant(&self) -> DST_HS_POL_A {
378        match self.bits {
379            false => DST_HS_POL_A::VALUE1,
380            true => DST_HS_POL_A::VALUE2,
381        }
382    }
383    #[doc = "Active high"]
384    #[inline(always)]
385    pub fn is_value1(&self) -> bool {
386        *self == DST_HS_POL_A::VALUE1
387    }
388    #[doc = "Active low"]
389    #[inline(always)]
390    pub fn is_value2(&self) -> bool {
391        *self == DST_HS_POL_A::VALUE2
392    }
393}
394#[doc = "Field `DST_HS_POL` writer - Destination Handshaking Interface Polarity"]
395pub type DST_HS_POL_W<'a, REG> = crate::BitWriter<'a, REG, DST_HS_POL_A>;
396impl<'a, REG> DST_HS_POL_W<'a, REG>
397where
398    REG: crate::Writable + crate::RegisterSpec,
399{
400    #[doc = "Active high"]
401    #[inline(always)]
402    pub fn value1(self) -> &'a mut crate::W<REG> {
403        self.variant(DST_HS_POL_A::VALUE1)
404    }
405    #[doc = "Active low"]
406    #[inline(always)]
407    pub fn value2(self) -> &'a mut crate::W<REG> {
408        self.variant(DST_HS_POL_A::VALUE2)
409    }
410}
411#[doc = "Source Handshaking Interface Polarity\n\nValue on reset: 0"]
412#[derive(Clone, Copy, Debug, PartialEq, Eq)]
413pub enum SRC_HS_POL_A {
414    #[doc = "0: Active high"]
415    VALUE1 = 0,
416    #[doc = "1: Active low"]
417    VALUE2 = 1,
418}
419impl From<SRC_HS_POL_A> for bool {
420    #[inline(always)]
421    fn from(variant: SRC_HS_POL_A) -> Self {
422        variant as u8 != 0
423    }
424}
425#[doc = "Field `SRC_HS_POL` reader - Source Handshaking Interface Polarity"]
426pub type SRC_HS_POL_R = crate::BitReader<SRC_HS_POL_A>;
427impl SRC_HS_POL_R {
428    #[doc = "Get enumerated values variant"]
429    #[inline(always)]
430    pub const fn variant(&self) -> SRC_HS_POL_A {
431        match self.bits {
432            false => SRC_HS_POL_A::VALUE1,
433            true => SRC_HS_POL_A::VALUE2,
434        }
435    }
436    #[doc = "Active high"]
437    #[inline(always)]
438    pub fn is_value1(&self) -> bool {
439        *self == SRC_HS_POL_A::VALUE1
440    }
441    #[doc = "Active low"]
442    #[inline(always)]
443    pub fn is_value2(&self) -> bool {
444        *self == SRC_HS_POL_A::VALUE2
445    }
446}
447#[doc = "Field `SRC_HS_POL` writer - Source Handshaking Interface Polarity"]
448pub type SRC_HS_POL_W<'a, REG> = crate::BitWriter<'a, REG, SRC_HS_POL_A>;
449impl<'a, REG> SRC_HS_POL_W<'a, REG>
450where
451    REG: crate::Writable + crate::RegisterSpec,
452{
453    #[doc = "Active high"]
454    #[inline(always)]
455    pub fn value1(self) -> &'a mut crate::W<REG> {
456        self.variant(SRC_HS_POL_A::VALUE1)
457    }
458    #[doc = "Active low"]
459    #[inline(always)]
460    pub fn value2(self) -> &'a mut crate::W<REG> {
461        self.variant(SRC_HS_POL_A::VALUE2)
462    }
463}
464#[doc = "Field `MAX_ABRST` reader - Maximum AMBA Burst Length"]
465pub type MAX_ABRST_R = crate::FieldReader<u16>;
466#[doc = "Field `MAX_ABRST` writer - Maximum AMBA Burst Length"]
467pub type MAX_ABRST_W<'a, REG> = crate::FieldWriter<'a, REG, 10, u16>;
468impl R {
469    #[doc = "Bits 5:7 - Channel priority"]
470    #[inline(always)]
471    pub fn ch_prior(&self) -> CH_PRIOR_R {
472        CH_PRIOR_R::new(((self.bits >> 5) & 7) as u8)
473    }
474    #[doc = "Bit 8 - Channel Suspend"]
475    #[inline(always)]
476    pub fn ch_susp(&self) -> CH_SUSP_R {
477        CH_SUSP_R::new(((self.bits >> 8) & 1) != 0)
478    }
479    #[doc = "Bit 9 - Indicates if there is data left in the channel FIFO"]
480    #[inline(always)]
481    pub fn fifo_empty(&self) -> FIFO_EMPTY_R {
482        FIFO_EMPTY_R::new(((self.bits >> 9) & 1) != 0)
483    }
484    #[doc = "Bit 10 - Destination Software or Hardware Handshaking Select"]
485    #[inline(always)]
486    pub fn hs_sel_dst(&self) -> HS_SEL_DST_R {
487        HS_SEL_DST_R::new(((self.bits >> 10) & 1) != 0)
488    }
489    #[doc = "Bit 11 - Source Software or Hardware Handshaking Select"]
490    #[inline(always)]
491    pub fn hs_sel_src(&self) -> HS_SEL_SRC_R {
492        HS_SEL_SRC_R::new(((self.bits >> 11) & 1) != 0)
493    }
494    #[doc = "Bits 12:13 - Channel Lock Level"]
495    #[inline(always)]
496    pub fn lock_ch_l(&self) -> LOCK_CH_L_R {
497        LOCK_CH_L_R::new(((self.bits >> 12) & 3) as u8)
498    }
499    #[doc = "Bits 14:15 - Bus Lock Level"]
500    #[inline(always)]
501    pub fn lock_b_l(&self) -> LOCK_B_L_R {
502        LOCK_B_L_R::new(((self.bits >> 14) & 3) as u8)
503    }
504    #[doc = "Bit 16 - Channel Lock Bit"]
505    #[inline(always)]
506    pub fn lock_ch(&self) -> LOCK_CH_R {
507        LOCK_CH_R::new(((self.bits >> 16) & 1) != 0)
508    }
509    #[doc = "Bit 17 - Bus Lock Bit"]
510    #[inline(always)]
511    pub fn lock_b(&self) -> LOCK_B_R {
512        LOCK_B_R::new(((self.bits >> 17) & 1) != 0)
513    }
514    #[doc = "Bit 18 - Destination Handshaking Interface Polarity"]
515    #[inline(always)]
516    pub fn dst_hs_pol(&self) -> DST_HS_POL_R {
517        DST_HS_POL_R::new(((self.bits >> 18) & 1) != 0)
518    }
519    #[doc = "Bit 19 - Source Handshaking Interface Polarity"]
520    #[inline(always)]
521    pub fn src_hs_pol(&self) -> SRC_HS_POL_R {
522        SRC_HS_POL_R::new(((self.bits >> 19) & 1) != 0)
523    }
524    #[doc = "Bits 20:29 - Maximum AMBA Burst Length"]
525    #[inline(always)]
526    pub fn max_abrst(&self) -> MAX_ABRST_R {
527        MAX_ABRST_R::new(((self.bits >> 20) & 0x03ff) as u16)
528    }
529}
530impl W {
531    #[doc = "Bits 5:7 - Channel priority"]
532    #[inline(always)]
533    pub fn ch_prior(&mut self) -> CH_PRIOR_W<CFGL_SPEC> {
534        CH_PRIOR_W::new(self, 5)
535    }
536    #[doc = "Bit 8 - Channel Suspend"]
537    #[inline(always)]
538    pub fn ch_susp(&mut self) -> CH_SUSP_W<CFGL_SPEC> {
539        CH_SUSP_W::new(self, 8)
540    }
541    #[doc = "Bit 10 - Destination Software or Hardware Handshaking Select"]
542    #[inline(always)]
543    pub fn hs_sel_dst(&mut self) -> HS_SEL_DST_W<CFGL_SPEC> {
544        HS_SEL_DST_W::new(self, 10)
545    }
546    #[doc = "Bit 11 - Source Software or Hardware Handshaking Select"]
547    #[inline(always)]
548    pub fn hs_sel_src(&mut self) -> HS_SEL_SRC_W<CFGL_SPEC> {
549        HS_SEL_SRC_W::new(self, 11)
550    }
551    #[doc = "Bits 12:13 - Channel Lock Level"]
552    #[inline(always)]
553    pub fn lock_ch_l(&mut self) -> LOCK_CH_L_W<CFGL_SPEC> {
554        LOCK_CH_L_W::new(self, 12)
555    }
556    #[doc = "Bits 14:15 - Bus Lock Level"]
557    #[inline(always)]
558    pub fn lock_b_l(&mut self) -> LOCK_B_L_W<CFGL_SPEC> {
559        LOCK_B_L_W::new(self, 14)
560    }
561    #[doc = "Bit 16 - Channel Lock Bit"]
562    #[inline(always)]
563    pub fn lock_ch(&mut self) -> LOCK_CH_W<CFGL_SPEC> {
564        LOCK_CH_W::new(self, 16)
565    }
566    #[doc = "Bit 17 - Bus Lock Bit"]
567    #[inline(always)]
568    pub fn lock_b(&mut self) -> LOCK_B_W<CFGL_SPEC> {
569        LOCK_B_W::new(self, 17)
570    }
571    #[doc = "Bit 18 - Destination Handshaking Interface Polarity"]
572    #[inline(always)]
573    pub fn dst_hs_pol(&mut self) -> DST_HS_POL_W<CFGL_SPEC> {
574        DST_HS_POL_W::new(self, 18)
575    }
576    #[doc = "Bit 19 - Source Handshaking Interface Polarity"]
577    #[inline(always)]
578    pub fn src_hs_pol(&mut self) -> SRC_HS_POL_W<CFGL_SPEC> {
579        SRC_HS_POL_W::new(self, 19)
580    }
581    #[doc = "Bits 20:29 - Maximum AMBA Burst Length"]
582    #[inline(always)]
583    pub fn max_abrst(&mut self) -> MAX_ABRST_W<CFGL_SPEC> {
584        MAX_ABRST_W::new(self, 20)
585    }
586}
587#[doc = "Configuration Register Low\n\nYou can [`read`](crate::Reg::read) this register and get [`cfgl::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cfgl::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
588pub struct CFGL_SPEC;
589impl crate::RegisterSpec for CFGL_SPEC {
590    type Ux = u32;
591}
592#[doc = "`read()` method returns [`cfgl::R`](R) reader structure"]
593impl crate::Readable for CFGL_SPEC {}
594#[doc = "`write(|w| ..)` method takes [`cfgl::W`](W) writer structure"]
595impl crate::Writable for CFGL_SPEC {
596    type Safety = crate::Unsafe;
597    const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
598    const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
599}
600#[doc = "`reset()` method sets CFGL to value 0x0e00"]
601impl crate::Resettable for CFGL_SPEC {
602    const RESET_VALUE: u32 = 0x0e00;
603}