1#[doc = "Register `CHCTRLA` reader"]
2pub type R = crate::R<ChctrlaSpec>;
3#[doc = "Register `CHCTRLA` writer"]
4pub type W = crate::W<ChctrlaSpec>;
5#[doc = "Field `SWRST` reader - Channel Software Reset"]
6pub type SwrstR = crate::BitReader;
7#[doc = "Field `SWRST` writer - Channel Software Reset"]
8pub type SwrstW<'a, REG> = crate::BitWriter<'a, REG>;
9#[doc = "Field `ENABLE` reader - Channel Enable"]
10pub type EnableR = crate::BitReader;
11#[doc = "Field `ENABLE` writer - Channel Enable"]
12pub type EnableW<'a, REG> = crate::BitWriter<'a, REG>;
13#[doc = "Field `RUNSTDBY` reader - Channel Run in Standby"]
14pub type RunstdbyR = crate::BitReader;
15#[doc = "Field `RUNSTDBY` writer - Channel Run in Standby"]
16pub type RunstdbyW<'a, REG> = crate::BitWriter<'a, REG>;
17#[doc = "Trigger Source\n\nValue on reset: 0"]
18#[derive(Clone, Copy, Debug, PartialEq, Eq)]
19#[repr(u8)]
20pub enum Trigsrcselect {
21 #[doc = "0: Only software/event triggers"]
22 Disable = 0,
23 #[doc = "1: DMA RTC timestamp trigger"]
24 RtcTimestamp = 1,
25 #[doc = "2: DMAC ID for DCC0 register"]
26 DsuDcc0 = 2,
27 #[doc = "3: DMAC ID for DCC1 register"]
28 DsuDcc1 = 3,
29 #[doc = "4: Index of DMA RX trigger"]
30 Sercom0Rx = 4,
31 #[doc = "5: Index of DMA TX trigger"]
32 Sercom0Tx = 5,
33 #[doc = "6: Index of DMA RX trigger"]
34 Sercom1Rx = 6,
35 #[doc = "7: Index of DMA TX trigger"]
36 Sercom1Tx = 7,
37 #[doc = "8: Index of DMA RX trigger"]
38 Sercom2Rx = 8,
39 #[doc = "9: Index of DMA TX trigger"]
40 Sercom2Tx = 9,
41 #[doc = "10: Index of DMA RX trigger"]
42 Sercom3Rx = 10,
43 #[doc = "11: Index of DMA TX trigger"]
44 Sercom3Tx = 11,
45 #[doc = "12: Index of DMA RX trigger"]
46 Sercom4Rx = 12,
47 #[doc = "13: Index of DMA TX trigger"]
48 Sercom4Tx = 13,
49 #[doc = "14: Index of DMA RX trigger"]
50 Sercom5Rx = 14,
51 #[doc = "15: Index of DMA TX trigger"]
52 Sercom5Tx = 15,
53 #[doc = "16: Index of DMA RX trigger"]
54 Sercom6Rx = 16,
55 #[doc = "17: Index of DMA TX trigger"]
56 Sercom6Tx = 17,
57 #[doc = "18: Index of DMA RX trigger"]
58 Sercom7Rx = 18,
59 #[doc = "19: Index of DMA TX trigger"]
60 Sercom7Tx = 19,
61 #[doc = "20: DMA CAN Debug Req"]
62 Can0Debug = 20,
63 #[doc = "21: DMA CAN Debug Req"]
64 Can1Debug = 21,
65 #[doc = "22: DMA overflow/underflow/retrigger trigger"]
66 Tcc0Ovf = 22,
67 #[doc = "23: Indexes of DMA Match/Compare triggers"]
68 Tcc0Mc0 = 23,
69 #[doc = "24: Indexes of DMA Match/Compare triggers"]
70 Tcc0Mc1 = 24,
71 #[doc = "25: Indexes of DMA Match/Compare triggers"]
72 Tcc0Mc2 = 25,
73 #[doc = "26: Indexes of DMA Match/Compare triggers"]
74 Tcc0Mc3 = 26,
75 #[doc = "27: Indexes of DMA Match/Compare triggers"]
76 Tcc0Mc4 = 27,
77 #[doc = "28: Indexes of DMA Match/Compare triggers"]
78 Tcc0Mc5 = 28,
79 #[doc = "29: DMA overflow/underflow/retrigger trigger"]
80 Tcc1Ovf = 29,
81 #[doc = "30: Indexes of DMA Match/Compare triggers"]
82 Tcc1Mc0 = 30,
83 #[doc = "31: Indexes of DMA Match/Compare triggers"]
84 Tcc1Mc1 = 31,
85 #[doc = "32: Indexes of DMA Match/Compare triggers"]
86 Tcc1Mc2 = 32,
87 #[doc = "33: Indexes of DMA Match/Compare triggers"]
88 Tcc1Mc3 = 33,
89 #[doc = "34: DMA overflow/underflow/retrigger trigger"]
90 Tcc2Ovf = 34,
91 #[doc = "35: Indexes of DMA Match/Compare triggers"]
92 Tcc2Mc0 = 35,
93 #[doc = "36: Indexes of DMA Match/Compare triggers"]
94 Tcc2Mc1 = 36,
95 #[doc = "37: Indexes of DMA Match/Compare triggers"]
96 Tcc2Mc2 = 37,
97 #[doc = "38: DMA overflow/underflow/retrigger trigger"]
98 Tcc3Ovf = 38,
99 #[doc = "39: Indexes of DMA Match/Compare triggers"]
100 Tcc3Mc0 = 39,
101 #[doc = "40: Indexes of DMA Match/Compare triggers"]
102 Tcc3Mc1 = 40,
103 #[doc = "41: DMA overflow/underflow/retrigger trigger"]
104 Tcc4Ovf = 41,
105 #[doc = "42: Indexes of DMA Match/Compare triggers"]
106 Tcc4Mc0 = 42,
107 #[doc = "43: Indexes of DMA Match/Compare triggers"]
108 Tcc4Mc1 = 43,
109 #[doc = "44: Indexes of DMA Overflow trigger"]
110 Tc0Ovf = 44,
111 #[doc = "45: Indexes of DMA Match/Compare triggers"]
112 Tc0Mc0 = 45,
113 #[doc = "46: Indexes of DMA Match/Compare triggers"]
114 Tc0Mc1 = 46,
115 #[doc = "47: Indexes of DMA Overflow trigger"]
116 Tc1Ovf = 47,
117 #[doc = "48: Indexes of DMA Match/Compare triggers"]
118 Tc1Mc0 = 48,
119 #[doc = "49: Indexes of DMA Match/Compare triggers"]
120 Tc1Mc1 = 49,
121 #[doc = "50: Indexes of DMA Overflow trigger"]
122 Tc2Ovf = 50,
123 #[doc = "51: Indexes of DMA Match/Compare triggers"]
124 Tc2Mc0 = 51,
125 #[doc = "52: Indexes of DMA Match/Compare triggers"]
126 Tc2Mc1 = 52,
127 #[doc = "53: Indexes of DMA Overflow trigger"]
128 Tc3Ovf = 53,
129 #[doc = "54: Indexes of DMA Match/Compare triggers"]
130 Tc3Mc0 = 54,
131 #[doc = "55: Indexes of DMA Match/Compare triggers"]
132 Tc3Mc1 = 55,
133 #[doc = "56: Indexes of DMA Overflow trigger"]
134 Tc4Ovf = 56,
135 #[doc = "57: Indexes of DMA Match/Compare triggers"]
136 Tc4Mc0 = 57,
137 #[doc = "58: Indexes of DMA Match/Compare triggers"]
138 Tc4Mc1 = 58,
139 #[doc = "59: Indexes of DMA Overflow trigger"]
140 Tc5Ovf = 59,
141 #[doc = "60: Indexes of DMA Match/Compare triggers"]
142 Tc5Mc0 = 60,
143 #[doc = "61: Indexes of DMA Match/Compare triggers"]
144 Tc5Mc1 = 61,
145 #[doc = "62: Indexes of DMA Overflow trigger"]
146 Tc6Ovf = 62,
147 #[doc = "63: Indexes of DMA Match/Compare triggers"]
148 Tc6Mc0 = 63,
149 #[doc = "64: Indexes of DMA Match/Compare triggers"]
150 Tc6Mc1 = 64,
151 #[doc = "65: Indexes of DMA Overflow trigger"]
152 Tc7Ovf = 65,
153 #[doc = "66: Indexes of DMA Match/Compare triggers"]
154 Tc7Mc0 = 66,
155 #[doc = "67: Indexes of DMA Match/Compare triggers"]
156 Tc7Mc1 = 67,
157 #[doc = "68: index of DMA RESRDY trigger"]
158 Adc0Resrdy = 68,
159 #[doc = "69: Index of DMA SEQ trigger"]
160 Adc0Seq = 69,
161 #[doc = "70: Index of DMA RESRDY trigger"]
162 Adc1Resrdy = 70,
163 #[doc = "71: Index of DMA SEQ trigger"]
164 Adc1Seq = 71,
165 #[doc = "72: DMA DAC Empty Req"]
166 DacEmpty0 = 72,
167 #[doc = "73: DMA DAC Empty Req"]
168 DacEmpty1 = 73,
169 #[doc = "74: DMA DAC Result Ready Req"]
170 DacResrdy0 = 74,
171 #[doc = "75: DMA DAC Result Ready Req"]
172 DacResrdy1 = 75,
173 #[doc = "76: Indexes of DMA RX triggers"]
174 I2sRx0 = 76,
175 #[doc = "77: Indexes of DMA RX triggers"]
176 I2sRx1 = 77,
177 #[doc = "78: Indexes of DMA TX triggers"]
178 I2sTx0 = 78,
179 #[doc = "79: Indexes of DMA TX triggers"]
180 I2sTx1 = 79,
181 #[doc = "80: Indexes of PCC RX trigger"]
182 PccRx = 80,
183 #[doc = "81: DMA DATA Write trigger"]
184 AesWr = 81,
185 #[doc = "82: DMA DATA Read trigger"]
186 AesRd = 82,
187 #[doc = "83: Indexes of QSPI RX trigger"]
188 QspiRx = 83,
189 #[doc = "84: Indexes of QSPI TX trigger"]
190 QspiTx = 84,
191}
192impl From<Trigsrcselect> for u8 {
193 #[inline(always)]
194 fn from(variant: Trigsrcselect) -> Self {
195 variant as _
196 }
197}
198impl crate::FieldSpec for Trigsrcselect {
199 type Ux = u8;
200}
201impl crate::IsEnum for Trigsrcselect {}
202#[doc = "Field `TRIGSRC` reader - Trigger Source"]
203pub type TrigsrcR = crate::FieldReader<Trigsrcselect>;
204impl TrigsrcR {
205 #[doc = "Get enumerated values variant"]
206 #[inline(always)]
207 pub const fn variant(&self) -> Option<Trigsrcselect> {
208 match self.bits {
209 0 => Some(Trigsrcselect::Disable),
210 1 => Some(Trigsrcselect::RtcTimestamp),
211 2 => Some(Trigsrcselect::DsuDcc0),
212 3 => Some(Trigsrcselect::DsuDcc1),
213 4 => Some(Trigsrcselect::Sercom0Rx),
214 5 => Some(Trigsrcselect::Sercom0Tx),
215 6 => Some(Trigsrcselect::Sercom1Rx),
216 7 => Some(Trigsrcselect::Sercom1Tx),
217 8 => Some(Trigsrcselect::Sercom2Rx),
218 9 => Some(Trigsrcselect::Sercom2Tx),
219 10 => Some(Trigsrcselect::Sercom3Rx),
220 11 => Some(Trigsrcselect::Sercom3Tx),
221 12 => Some(Trigsrcselect::Sercom4Rx),
222 13 => Some(Trigsrcselect::Sercom4Tx),
223 14 => Some(Trigsrcselect::Sercom5Rx),
224 15 => Some(Trigsrcselect::Sercom5Tx),
225 16 => Some(Trigsrcselect::Sercom6Rx),
226 17 => Some(Trigsrcselect::Sercom6Tx),
227 18 => Some(Trigsrcselect::Sercom7Rx),
228 19 => Some(Trigsrcselect::Sercom7Tx),
229 20 => Some(Trigsrcselect::Can0Debug),
230 21 => Some(Trigsrcselect::Can1Debug),
231 22 => Some(Trigsrcselect::Tcc0Ovf),
232 23 => Some(Trigsrcselect::Tcc0Mc0),
233 24 => Some(Trigsrcselect::Tcc0Mc1),
234 25 => Some(Trigsrcselect::Tcc0Mc2),
235 26 => Some(Trigsrcselect::Tcc0Mc3),
236 27 => Some(Trigsrcselect::Tcc0Mc4),
237 28 => Some(Trigsrcselect::Tcc0Mc5),
238 29 => Some(Trigsrcselect::Tcc1Ovf),
239 30 => Some(Trigsrcselect::Tcc1Mc0),
240 31 => Some(Trigsrcselect::Tcc1Mc1),
241 32 => Some(Trigsrcselect::Tcc1Mc2),
242 33 => Some(Trigsrcselect::Tcc1Mc3),
243 34 => Some(Trigsrcselect::Tcc2Ovf),
244 35 => Some(Trigsrcselect::Tcc2Mc0),
245 36 => Some(Trigsrcselect::Tcc2Mc1),
246 37 => Some(Trigsrcselect::Tcc2Mc2),
247 38 => Some(Trigsrcselect::Tcc3Ovf),
248 39 => Some(Trigsrcselect::Tcc3Mc0),
249 40 => Some(Trigsrcselect::Tcc3Mc1),
250 41 => Some(Trigsrcselect::Tcc4Ovf),
251 42 => Some(Trigsrcselect::Tcc4Mc0),
252 43 => Some(Trigsrcselect::Tcc4Mc1),
253 44 => Some(Trigsrcselect::Tc0Ovf),
254 45 => Some(Trigsrcselect::Tc0Mc0),
255 46 => Some(Trigsrcselect::Tc0Mc1),
256 47 => Some(Trigsrcselect::Tc1Ovf),
257 48 => Some(Trigsrcselect::Tc1Mc0),
258 49 => Some(Trigsrcselect::Tc1Mc1),
259 50 => Some(Trigsrcselect::Tc2Ovf),
260 51 => Some(Trigsrcselect::Tc2Mc0),
261 52 => Some(Trigsrcselect::Tc2Mc1),
262 53 => Some(Trigsrcselect::Tc3Ovf),
263 54 => Some(Trigsrcselect::Tc3Mc0),
264 55 => Some(Trigsrcselect::Tc3Mc1),
265 56 => Some(Trigsrcselect::Tc4Ovf),
266 57 => Some(Trigsrcselect::Tc4Mc0),
267 58 => Some(Trigsrcselect::Tc4Mc1),
268 59 => Some(Trigsrcselect::Tc5Ovf),
269 60 => Some(Trigsrcselect::Tc5Mc0),
270 61 => Some(Trigsrcselect::Tc5Mc1),
271 62 => Some(Trigsrcselect::Tc6Ovf),
272 63 => Some(Trigsrcselect::Tc6Mc0),
273 64 => Some(Trigsrcselect::Tc6Mc1),
274 65 => Some(Trigsrcselect::Tc7Ovf),
275 66 => Some(Trigsrcselect::Tc7Mc0),
276 67 => Some(Trigsrcselect::Tc7Mc1),
277 68 => Some(Trigsrcselect::Adc0Resrdy),
278 69 => Some(Trigsrcselect::Adc0Seq),
279 70 => Some(Trigsrcselect::Adc1Resrdy),
280 71 => Some(Trigsrcselect::Adc1Seq),
281 72 => Some(Trigsrcselect::DacEmpty0),
282 73 => Some(Trigsrcselect::DacEmpty1),
283 74 => Some(Trigsrcselect::DacResrdy0),
284 75 => Some(Trigsrcselect::DacResrdy1),
285 76 => Some(Trigsrcselect::I2sRx0),
286 77 => Some(Trigsrcselect::I2sRx1),
287 78 => Some(Trigsrcselect::I2sTx0),
288 79 => Some(Trigsrcselect::I2sTx1),
289 80 => Some(Trigsrcselect::PccRx),
290 81 => Some(Trigsrcselect::AesWr),
291 82 => Some(Trigsrcselect::AesRd),
292 83 => Some(Trigsrcselect::QspiRx),
293 84 => Some(Trigsrcselect::QspiTx),
294 _ => None,
295 }
296 }
297 #[doc = "Only software/event triggers"]
298 #[inline(always)]
299 pub fn is_disable(&self) -> bool {
300 *self == Trigsrcselect::Disable
301 }
302 #[doc = "DMA RTC timestamp trigger"]
303 #[inline(always)]
304 pub fn is_rtc_timestamp(&self) -> bool {
305 *self == Trigsrcselect::RtcTimestamp
306 }
307 #[doc = "DMAC ID for DCC0 register"]
308 #[inline(always)]
309 pub fn is_dsu_dcc0(&self) -> bool {
310 *self == Trigsrcselect::DsuDcc0
311 }
312 #[doc = "DMAC ID for DCC1 register"]
313 #[inline(always)]
314 pub fn is_dsu_dcc1(&self) -> bool {
315 *self == Trigsrcselect::DsuDcc1
316 }
317 #[doc = "Index of DMA RX trigger"]
318 #[inline(always)]
319 pub fn is_sercom0_rx(&self) -> bool {
320 *self == Trigsrcselect::Sercom0Rx
321 }
322 #[doc = "Index of DMA TX trigger"]
323 #[inline(always)]
324 pub fn is_sercom0_tx(&self) -> bool {
325 *self == Trigsrcselect::Sercom0Tx
326 }
327 #[doc = "Index of DMA RX trigger"]
328 #[inline(always)]
329 pub fn is_sercom1_rx(&self) -> bool {
330 *self == Trigsrcselect::Sercom1Rx
331 }
332 #[doc = "Index of DMA TX trigger"]
333 #[inline(always)]
334 pub fn is_sercom1_tx(&self) -> bool {
335 *self == Trigsrcselect::Sercom1Tx
336 }
337 #[doc = "Index of DMA RX trigger"]
338 #[inline(always)]
339 pub fn is_sercom2_rx(&self) -> bool {
340 *self == Trigsrcselect::Sercom2Rx
341 }
342 #[doc = "Index of DMA TX trigger"]
343 #[inline(always)]
344 pub fn is_sercom2_tx(&self) -> bool {
345 *self == Trigsrcselect::Sercom2Tx
346 }
347 #[doc = "Index of DMA RX trigger"]
348 #[inline(always)]
349 pub fn is_sercom3_rx(&self) -> bool {
350 *self == Trigsrcselect::Sercom3Rx
351 }
352 #[doc = "Index of DMA TX trigger"]
353 #[inline(always)]
354 pub fn is_sercom3_tx(&self) -> bool {
355 *self == Trigsrcselect::Sercom3Tx
356 }
357 #[doc = "Index of DMA RX trigger"]
358 #[inline(always)]
359 pub fn is_sercom4_rx(&self) -> bool {
360 *self == Trigsrcselect::Sercom4Rx
361 }
362 #[doc = "Index of DMA TX trigger"]
363 #[inline(always)]
364 pub fn is_sercom4_tx(&self) -> bool {
365 *self == Trigsrcselect::Sercom4Tx
366 }
367 #[doc = "Index of DMA RX trigger"]
368 #[inline(always)]
369 pub fn is_sercom5_rx(&self) -> bool {
370 *self == Trigsrcselect::Sercom5Rx
371 }
372 #[doc = "Index of DMA TX trigger"]
373 #[inline(always)]
374 pub fn is_sercom5_tx(&self) -> bool {
375 *self == Trigsrcselect::Sercom5Tx
376 }
377 #[doc = "Index of DMA RX trigger"]
378 #[inline(always)]
379 pub fn is_sercom6_rx(&self) -> bool {
380 *self == Trigsrcselect::Sercom6Rx
381 }
382 #[doc = "Index of DMA TX trigger"]
383 #[inline(always)]
384 pub fn is_sercom6_tx(&self) -> bool {
385 *self == Trigsrcselect::Sercom6Tx
386 }
387 #[doc = "Index of DMA RX trigger"]
388 #[inline(always)]
389 pub fn is_sercom7_rx(&self) -> bool {
390 *self == Trigsrcselect::Sercom7Rx
391 }
392 #[doc = "Index of DMA TX trigger"]
393 #[inline(always)]
394 pub fn is_sercom7_tx(&self) -> bool {
395 *self == Trigsrcselect::Sercom7Tx
396 }
397 #[doc = "DMA CAN Debug Req"]
398 #[inline(always)]
399 pub fn is_can0_debug(&self) -> bool {
400 *self == Trigsrcselect::Can0Debug
401 }
402 #[doc = "DMA CAN Debug Req"]
403 #[inline(always)]
404 pub fn is_can1_debug(&self) -> bool {
405 *self == Trigsrcselect::Can1Debug
406 }
407 #[doc = "DMA overflow/underflow/retrigger trigger"]
408 #[inline(always)]
409 pub fn is_tcc0_ovf(&self) -> bool {
410 *self == Trigsrcselect::Tcc0Ovf
411 }
412 #[doc = "Indexes of DMA Match/Compare triggers"]
413 #[inline(always)]
414 pub fn is_tcc0_mc_0(&self) -> bool {
415 *self == Trigsrcselect::Tcc0Mc0
416 }
417 #[doc = "Indexes of DMA Match/Compare triggers"]
418 #[inline(always)]
419 pub fn is_tcc0_mc_1(&self) -> bool {
420 *self == Trigsrcselect::Tcc0Mc1
421 }
422 #[doc = "Indexes of DMA Match/Compare triggers"]
423 #[inline(always)]
424 pub fn is_tcc0_mc_2(&self) -> bool {
425 *self == Trigsrcselect::Tcc0Mc2
426 }
427 #[doc = "Indexes of DMA Match/Compare triggers"]
428 #[inline(always)]
429 pub fn is_tcc0_mc_3(&self) -> bool {
430 *self == Trigsrcselect::Tcc0Mc3
431 }
432 #[doc = "Indexes of DMA Match/Compare triggers"]
433 #[inline(always)]
434 pub fn is_tcc0_mc_4(&self) -> bool {
435 *self == Trigsrcselect::Tcc0Mc4
436 }
437 #[doc = "Indexes of DMA Match/Compare triggers"]
438 #[inline(always)]
439 pub fn is_tcc0_mc_5(&self) -> bool {
440 *self == Trigsrcselect::Tcc0Mc5
441 }
442 #[doc = "DMA overflow/underflow/retrigger trigger"]
443 #[inline(always)]
444 pub fn is_tcc1_ovf(&self) -> bool {
445 *self == Trigsrcselect::Tcc1Ovf
446 }
447 #[doc = "Indexes of DMA Match/Compare triggers"]
448 #[inline(always)]
449 pub fn is_tcc1_mc_0(&self) -> bool {
450 *self == Trigsrcselect::Tcc1Mc0
451 }
452 #[doc = "Indexes of DMA Match/Compare triggers"]
453 #[inline(always)]
454 pub fn is_tcc1_mc_1(&self) -> bool {
455 *self == Trigsrcselect::Tcc1Mc1
456 }
457 #[doc = "Indexes of DMA Match/Compare triggers"]
458 #[inline(always)]
459 pub fn is_tcc1_mc_2(&self) -> bool {
460 *self == Trigsrcselect::Tcc1Mc2
461 }
462 #[doc = "Indexes of DMA Match/Compare triggers"]
463 #[inline(always)]
464 pub fn is_tcc1_mc_3(&self) -> bool {
465 *self == Trigsrcselect::Tcc1Mc3
466 }
467 #[doc = "DMA overflow/underflow/retrigger trigger"]
468 #[inline(always)]
469 pub fn is_tcc2_ovf(&self) -> bool {
470 *self == Trigsrcselect::Tcc2Ovf
471 }
472 #[doc = "Indexes of DMA Match/Compare triggers"]
473 #[inline(always)]
474 pub fn is_tcc2_mc_0(&self) -> bool {
475 *self == Trigsrcselect::Tcc2Mc0
476 }
477 #[doc = "Indexes of DMA Match/Compare triggers"]
478 #[inline(always)]
479 pub fn is_tcc2_mc_1(&self) -> bool {
480 *self == Trigsrcselect::Tcc2Mc1
481 }
482 #[doc = "Indexes of DMA Match/Compare triggers"]
483 #[inline(always)]
484 pub fn is_tcc2_mc_2(&self) -> bool {
485 *self == Trigsrcselect::Tcc2Mc2
486 }
487 #[doc = "DMA overflow/underflow/retrigger trigger"]
488 #[inline(always)]
489 pub fn is_tcc3_ovf(&self) -> bool {
490 *self == Trigsrcselect::Tcc3Ovf
491 }
492 #[doc = "Indexes of DMA Match/Compare triggers"]
493 #[inline(always)]
494 pub fn is_tcc3_mc_0(&self) -> bool {
495 *self == Trigsrcselect::Tcc3Mc0
496 }
497 #[doc = "Indexes of DMA Match/Compare triggers"]
498 #[inline(always)]
499 pub fn is_tcc3_mc_1(&self) -> bool {
500 *self == Trigsrcselect::Tcc3Mc1
501 }
502 #[doc = "DMA overflow/underflow/retrigger trigger"]
503 #[inline(always)]
504 pub fn is_tcc4_ovf(&self) -> bool {
505 *self == Trigsrcselect::Tcc4Ovf
506 }
507 #[doc = "Indexes of DMA Match/Compare triggers"]
508 #[inline(always)]
509 pub fn is_tcc4_mc_0(&self) -> bool {
510 *self == Trigsrcselect::Tcc4Mc0
511 }
512 #[doc = "Indexes of DMA Match/Compare triggers"]
513 #[inline(always)]
514 pub fn is_tcc4_mc_1(&self) -> bool {
515 *self == Trigsrcselect::Tcc4Mc1
516 }
517 #[doc = "Indexes of DMA Overflow trigger"]
518 #[inline(always)]
519 pub fn is_tc0_ovf(&self) -> bool {
520 *self == Trigsrcselect::Tc0Ovf
521 }
522 #[doc = "Indexes of DMA Match/Compare triggers"]
523 #[inline(always)]
524 pub fn is_tc0_mc_0(&self) -> bool {
525 *self == Trigsrcselect::Tc0Mc0
526 }
527 #[doc = "Indexes of DMA Match/Compare triggers"]
528 #[inline(always)]
529 pub fn is_tc0_mc_1(&self) -> bool {
530 *self == Trigsrcselect::Tc0Mc1
531 }
532 #[doc = "Indexes of DMA Overflow trigger"]
533 #[inline(always)]
534 pub fn is_tc1_ovf(&self) -> bool {
535 *self == Trigsrcselect::Tc1Ovf
536 }
537 #[doc = "Indexes of DMA Match/Compare triggers"]
538 #[inline(always)]
539 pub fn is_tc1_mc_0(&self) -> bool {
540 *self == Trigsrcselect::Tc1Mc0
541 }
542 #[doc = "Indexes of DMA Match/Compare triggers"]
543 #[inline(always)]
544 pub fn is_tc1_mc_1(&self) -> bool {
545 *self == Trigsrcselect::Tc1Mc1
546 }
547 #[doc = "Indexes of DMA Overflow trigger"]
548 #[inline(always)]
549 pub fn is_tc2_ovf(&self) -> bool {
550 *self == Trigsrcselect::Tc2Ovf
551 }
552 #[doc = "Indexes of DMA Match/Compare triggers"]
553 #[inline(always)]
554 pub fn is_tc2_mc_0(&self) -> bool {
555 *self == Trigsrcselect::Tc2Mc0
556 }
557 #[doc = "Indexes of DMA Match/Compare triggers"]
558 #[inline(always)]
559 pub fn is_tc2_mc_1(&self) -> bool {
560 *self == Trigsrcselect::Tc2Mc1
561 }
562 #[doc = "Indexes of DMA Overflow trigger"]
563 #[inline(always)]
564 pub fn is_tc3_ovf(&self) -> bool {
565 *self == Trigsrcselect::Tc3Ovf
566 }
567 #[doc = "Indexes of DMA Match/Compare triggers"]
568 #[inline(always)]
569 pub fn is_tc3_mc_0(&self) -> bool {
570 *self == Trigsrcselect::Tc3Mc0
571 }
572 #[doc = "Indexes of DMA Match/Compare triggers"]
573 #[inline(always)]
574 pub fn is_tc3_mc_1(&self) -> bool {
575 *self == Trigsrcselect::Tc3Mc1
576 }
577 #[doc = "Indexes of DMA Overflow trigger"]
578 #[inline(always)]
579 pub fn is_tc4_ovf(&self) -> bool {
580 *self == Trigsrcselect::Tc4Ovf
581 }
582 #[doc = "Indexes of DMA Match/Compare triggers"]
583 #[inline(always)]
584 pub fn is_tc4_mc_0(&self) -> bool {
585 *self == Trigsrcselect::Tc4Mc0
586 }
587 #[doc = "Indexes of DMA Match/Compare triggers"]
588 #[inline(always)]
589 pub fn is_tc4_mc_1(&self) -> bool {
590 *self == Trigsrcselect::Tc4Mc1
591 }
592 #[doc = "Indexes of DMA Overflow trigger"]
593 #[inline(always)]
594 pub fn is_tc5_ovf(&self) -> bool {
595 *self == Trigsrcselect::Tc5Ovf
596 }
597 #[doc = "Indexes of DMA Match/Compare triggers"]
598 #[inline(always)]
599 pub fn is_tc5_mc_0(&self) -> bool {
600 *self == Trigsrcselect::Tc5Mc0
601 }
602 #[doc = "Indexes of DMA Match/Compare triggers"]
603 #[inline(always)]
604 pub fn is_tc5_mc_1(&self) -> bool {
605 *self == Trigsrcselect::Tc5Mc1
606 }
607 #[doc = "Indexes of DMA Overflow trigger"]
608 #[inline(always)]
609 pub fn is_tc6_ovf(&self) -> bool {
610 *self == Trigsrcselect::Tc6Ovf
611 }
612 #[doc = "Indexes of DMA Match/Compare triggers"]
613 #[inline(always)]
614 pub fn is_tc6_mc_0(&self) -> bool {
615 *self == Trigsrcselect::Tc6Mc0
616 }
617 #[doc = "Indexes of DMA Match/Compare triggers"]
618 #[inline(always)]
619 pub fn is_tc6_mc_1(&self) -> bool {
620 *self == Trigsrcselect::Tc6Mc1
621 }
622 #[doc = "Indexes of DMA Overflow trigger"]
623 #[inline(always)]
624 pub fn is_tc7_ovf(&self) -> bool {
625 *self == Trigsrcselect::Tc7Ovf
626 }
627 #[doc = "Indexes of DMA Match/Compare triggers"]
628 #[inline(always)]
629 pub fn is_tc7_mc_0(&self) -> bool {
630 *self == Trigsrcselect::Tc7Mc0
631 }
632 #[doc = "Indexes of DMA Match/Compare triggers"]
633 #[inline(always)]
634 pub fn is_tc7_mc_1(&self) -> bool {
635 *self == Trigsrcselect::Tc7Mc1
636 }
637 #[doc = "index of DMA RESRDY trigger"]
638 #[inline(always)]
639 pub fn is_adc0_resrdy(&self) -> bool {
640 *self == Trigsrcselect::Adc0Resrdy
641 }
642 #[doc = "Index of DMA SEQ trigger"]
643 #[inline(always)]
644 pub fn is_adc0_seq(&self) -> bool {
645 *self == Trigsrcselect::Adc0Seq
646 }
647 #[doc = "Index of DMA RESRDY trigger"]
648 #[inline(always)]
649 pub fn is_adc1_resrdy(&self) -> bool {
650 *self == Trigsrcselect::Adc1Resrdy
651 }
652 #[doc = "Index of DMA SEQ trigger"]
653 #[inline(always)]
654 pub fn is_adc1_seq(&self) -> bool {
655 *self == Trigsrcselect::Adc1Seq
656 }
657 #[doc = "DMA DAC Empty Req"]
658 #[inline(always)]
659 pub fn is_dac_empty_0(&self) -> bool {
660 *self == Trigsrcselect::DacEmpty0
661 }
662 #[doc = "DMA DAC Empty Req"]
663 #[inline(always)]
664 pub fn is_dac_empty_1(&self) -> bool {
665 *self == Trigsrcselect::DacEmpty1
666 }
667 #[doc = "DMA DAC Result Ready Req"]
668 #[inline(always)]
669 pub fn is_dac_resrdy_0(&self) -> bool {
670 *self == Trigsrcselect::DacResrdy0
671 }
672 #[doc = "DMA DAC Result Ready Req"]
673 #[inline(always)]
674 pub fn is_dac_resrdy_1(&self) -> bool {
675 *self == Trigsrcselect::DacResrdy1
676 }
677 #[doc = "Indexes of DMA RX triggers"]
678 #[inline(always)]
679 pub fn is_i2s_rx_0(&self) -> bool {
680 *self == Trigsrcselect::I2sRx0
681 }
682 #[doc = "Indexes of DMA RX triggers"]
683 #[inline(always)]
684 pub fn is_i2s_rx_1(&self) -> bool {
685 *self == Trigsrcselect::I2sRx1
686 }
687 #[doc = "Indexes of DMA TX triggers"]
688 #[inline(always)]
689 pub fn is_i2s_tx_0(&self) -> bool {
690 *self == Trigsrcselect::I2sTx0
691 }
692 #[doc = "Indexes of DMA TX triggers"]
693 #[inline(always)]
694 pub fn is_i2s_tx_1(&self) -> bool {
695 *self == Trigsrcselect::I2sTx1
696 }
697 #[doc = "Indexes of PCC RX trigger"]
698 #[inline(always)]
699 pub fn is_pcc_rx(&self) -> bool {
700 *self == Trigsrcselect::PccRx
701 }
702 #[doc = "DMA DATA Write trigger"]
703 #[inline(always)]
704 pub fn is_aes_wr(&self) -> bool {
705 *self == Trigsrcselect::AesWr
706 }
707 #[doc = "DMA DATA Read trigger"]
708 #[inline(always)]
709 pub fn is_aes_rd(&self) -> bool {
710 *self == Trigsrcselect::AesRd
711 }
712 #[doc = "Indexes of QSPI RX trigger"]
713 #[inline(always)]
714 pub fn is_qspi_rx(&self) -> bool {
715 *self == Trigsrcselect::QspiRx
716 }
717 #[doc = "Indexes of QSPI TX trigger"]
718 #[inline(always)]
719 pub fn is_qspi_tx(&self) -> bool {
720 *self == Trigsrcselect::QspiTx
721 }
722}
723#[doc = "Field `TRIGSRC` writer - Trigger Source"]
724pub type TrigsrcW<'a, REG> = crate::FieldWriter<'a, REG, 7, Trigsrcselect>;
725impl<'a, REG> TrigsrcW<'a, REG>
726where
727 REG: crate::Writable + crate::RegisterSpec,
728 REG::Ux: From<u8>,
729{
730 #[doc = "Only software/event triggers"]
731 #[inline(always)]
732 pub fn disable(self) -> &'a mut crate::W<REG> {
733 self.variant(Trigsrcselect::Disable)
734 }
735 #[doc = "DMA RTC timestamp trigger"]
736 #[inline(always)]
737 pub fn rtc_timestamp(self) -> &'a mut crate::W<REG> {
738 self.variant(Trigsrcselect::RtcTimestamp)
739 }
740 #[doc = "DMAC ID for DCC0 register"]
741 #[inline(always)]
742 pub fn dsu_dcc0(self) -> &'a mut crate::W<REG> {
743 self.variant(Trigsrcselect::DsuDcc0)
744 }
745 #[doc = "DMAC ID for DCC1 register"]
746 #[inline(always)]
747 pub fn dsu_dcc1(self) -> &'a mut crate::W<REG> {
748 self.variant(Trigsrcselect::DsuDcc1)
749 }
750 #[doc = "Index of DMA RX trigger"]
751 #[inline(always)]
752 pub fn sercom0_rx(self) -> &'a mut crate::W<REG> {
753 self.variant(Trigsrcselect::Sercom0Rx)
754 }
755 #[doc = "Index of DMA TX trigger"]
756 #[inline(always)]
757 pub fn sercom0_tx(self) -> &'a mut crate::W<REG> {
758 self.variant(Trigsrcselect::Sercom0Tx)
759 }
760 #[doc = "Index of DMA RX trigger"]
761 #[inline(always)]
762 pub fn sercom1_rx(self) -> &'a mut crate::W<REG> {
763 self.variant(Trigsrcselect::Sercom1Rx)
764 }
765 #[doc = "Index of DMA TX trigger"]
766 #[inline(always)]
767 pub fn sercom1_tx(self) -> &'a mut crate::W<REG> {
768 self.variant(Trigsrcselect::Sercom1Tx)
769 }
770 #[doc = "Index of DMA RX trigger"]
771 #[inline(always)]
772 pub fn sercom2_rx(self) -> &'a mut crate::W<REG> {
773 self.variant(Trigsrcselect::Sercom2Rx)
774 }
775 #[doc = "Index of DMA TX trigger"]
776 #[inline(always)]
777 pub fn sercom2_tx(self) -> &'a mut crate::W<REG> {
778 self.variant(Trigsrcselect::Sercom2Tx)
779 }
780 #[doc = "Index of DMA RX trigger"]
781 #[inline(always)]
782 pub fn sercom3_rx(self) -> &'a mut crate::W<REG> {
783 self.variant(Trigsrcselect::Sercom3Rx)
784 }
785 #[doc = "Index of DMA TX trigger"]
786 #[inline(always)]
787 pub fn sercom3_tx(self) -> &'a mut crate::W<REG> {
788 self.variant(Trigsrcselect::Sercom3Tx)
789 }
790 #[doc = "Index of DMA RX trigger"]
791 #[inline(always)]
792 pub fn sercom4_rx(self) -> &'a mut crate::W<REG> {
793 self.variant(Trigsrcselect::Sercom4Rx)
794 }
795 #[doc = "Index of DMA TX trigger"]
796 #[inline(always)]
797 pub fn sercom4_tx(self) -> &'a mut crate::W<REG> {
798 self.variant(Trigsrcselect::Sercom4Tx)
799 }
800 #[doc = "Index of DMA RX trigger"]
801 #[inline(always)]
802 pub fn sercom5_rx(self) -> &'a mut crate::W<REG> {
803 self.variant(Trigsrcselect::Sercom5Rx)
804 }
805 #[doc = "Index of DMA TX trigger"]
806 #[inline(always)]
807 pub fn sercom5_tx(self) -> &'a mut crate::W<REG> {
808 self.variant(Trigsrcselect::Sercom5Tx)
809 }
810 #[doc = "Index of DMA RX trigger"]
811 #[inline(always)]
812 pub fn sercom6_rx(self) -> &'a mut crate::W<REG> {
813 self.variant(Trigsrcselect::Sercom6Rx)
814 }
815 #[doc = "Index of DMA TX trigger"]
816 #[inline(always)]
817 pub fn sercom6_tx(self) -> &'a mut crate::W<REG> {
818 self.variant(Trigsrcselect::Sercom6Tx)
819 }
820 #[doc = "Index of DMA RX trigger"]
821 #[inline(always)]
822 pub fn sercom7_rx(self) -> &'a mut crate::W<REG> {
823 self.variant(Trigsrcselect::Sercom7Rx)
824 }
825 #[doc = "Index of DMA TX trigger"]
826 #[inline(always)]
827 pub fn sercom7_tx(self) -> &'a mut crate::W<REG> {
828 self.variant(Trigsrcselect::Sercom7Tx)
829 }
830 #[doc = "DMA CAN Debug Req"]
831 #[inline(always)]
832 pub fn can0_debug(self) -> &'a mut crate::W<REG> {
833 self.variant(Trigsrcselect::Can0Debug)
834 }
835 #[doc = "DMA CAN Debug Req"]
836 #[inline(always)]
837 pub fn can1_debug(self) -> &'a mut crate::W<REG> {
838 self.variant(Trigsrcselect::Can1Debug)
839 }
840 #[doc = "DMA overflow/underflow/retrigger trigger"]
841 #[inline(always)]
842 pub fn tcc0_ovf(self) -> &'a mut crate::W<REG> {
843 self.variant(Trigsrcselect::Tcc0Ovf)
844 }
845 #[doc = "Indexes of DMA Match/Compare triggers"]
846 #[inline(always)]
847 pub fn tcc0_mc_0(self) -> &'a mut crate::W<REG> {
848 self.variant(Trigsrcselect::Tcc0Mc0)
849 }
850 #[doc = "Indexes of DMA Match/Compare triggers"]
851 #[inline(always)]
852 pub fn tcc0_mc_1(self) -> &'a mut crate::W<REG> {
853 self.variant(Trigsrcselect::Tcc0Mc1)
854 }
855 #[doc = "Indexes of DMA Match/Compare triggers"]
856 #[inline(always)]
857 pub fn tcc0_mc_2(self) -> &'a mut crate::W<REG> {
858 self.variant(Trigsrcselect::Tcc0Mc2)
859 }
860 #[doc = "Indexes of DMA Match/Compare triggers"]
861 #[inline(always)]
862 pub fn tcc0_mc_3(self) -> &'a mut crate::W<REG> {
863 self.variant(Trigsrcselect::Tcc0Mc3)
864 }
865 #[doc = "Indexes of DMA Match/Compare triggers"]
866 #[inline(always)]
867 pub fn tcc0_mc_4(self) -> &'a mut crate::W<REG> {
868 self.variant(Trigsrcselect::Tcc0Mc4)
869 }
870 #[doc = "Indexes of DMA Match/Compare triggers"]
871 #[inline(always)]
872 pub fn tcc0_mc_5(self) -> &'a mut crate::W<REG> {
873 self.variant(Trigsrcselect::Tcc0Mc5)
874 }
875 #[doc = "DMA overflow/underflow/retrigger trigger"]
876 #[inline(always)]
877 pub fn tcc1_ovf(self) -> &'a mut crate::W<REG> {
878 self.variant(Trigsrcselect::Tcc1Ovf)
879 }
880 #[doc = "Indexes of DMA Match/Compare triggers"]
881 #[inline(always)]
882 pub fn tcc1_mc_0(self) -> &'a mut crate::W<REG> {
883 self.variant(Trigsrcselect::Tcc1Mc0)
884 }
885 #[doc = "Indexes of DMA Match/Compare triggers"]
886 #[inline(always)]
887 pub fn tcc1_mc_1(self) -> &'a mut crate::W<REG> {
888 self.variant(Trigsrcselect::Tcc1Mc1)
889 }
890 #[doc = "Indexes of DMA Match/Compare triggers"]
891 #[inline(always)]
892 pub fn tcc1_mc_2(self) -> &'a mut crate::W<REG> {
893 self.variant(Trigsrcselect::Tcc1Mc2)
894 }
895 #[doc = "Indexes of DMA Match/Compare triggers"]
896 #[inline(always)]
897 pub fn tcc1_mc_3(self) -> &'a mut crate::W<REG> {
898 self.variant(Trigsrcselect::Tcc1Mc3)
899 }
900 #[doc = "DMA overflow/underflow/retrigger trigger"]
901 #[inline(always)]
902 pub fn tcc2_ovf(self) -> &'a mut crate::W<REG> {
903 self.variant(Trigsrcselect::Tcc2Ovf)
904 }
905 #[doc = "Indexes of DMA Match/Compare triggers"]
906 #[inline(always)]
907 pub fn tcc2_mc_0(self) -> &'a mut crate::W<REG> {
908 self.variant(Trigsrcselect::Tcc2Mc0)
909 }
910 #[doc = "Indexes of DMA Match/Compare triggers"]
911 #[inline(always)]
912 pub fn tcc2_mc_1(self) -> &'a mut crate::W<REG> {
913 self.variant(Trigsrcselect::Tcc2Mc1)
914 }
915 #[doc = "Indexes of DMA Match/Compare triggers"]
916 #[inline(always)]
917 pub fn tcc2_mc_2(self) -> &'a mut crate::W<REG> {
918 self.variant(Trigsrcselect::Tcc2Mc2)
919 }
920 #[doc = "DMA overflow/underflow/retrigger trigger"]
921 #[inline(always)]
922 pub fn tcc3_ovf(self) -> &'a mut crate::W<REG> {
923 self.variant(Trigsrcselect::Tcc3Ovf)
924 }
925 #[doc = "Indexes of DMA Match/Compare triggers"]
926 #[inline(always)]
927 pub fn tcc3_mc_0(self) -> &'a mut crate::W<REG> {
928 self.variant(Trigsrcselect::Tcc3Mc0)
929 }
930 #[doc = "Indexes of DMA Match/Compare triggers"]
931 #[inline(always)]
932 pub fn tcc3_mc_1(self) -> &'a mut crate::W<REG> {
933 self.variant(Trigsrcselect::Tcc3Mc1)
934 }
935 #[doc = "DMA overflow/underflow/retrigger trigger"]
936 #[inline(always)]
937 pub fn tcc4_ovf(self) -> &'a mut crate::W<REG> {
938 self.variant(Trigsrcselect::Tcc4Ovf)
939 }
940 #[doc = "Indexes of DMA Match/Compare triggers"]
941 #[inline(always)]
942 pub fn tcc4_mc_0(self) -> &'a mut crate::W<REG> {
943 self.variant(Trigsrcselect::Tcc4Mc0)
944 }
945 #[doc = "Indexes of DMA Match/Compare triggers"]
946 #[inline(always)]
947 pub fn tcc4_mc_1(self) -> &'a mut crate::W<REG> {
948 self.variant(Trigsrcselect::Tcc4Mc1)
949 }
950 #[doc = "Indexes of DMA Overflow trigger"]
951 #[inline(always)]
952 pub fn tc0_ovf(self) -> &'a mut crate::W<REG> {
953 self.variant(Trigsrcselect::Tc0Ovf)
954 }
955 #[doc = "Indexes of DMA Match/Compare triggers"]
956 #[inline(always)]
957 pub fn tc0_mc_0(self) -> &'a mut crate::W<REG> {
958 self.variant(Trigsrcselect::Tc0Mc0)
959 }
960 #[doc = "Indexes of DMA Match/Compare triggers"]
961 #[inline(always)]
962 pub fn tc0_mc_1(self) -> &'a mut crate::W<REG> {
963 self.variant(Trigsrcselect::Tc0Mc1)
964 }
965 #[doc = "Indexes of DMA Overflow trigger"]
966 #[inline(always)]
967 pub fn tc1_ovf(self) -> &'a mut crate::W<REG> {
968 self.variant(Trigsrcselect::Tc1Ovf)
969 }
970 #[doc = "Indexes of DMA Match/Compare triggers"]
971 #[inline(always)]
972 pub fn tc1_mc_0(self) -> &'a mut crate::W<REG> {
973 self.variant(Trigsrcselect::Tc1Mc0)
974 }
975 #[doc = "Indexes of DMA Match/Compare triggers"]
976 #[inline(always)]
977 pub fn tc1_mc_1(self) -> &'a mut crate::W<REG> {
978 self.variant(Trigsrcselect::Tc1Mc1)
979 }
980 #[doc = "Indexes of DMA Overflow trigger"]
981 #[inline(always)]
982 pub fn tc2_ovf(self) -> &'a mut crate::W<REG> {
983 self.variant(Trigsrcselect::Tc2Ovf)
984 }
985 #[doc = "Indexes of DMA Match/Compare triggers"]
986 #[inline(always)]
987 pub fn tc2_mc_0(self) -> &'a mut crate::W<REG> {
988 self.variant(Trigsrcselect::Tc2Mc0)
989 }
990 #[doc = "Indexes of DMA Match/Compare triggers"]
991 #[inline(always)]
992 pub fn tc2_mc_1(self) -> &'a mut crate::W<REG> {
993 self.variant(Trigsrcselect::Tc2Mc1)
994 }
995 #[doc = "Indexes of DMA Overflow trigger"]
996 #[inline(always)]
997 pub fn tc3_ovf(self) -> &'a mut crate::W<REG> {
998 self.variant(Trigsrcselect::Tc3Ovf)
999 }
1000 #[doc = "Indexes of DMA Match/Compare triggers"]
1001 #[inline(always)]
1002 pub fn tc3_mc_0(self) -> &'a mut crate::W<REG> {
1003 self.variant(Trigsrcselect::Tc3Mc0)
1004 }
1005 #[doc = "Indexes of DMA Match/Compare triggers"]
1006 #[inline(always)]
1007 pub fn tc3_mc_1(self) -> &'a mut crate::W<REG> {
1008 self.variant(Trigsrcselect::Tc3Mc1)
1009 }
1010 #[doc = "Indexes of DMA Overflow trigger"]
1011 #[inline(always)]
1012 pub fn tc4_ovf(self) -> &'a mut crate::W<REG> {
1013 self.variant(Trigsrcselect::Tc4Ovf)
1014 }
1015 #[doc = "Indexes of DMA Match/Compare triggers"]
1016 #[inline(always)]
1017 pub fn tc4_mc_0(self) -> &'a mut crate::W<REG> {
1018 self.variant(Trigsrcselect::Tc4Mc0)
1019 }
1020 #[doc = "Indexes of DMA Match/Compare triggers"]
1021 #[inline(always)]
1022 pub fn tc4_mc_1(self) -> &'a mut crate::W<REG> {
1023 self.variant(Trigsrcselect::Tc4Mc1)
1024 }
1025 #[doc = "Indexes of DMA Overflow trigger"]
1026 #[inline(always)]
1027 pub fn tc5_ovf(self) -> &'a mut crate::W<REG> {
1028 self.variant(Trigsrcselect::Tc5Ovf)
1029 }
1030 #[doc = "Indexes of DMA Match/Compare triggers"]
1031 #[inline(always)]
1032 pub fn tc5_mc_0(self) -> &'a mut crate::W<REG> {
1033 self.variant(Trigsrcselect::Tc5Mc0)
1034 }
1035 #[doc = "Indexes of DMA Match/Compare triggers"]
1036 #[inline(always)]
1037 pub fn tc5_mc_1(self) -> &'a mut crate::W<REG> {
1038 self.variant(Trigsrcselect::Tc5Mc1)
1039 }
1040 #[doc = "Indexes of DMA Overflow trigger"]
1041 #[inline(always)]
1042 pub fn tc6_ovf(self) -> &'a mut crate::W<REG> {
1043 self.variant(Trigsrcselect::Tc6Ovf)
1044 }
1045 #[doc = "Indexes of DMA Match/Compare triggers"]
1046 #[inline(always)]
1047 pub fn tc6_mc_0(self) -> &'a mut crate::W<REG> {
1048 self.variant(Trigsrcselect::Tc6Mc0)
1049 }
1050 #[doc = "Indexes of DMA Match/Compare triggers"]
1051 #[inline(always)]
1052 pub fn tc6_mc_1(self) -> &'a mut crate::W<REG> {
1053 self.variant(Trigsrcselect::Tc6Mc1)
1054 }
1055 #[doc = "Indexes of DMA Overflow trigger"]
1056 #[inline(always)]
1057 pub fn tc7_ovf(self) -> &'a mut crate::W<REG> {
1058 self.variant(Trigsrcselect::Tc7Ovf)
1059 }
1060 #[doc = "Indexes of DMA Match/Compare triggers"]
1061 #[inline(always)]
1062 pub fn tc7_mc_0(self) -> &'a mut crate::W<REG> {
1063 self.variant(Trigsrcselect::Tc7Mc0)
1064 }
1065 #[doc = "Indexes of DMA Match/Compare triggers"]
1066 #[inline(always)]
1067 pub fn tc7_mc_1(self) -> &'a mut crate::W<REG> {
1068 self.variant(Trigsrcselect::Tc7Mc1)
1069 }
1070 #[doc = "index of DMA RESRDY trigger"]
1071 #[inline(always)]
1072 pub fn adc0_resrdy(self) -> &'a mut crate::W<REG> {
1073 self.variant(Trigsrcselect::Adc0Resrdy)
1074 }
1075 #[doc = "Index of DMA SEQ trigger"]
1076 #[inline(always)]
1077 pub fn adc0_seq(self) -> &'a mut crate::W<REG> {
1078 self.variant(Trigsrcselect::Adc0Seq)
1079 }
1080 #[doc = "Index of DMA RESRDY trigger"]
1081 #[inline(always)]
1082 pub fn adc1_resrdy(self) -> &'a mut crate::W<REG> {
1083 self.variant(Trigsrcselect::Adc1Resrdy)
1084 }
1085 #[doc = "Index of DMA SEQ trigger"]
1086 #[inline(always)]
1087 pub fn adc1_seq(self) -> &'a mut crate::W<REG> {
1088 self.variant(Trigsrcselect::Adc1Seq)
1089 }
1090 #[doc = "DMA DAC Empty Req"]
1091 #[inline(always)]
1092 pub fn dac_empty_0(self) -> &'a mut crate::W<REG> {
1093 self.variant(Trigsrcselect::DacEmpty0)
1094 }
1095 #[doc = "DMA DAC Empty Req"]
1096 #[inline(always)]
1097 pub fn dac_empty_1(self) -> &'a mut crate::W<REG> {
1098 self.variant(Trigsrcselect::DacEmpty1)
1099 }
1100 #[doc = "DMA DAC Result Ready Req"]
1101 #[inline(always)]
1102 pub fn dac_resrdy_0(self) -> &'a mut crate::W<REG> {
1103 self.variant(Trigsrcselect::DacResrdy0)
1104 }
1105 #[doc = "DMA DAC Result Ready Req"]
1106 #[inline(always)]
1107 pub fn dac_resrdy_1(self) -> &'a mut crate::W<REG> {
1108 self.variant(Trigsrcselect::DacResrdy1)
1109 }
1110 #[doc = "Indexes of DMA RX triggers"]
1111 #[inline(always)]
1112 pub fn i2s_rx_0(self) -> &'a mut crate::W<REG> {
1113 self.variant(Trigsrcselect::I2sRx0)
1114 }
1115 #[doc = "Indexes of DMA RX triggers"]
1116 #[inline(always)]
1117 pub fn i2s_rx_1(self) -> &'a mut crate::W<REG> {
1118 self.variant(Trigsrcselect::I2sRx1)
1119 }
1120 #[doc = "Indexes of DMA TX triggers"]
1121 #[inline(always)]
1122 pub fn i2s_tx_0(self) -> &'a mut crate::W<REG> {
1123 self.variant(Trigsrcselect::I2sTx0)
1124 }
1125 #[doc = "Indexes of DMA TX triggers"]
1126 #[inline(always)]
1127 pub fn i2s_tx_1(self) -> &'a mut crate::W<REG> {
1128 self.variant(Trigsrcselect::I2sTx1)
1129 }
1130 #[doc = "Indexes of PCC RX trigger"]
1131 #[inline(always)]
1132 pub fn pcc_rx(self) -> &'a mut crate::W<REG> {
1133 self.variant(Trigsrcselect::PccRx)
1134 }
1135 #[doc = "DMA DATA Write trigger"]
1136 #[inline(always)]
1137 pub fn aes_wr(self) -> &'a mut crate::W<REG> {
1138 self.variant(Trigsrcselect::AesWr)
1139 }
1140 #[doc = "DMA DATA Read trigger"]
1141 #[inline(always)]
1142 pub fn aes_rd(self) -> &'a mut crate::W<REG> {
1143 self.variant(Trigsrcselect::AesRd)
1144 }
1145 #[doc = "Indexes of QSPI RX trigger"]
1146 #[inline(always)]
1147 pub fn qspi_rx(self) -> &'a mut crate::W<REG> {
1148 self.variant(Trigsrcselect::QspiRx)
1149 }
1150 #[doc = "Indexes of QSPI TX trigger"]
1151 #[inline(always)]
1152 pub fn qspi_tx(self) -> &'a mut crate::W<REG> {
1153 self.variant(Trigsrcselect::QspiTx)
1154 }
1155}
1156#[doc = "Trigger Action\n\nValue on reset: 0"]
1157#[derive(Clone, Copy, Debug, PartialEq, Eq)]
1158#[repr(u8)]
1159pub enum Trigactselect {
1160 #[doc = "0: One trigger required for each block transfer"]
1161 Block = 0,
1162 #[doc = "2: One trigger required for each burst transfer"]
1163 Burst = 2,
1164 #[doc = "3: One trigger required for each transaction"]
1165 Transaction = 3,
1166}
1167impl From<Trigactselect> for u8 {
1168 #[inline(always)]
1169 fn from(variant: Trigactselect) -> Self {
1170 variant as _
1171 }
1172}
1173impl crate::FieldSpec for Trigactselect {
1174 type Ux = u8;
1175}
1176impl crate::IsEnum for Trigactselect {}
1177#[doc = "Field `TRIGACT` reader - Trigger Action"]
1178pub type TrigactR = crate::FieldReader<Trigactselect>;
1179impl TrigactR {
1180 #[doc = "Get enumerated values variant"]
1181 #[inline(always)]
1182 pub const fn variant(&self) -> Option<Trigactselect> {
1183 match self.bits {
1184 0 => Some(Trigactselect::Block),
1185 2 => Some(Trigactselect::Burst),
1186 3 => Some(Trigactselect::Transaction),
1187 _ => None,
1188 }
1189 }
1190 #[doc = "One trigger required for each block transfer"]
1191 #[inline(always)]
1192 pub fn is_block(&self) -> bool {
1193 *self == Trigactselect::Block
1194 }
1195 #[doc = "One trigger required for each burst transfer"]
1196 #[inline(always)]
1197 pub fn is_burst(&self) -> bool {
1198 *self == Trigactselect::Burst
1199 }
1200 #[doc = "One trigger required for each transaction"]
1201 #[inline(always)]
1202 pub fn is_transaction(&self) -> bool {
1203 *self == Trigactselect::Transaction
1204 }
1205}
1206#[doc = "Field `TRIGACT` writer - Trigger Action"]
1207pub type TrigactW<'a, REG> = crate::FieldWriter<'a, REG, 2, Trigactselect>;
1208impl<'a, REG> TrigactW<'a, REG>
1209where
1210 REG: crate::Writable + crate::RegisterSpec,
1211 REG::Ux: From<u8>,
1212{
1213 #[doc = "One trigger required for each block transfer"]
1214 #[inline(always)]
1215 pub fn block(self) -> &'a mut crate::W<REG> {
1216 self.variant(Trigactselect::Block)
1217 }
1218 #[doc = "One trigger required for each burst transfer"]
1219 #[inline(always)]
1220 pub fn burst(self) -> &'a mut crate::W<REG> {
1221 self.variant(Trigactselect::Burst)
1222 }
1223 #[doc = "One trigger required for each transaction"]
1224 #[inline(always)]
1225 pub fn transaction(self) -> &'a mut crate::W<REG> {
1226 self.variant(Trigactselect::Transaction)
1227 }
1228}
1229#[doc = "Burst Length\n\nValue on reset: 0"]
1230#[derive(Clone, Copy, Debug, PartialEq, Eq)]
1231#[repr(u8)]
1232pub enum Burstlenselect {
1233 #[doc = "0: Single-beat burst length"]
1234 Single = 0,
1235 #[doc = "1: 2-beats burst length"]
1236 _2beat = 1,
1237 #[doc = "2: 3-beats burst length"]
1238 _3beat = 2,
1239 #[doc = "3: 4-beats burst length"]
1240 _4beat = 3,
1241 #[doc = "4: 5-beats burst length"]
1242 _5beat = 4,
1243 #[doc = "5: 6-beats burst length"]
1244 _6beat = 5,
1245 #[doc = "6: 7-beats burst length"]
1246 _7beat = 6,
1247 #[doc = "7: 8-beats burst length"]
1248 _8beat = 7,
1249 #[doc = "8: 9-beats burst length"]
1250 _9beat = 8,
1251 #[doc = "9: 10-beats burst length"]
1252 _10beat = 9,
1253 #[doc = "10: 11-beats burst length"]
1254 _11beat = 10,
1255 #[doc = "11: 12-beats burst length"]
1256 _12beat = 11,
1257 #[doc = "12: 13-beats burst length"]
1258 _13beat = 12,
1259 #[doc = "13: 14-beats burst length"]
1260 _14beat = 13,
1261 #[doc = "14: 15-beats burst length"]
1262 _15beat = 14,
1263 #[doc = "15: 16-beats burst length"]
1264 _16beat = 15,
1265}
1266impl From<Burstlenselect> for u8 {
1267 #[inline(always)]
1268 fn from(variant: Burstlenselect) -> Self {
1269 variant as _
1270 }
1271}
1272impl crate::FieldSpec for Burstlenselect {
1273 type Ux = u8;
1274}
1275impl crate::IsEnum for Burstlenselect {}
1276#[doc = "Field `BURSTLEN` reader - Burst Length"]
1277pub type BurstlenR = crate::FieldReader<Burstlenselect>;
1278impl BurstlenR {
1279 #[doc = "Get enumerated values variant"]
1280 #[inline(always)]
1281 pub const fn variant(&self) -> Burstlenselect {
1282 match self.bits {
1283 0 => Burstlenselect::Single,
1284 1 => Burstlenselect::_2beat,
1285 2 => Burstlenselect::_3beat,
1286 3 => Burstlenselect::_4beat,
1287 4 => Burstlenselect::_5beat,
1288 5 => Burstlenselect::_6beat,
1289 6 => Burstlenselect::_7beat,
1290 7 => Burstlenselect::_8beat,
1291 8 => Burstlenselect::_9beat,
1292 9 => Burstlenselect::_10beat,
1293 10 => Burstlenselect::_11beat,
1294 11 => Burstlenselect::_12beat,
1295 12 => Burstlenselect::_13beat,
1296 13 => Burstlenselect::_14beat,
1297 14 => Burstlenselect::_15beat,
1298 15 => Burstlenselect::_16beat,
1299 _ => unreachable!(),
1300 }
1301 }
1302 #[doc = "Single-beat burst length"]
1303 #[inline(always)]
1304 pub fn is_single(&self) -> bool {
1305 *self == Burstlenselect::Single
1306 }
1307 #[doc = "2-beats burst length"]
1308 #[inline(always)]
1309 pub fn is_2beat(&self) -> bool {
1310 *self == Burstlenselect::_2beat
1311 }
1312 #[doc = "3-beats burst length"]
1313 #[inline(always)]
1314 pub fn is_3beat(&self) -> bool {
1315 *self == Burstlenselect::_3beat
1316 }
1317 #[doc = "4-beats burst length"]
1318 #[inline(always)]
1319 pub fn is_4beat(&self) -> bool {
1320 *self == Burstlenselect::_4beat
1321 }
1322 #[doc = "5-beats burst length"]
1323 #[inline(always)]
1324 pub fn is_5beat(&self) -> bool {
1325 *self == Burstlenselect::_5beat
1326 }
1327 #[doc = "6-beats burst length"]
1328 #[inline(always)]
1329 pub fn is_6beat(&self) -> bool {
1330 *self == Burstlenselect::_6beat
1331 }
1332 #[doc = "7-beats burst length"]
1333 #[inline(always)]
1334 pub fn is_7beat(&self) -> bool {
1335 *self == Burstlenselect::_7beat
1336 }
1337 #[doc = "8-beats burst length"]
1338 #[inline(always)]
1339 pub fn is_8beat(&self) -> bool {
1340 *self == Burstlenselect::_8beat
1341 }
1342 #[doc = "9-beats burst length"]
1343 #[inline(always)]
1344 pub fn is_9beat(&self) -> bool {
1345 *self == Burstlenselect::_9beat
1346 }
1347 #[doc = "10-beats burst length"]
1348 #[inline(always)]
1349 pub fn is_10beat(&self) -> bool {
1350 *self == Burstlenselect::_10beat
1351 }
1352 #[doc = "11-beats burst length"]
1353 #[inline(always)]
1354 pub fn is_11beat(&self) -> bool {
1355 *self == Burstlenselect::_11beat
1356 }
1357 #[doc = "12-beats burst length"]
1358 #[inline(always)]
1359 pub fn is_12beat(&self) -> bool {
1360 *self == Burstlenselect::_12beat
1361 }
1362 #[doc = "13-beats burst length"]
1363 #[inline(always)]
1364 pub fn is_13beat(&self) -> bool {
1365 *self == Burstlenselect::_13beat
1366 }
1367 #[doc = "14-beats burst length"]
1368 #[inline(always)]
1369 pub fn is_14beat(&self) -> bool {
1370 *self == Burstlenselect::_14beat
1371 }
1372 #[doc = "15-beats burst length"]
1373 #[inline(always)]
1374 pub fn is_15beat(&self) -> bool {
1375 *self == Burstlenselect::_15beat
1376 }
1377 #[doc = "16-beats burst length"]
1378 #[inline(always)]
1379 pub fn is_16beat(&self) -> bool {
1380 *self == Burstlenselect::_16beat
1381 }
1382}
1383#[doc = "Field `BURSTLEN` writer - Burst Length"]
1384pub type BurstlenW<'a, REG> = crate::FieldWriter<'a, REG, 4, Burstlenselect, crate::Safe>;
1385impl<'a, REG> BurstlenW<'a, REG>
1386where
1387 REG: crate::Writable + crate::RegisterSpec,
1388 REG::Ux: From<u8>,
1389{
1390 #[doc = "Single-beat burst length"]
1391 #[inline(always)]
1392 pub fn single(self) -> &'a mut crate::W<REG> {
1393 self.variant(Burstlenselect::Single)
1394 }
1395 #[doc = "2-beats burst length"]
1396 #[inline(always)]
1397 pub fn _2beat(self) -> &'a mut crate::W<REG> {
1398 self.variant(Burstlenselect::_2beat)
1399 }
1400 #[doc = "3-beats burst length"]
1401 #[inline(always)]
1402 pub fn _3beat(self) -> &'a mut crate::W<REG> {
1403 self.variant(Burstlenselect::_3beat)
1404 }
1405 #[doc = "4-beats burst length"]
1406 #[inline(always)]
1407 pub fn _4beat(self) -> &'a mut crate::W<REG> {
1408 self.variant(Burstlenselect::_4beat)
1409 }
1410 #[doc = "5-beats burst length"]
1411 #[inline(always)]
1412 pub fn _5beat(self) -> &'a mut crate::W<REG> {
1413 self.variant(Burstlenselect::_5beat)
1414 }
1415 #[doc = "6-beats burst length"]
1416 #[inline(always)]
1417 pub fn _6beat(self) -> &'a mut crate::W<REG> {
1418 self.variant(Burstlenselect::_6beat)
1419 }
1420 #[doc = "7-beats burst length"]
1421 #[inline(always)]
1422 pub fn _7beat(self) -> &'a mut crate::W<REG> {
1423 self.variant(Burstlenselect::_7beat)
1424 }
1425 #[doc = "8-beats burst length"]
1426 #[inline(always)]
1427 pub fn _8beat(self) -> &'a mut crate::W<REG> {
1428 self.variant(Burstlenselect::_8beat)
1429 }
1430 #[doc = "9-beats burst length"]
1431 #[inline(always)]
1432 pub fn _9beat(self) -> &'a mut crate::W<REG> {
1433 self.variant(Burstlenselect::_9beat)
1434 }
1435 #[doc = "10-beats burst length"]
1436 #[inline(always)]
1437 pub fn _10beat(self) -> &'a mut crate::W<REG> {
1438 self.variant(Burstlenselect::_10beat)
1439 }
1440 #[doc = "11-beats burst length"]
1441 #[inline(always)]
1442 pub fn _11beat(self) -> &'a mut crate::W<REG> {
1443 self.variant(Burstlenselect::_11beat)
1444 }
1445 #[doc = "12-beats burst length"]
1446 #[inline(always)]
1447 pub fn _12beat(self) -> &'a mut crate::W<REG> {
1448 self.variant(Burstlenselect::_12beat)
1449 }
1450 #[doc = "13-beats burst length"]
1451 #[inline(always)]
1452 pub fn _13beat(self) -> &'a mut crate::W<REG> {
1453 self.variant(Burstlenselect::_13beat)
1454 }
1455 #[doc = "14-beats burst length"]
1456 #[inline(always)]
1457 pub fn _14beat(self) -> &'a mut crate::W<REG> {
1458 self.variant(Burstlenselect::_14beat)
1459 }
1460 #[doc = "15-beats burst length"]
1461 #[inline(always)]
1462 pub fn _15beat(self) -> &'a mut crate::W<REG> {
1463 self.variant(Burstlenselect::_15beat)
1464 }
1465 #[doc = "16-beats burst length"]
1466 #[inline(always)]
1467 pub fn _16beat(self) -> &'a mut crate::W<REG> {
1468 self.variant(Burstlenselect::_16beat)
1469 }
1470}
1471#[doc = "FIFO Threshold\n\nValue on reset: 0"]
1472#[derive(Clone, Copy, Debug, PartialEq, Eq)]
1473#[repr(u8)]
1474pub enum Thresholdselect {
1475 #[doc = "0: Destination write starts after each beat source address read"]
1476 _1beat = 0,
1477 #[doc = "1: Destination write starts after 2-beats source address read"]
1478 _2beats = 1,
1479 #[doc = "2: Destination write starts after 4-beats source address read"]
1480 _4beats = 2,
1481 #[doc = "3: Destination write starts after 8-beats source address read"]
1482 _8beats = 3,
1483}
1484impl From<Thresholdselect> for u8 {
1485 #[inline(always)]
1486 fn from(variant: Thresholdselect) -> Self {
1487 variant as _
1488 }
1489}
1490impl crate::FieldSpec for Thresholdselect {
1491 type Ux = u8;
1492}
1493impl crate::IsEnum for Thresholdselect {}
1494#[doc = "Field `THRESHOLD` reader - FIFO Threshold"]
1495pub type ThresholdR = crate::FieldReader<Thresholdselect>;
1496impl ThresholdR {
1497 #[doc = "Get enumerated values variant"]
1498 #[inline(always)]
1499 pub const fn variant(&self) -> Thresholdselect {
1500 match self.bits {
1501 0 => Thresholdselect::_1beat,
1502 1 => Thresholdselect::_2beats,
1503 2 => Thresholdselect::_4beats,
1504 3 => Thresholdselect::_8beats,
1505 _ => unreachable!(),
1506 }
1507 }
1508 #[doc = "Destination write starts after each beat source address read"]
1509 #[inline(always)]
1510 pub fn is_1beat(&self) -> bool {
1511 *self == Thresholdselect::_1beat
1512 }
1513 #[doc = "Destination write starts after 2-beats source address read"]
1514 #[inline(always)]
1515 pub fn is_2beats(&self) -> bool {
1516 *self == Thresholdselect::_2beats
1517 }
1518 #[doc = "Destination write starts after 4-beats source address read"]
1519 #[inline(always)]
1520 pub fn is_4beats(&self) -> bool {
1521 *self == Thresholdselect::_4beats
1522 }
1523 #[doc = "Destination write starts after 8-beats source address read"]
1524 #[inline(always)]
1525 pub fn is_8beats(&self) -> bool {
1526 *self == Thresholdselect::_8beats
1527 }
1528}
1529#[doc = "Field `THRESHOLD` writer - FIFO Threshold"]
1530pub type ThresholdW<'a, REG> = crate::FieldWriter<'a, REG, 2, Thresholdselect, crate::Safe>;
1531impl<'a, REG> ThresholdW<'a, REG>
1532where
1533 REG: crate::Writable + crate::RegisterSpec,
1534 REG::Ux: From<u8>,
1535{
1536 #[doc = "Destination write starts after each beat source address read"]
1537 #[inline(always)]
1538 pub fn _1beat(self) -> &'a mut crate::W<REG> {
1539 self.variant(Thresholdselect::_1beat)
1540 }
1541 #[doc = "Destination write starts after 2-beats source address read"]
1542 #[inline(always)]
1543 pub fn _2beats(self) -> &'a mut crate::W<REG> {
1544 self.variant(Thresholdselect::_2beats)
1545 }
1546 #[doc = "Destination write starts after 4-beats source address read"]
1547 #[inline(always)]
1548 pub fn _4beats(self) -> &'a mut crate::W<REG> {
1549 self.variant(Thresholdselect::_4beats)
1550 }
1551 #[doc = "Destination write starts after 8-beats source address read"]
1552 #[inline(always)]
1553 pub fn _8beats(self) -> &'a mut crate::W<REG> {
1554 self.variant(Thresholdselect::_8beats)
1555 }
1556}
1557impl R {
1558 #[doc = "Bit 0 - Channel Software Reset"]
1559 #[inline(always)]
1560 pub fn swrst(&self) -> SwrstR {
1561 SwrstR::new((self.bits & 1) != 0)
1562 }
1563 #[doc = "Bit 1 - Channel Enable"]
1564 #[inline(always)]
1565 pub fn enable(&self) -> EnableR {
1566 EnableR::new(((self.bits >> 1) & 1) != 0)
1567 }
1568 #[doc = "Bit 6 - Channel Run in Standby"]
1569 #[inline(always)]
1570 pub fn runstdby(&self) -> RunstdbyR {
1571 RunstdbyR::new(((self.bits >> 6) & 1) != 0)
1572 }
1573 #[doc = "Bits 8:14 - Trigger Source"]
1574 #[inline(always)]
1575 pub fn trigsrc(&self) -> TrigsrcR {
1576 TrigsrcR::new(((self.bits >> 8) & 0x7f) as u8)
1577 }
1578 #[doc = "Bits 20:21 - Trigger Action"]
1579 #[inline(always)]
1580 pub fn trigact(&self) -> TrigactR {
1581 TrigactR::new(((self.bits >> 20) & 3) as u8)
1582 }
1583 #[doc = "Bits 24:27 - Burst Length"]
1584 #[inline(always)]
1585 pub fn burstlen(&self) -> BurstlenR {
1586 BurstlenR::new(((self.bits >> 24) & 0x0f) as u8)
1587 }
1588 #[doc = "Bits 28:29 - FIFO Threshold"]
1589 #[inline(always)]
1590 pub fn threshold(&self) -> ThresholdR {
1591 ThresholdR::new(((self.bits >> 28) & 3) as u8)
1592 }
1593}
1594impl W {
1595 #[doc = "Bit 0 - Channel Software Reset"]
1596 #[inline(always)]
1597 #[must_use]
1598 pub fn swrst(&mut self) -> SwrstW<ChctrlaSpec> {
1599 SwrstW::new(self, 0)
1600 }
1601 #[doc = "Bit 1 - Channel Enable"]
1602 #[inline(always)]
1603 #[must_use]
1604 pub fn enable(&mut self) -> EnableW<ChctrlaSpec> {
1605 EnableW::new(self, 1)
1606 }
1607 #[doc = "Bit 6 - Channel Run in Standby"]
1608 #[inline(always)]
1609 #[must_use]
1610 pub fn runstdby(&mut self) -> RunstdbyW<ChctrlaSpec> {
1611 RunstdbyW::new(self, 6)
1612 }
1613 #[doc = "Bits 8:14 - Trigger Source"]
1614 #[inline(always)]
1615 #[must_use]
1616 pub fn trigsrc(&mut self) -> TrigsrcW<ChctrlaSpec> {
1617 TrigsrcW::new(self, 8)
1618 }
1619 #[doc = "Bits 20:21 - Trigger Action"]
1620 #[inline(always)]
1621 #[must_use]
1622 pub fn trigact(&mut self) -> TrigactW<ChctrlaSpec> {
1623 TrigactW::new(self, 20)
1624 }
1625 #[doc = "Bits 24:27 - Burst Length"]
1626 #[inline(always)]
1627 #[must_use]
1628 pub fn burstlen(&mut self) -> BurstlenW<ChctrlaSpec> {
1629 BurstlenW::new(self, 24)
1630 }
1631 #[doc = "Bits 28:29 - FIFO Threshold"]
1632 #[inline(always)]
1633 #[must_use]
1634 pub fn threshold(&mut self) -> ThresholdW<ChctrlaSpec> {
1635 ThresholdW::new(self, 28)
1636 }
1637}
1638#[doc = "Channel n Control A\n\nYou can [`read`](crate::Reg::read) this register and get [`chctrla::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`chctrla::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
1639pub struct ChctrlaSpec;
1640impl crate::RegisterSpec for ChctrlaSpec {
1641 type Ux = u32;
1642}
1643#[doc = "`read()` method returns [`chctrla::R`](R) reader structure"]
1644impl crate::Readable for ChctrlaSpec {}
1645#[doc = "`write(|w| ..)` method takes [`chctrla::W`](W) writer structure"]
1646impl crate::Writable for ChctrlaSpec {
1647 type Safety = crate::Unsafe;
1648 const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
1649 const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
1650}
1651#[doc = "`reset()` method sets CHCTRLA to value 0"]
1652impl crate::Resettable for ChctrlaSpec {
1653 const RESET_VALUE: u32 = 0;
1654}