1#![allow(clippy::identity_op)]
21#![allow(clippy::module_inception)]
22#![allow(clippy::derivable_impls)]
23#[allow(unused_imports)]
24use crate::common::sealed;
25#[allow(unused_imports)]
26use crate::common::*;
27#[doc = r"SMOTOR registers"]
28unsafe impl ::core::marker::Send for super::Smotor {}
29unsafe impl ::core::marker::Sync for super::Smotor {}
30impl super::Smotor {
31 #[allow(unused)]
32 #[inline(always)]
33 pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34 self.ptr
35 }
36
37 #[doc = "Base address of the command table"]
38 #[inline(always)]
39 pub const fn cmd_table_base(
40 &self,
41 ) -> &'static crate::common::Reg<self::CmdTableBase_SPEC, crate::common::RW> {
42 unsafe {
43 crate::common::Reg::<self::CmdTableBase_SPEC, crate::common::RW>::from_ptr(
44 self._svd2pac_as_ptr().add(128usize),
45 )
46 }
47 }
48
49 #[doc = "Pattern generator 0 control register"]
50 #[inline(always)]
51 pub const fn pg0_ctrl_reg(
52 &self,
53 ) -> &'static crate::common::Reg<self::Pg0CtrlReg_SPEC, crate::common::RW> {
54 unsafe {
55 crate::common::Reg::<self::Pg0CtrlReg_SPEC, crate::common::RW>::from_ptr(
56 self._svd2pac_as_ptr().add(4usize),
57 )
58 }
59 }
60
61 #[doc = "Pattern generator 1 control register"]
62 #[inline(always)]
63 pub const fn pg1_ctrl_reg(
64 &self,
65 ) -> &'static crate::common::Reg<self::Pg1CtrlReg_SPEC, crate::common::RW> {
66 unsafe {
67 crate::common::Reg::<self::Pg1CtrlReg_SPEC, crate::common::RW>::from_ptr(
68 self._svd2pac_as_ptr().add(8usize),
69 )
70 }
71 }
72
73 #[doc = "Pattern generator 2 control register"]
74 #[inline(always)]
75 pub const fn pg2_ctrl_reg(
76 &self,
77 ) -> &'static crate::common::Reg<self::Pg2CtrlReg_SPEC, crate::common::RW> {
78 unsafe {
79 crate::common::Reg::<self::Pg2CtrlReg_SPEC, crate::common::RW>::from_ptr(
80 self._svd2pac_as_ptr().add(12usize),
81 )
82 }
83 }
84
85 #[doc = "Pattern generator 3 control register"]
86 #[inline(always)]
87 pub const fn pg3_ctrl_reg(
88 &self,
89 ) -> &'static crate::common::Reg<self::Pg3CtrlReg_SPEC, crate::common::RW> {
90 unsafe {
91 crate::common::Reg::<self::Pg3CtrlReg_SPEC, crate::common::RW>::from_ptr(
92 self._svd2pac_as_ptr().add(16usize),
93 )
94 }
95 }
96
97 #[doc = "Pattern generator 4 control register"]
98 #[inline(always)]
99 pub const fn pg4_ctrl_reg(
100 &self,
101 ) -> &'static crate::common::Reg<self::Pg4CtrlReg_SPEC, crate::common::RW> {
102 unsafe {
103 crate::common::Reg::<self::Pg4CtrlReg_SPEC, crate::common::RW>::from_ptr(
104 self._svd2pac_as_ptr().add(20usize),
105 )
106 }
107 }
108
109 #[doc = "Motor control command FIFO register"]
110 #[inline(always)]
111 pub const fn smotor_cmd_fifo_reg(
112 &self,
113 ) -> &'static crate::common::Reg<self::SmotorCmdFifoReg_SPEC, crate::common::RW> {
114 unsafe {
115 crate::common::Reg::<self::SmotorCmdFifoReg_SPEC, crate::common::RW>::from_ptr(
116 self._svd2pac_as_ptr().add(32usize),
117 )
118 }
119 }
120
121 #[doc = "Command read pointer register"]
122 #[inline(always)]
123 pub const fn smotor_cmd_read_ptr_reg(
124 &self,
125 ) -> &'static crate::common::Reg<self::SmotorCmdReadPtrReg_SPEC, crate::common::RW> {
126 unsafe {
127 crate::common::Reg::<self::SmotorCmdReadPtrReg_SPEC, crate::common::RW>::from_ptr(
128 self._svd2pac_as_ptr().add(36usize),
129 )
130 }
131 }
132
133 #[doc = "Command write pointer register"]
134 #[inline(always)]
135 pub const fn smotor_cmd_write_ptr_reg(
136 &self,
137 ) -> &'static crate::common::Reg<self::SmotorCmdWritePtrReg_SPEC, crate::common::RW> {
138 unsafe {
139 crate::common::Reg::<self::SmotorCmdWritePtrReg_SPEC, crate::common::RW>::from_ptr(
140 self._svd2pac_as_ptr().add(40usize),
141 )
142 }
143 }
144
145 #[doc = "Motor control register"]
146 #[inline(always)]
147 pub const fn smotor_ctrl_reg(
148 &self,
149 ) -> &'static crate::common::Reg<self::SmotorCtrlReg_SPEC, crate::common::RW> {
150 unsafe {
151 crate::common::Reg::<self::SmotorCtrlReg_SPEC, crate::common::RW>::from_ptr(
152 self._svd2pac_as_ptr().add(0usize),
153 )
154 }
155 }
156
157 #[doc = "Motor control IRQ clear register"]
158 #[inline(always)]
159 pub const fn smotor_irq_clear_reg(
160 &self,
161 ) -> &'static crate::common::Reg<self::SmotorIrqClearReg_SPEC, crate::common::RW> {
162 unsafe {
163 crate::common::Reg::<self::SmotorIrqClearReg_SPEC, crate::common::RW>::from_ptr(
164 self._svd2pac_as_ptr().add(48usize),
165 )
166 }
167 }
168
169 #[doc = "Motor controller trigger register"]
170 #[inline(always)]
171 pub const fn smotor_trigger_reg(
172 &self,
173 ) -> &'static crate::common::Reg<self::SmotorTriggerReg_SPEC, crate::common::RW> {
174 unsafe {
175 crate::common::Reg::<self::SmotorTriggerReg_SPEC, crate::common::RW>::from_ptr(
176 self._svd2pac_as_ptr().add(24usize),
177 )
178 }
179 }
180
181 #[doc = "Base address of the wavetable"]
182 #[inline(always)]
183 pub const fn wavetable_base(
184 &self,
185 ) -> &'static crate::common::Reg<self::WavetableBase_SPEC, crate::common::RW> {
186 unsafe {
187 crate::common::Reg::<self::WavetableBase_SPEC, crate::common::RW>::from_ptr(
188 self._svd2pac_as_ptr().add(64usize),
189 )
190 }
191 }
192}
193#[doc(hidden)]
194#[derive(Copy, Clone, Eq, PartialEq)]
195pub struct CmdTableBase_SPEC;
196impl crate::sealed::RegSpec for CmdTableBase_SPEC {
197 type DataType = u32;
198}
199
200#[doc = "Base address of the command table"]
201pub type CmdTableBase = crate::RegValueT<CmdTableBase_SPEC>;
202
203impl CmdTableBase {
204 #[doc = "Dummy field for register test generation."]
205 #[inline(always)]
206 pub fn cmd_table_base_x(
207 self,
208 ) -> crate::common::RegisterField<
209 0,
210 0xffffffff,
211 1,
212 0,
213 u32,
214 u32,
215 CmdTableBase_SPEC,
216 crate::common::R,
217 > {
218 crate::common::RegisterField::<
219 0,
220 0xffffffff,
221 1,
222 0,
223 u32,
224 u32,
225 CmdTableBase_SPEC,
226 crate::common::R,
227 >::from_register(self, 0)
228 }
229}
230impl ::core::default::Default for CmdTableBase {
231 #[inline(always)]
232 fn default() -> CmdTableBase {
233 <crate::RegValueT<CmdTableBase_SPEC> as RegisterValue<_>>::new(0)
234 }
235}
236
237#[doc(hidden)]
238#[derive(Copy, Clone, Eq, PartialEq)]
239pub struct Pg0CtrlReg_SPEC;
240impl crate::sealed::RegSpec for Pg0CtrlReg_SPEC {
241 type DataType = u32;
242}
243
244#[doc = "Pattern generator 0 control register"]
245pub type Pg0CtrlReg = crate::RegValueT<Pg0CtrlReg_SPEC>;
246
247impl Pg0CtrlReg {
248 #[doc = "Determines if the corresponding pattern generator will contribute to the generation of the IRQ when it is done generating a pattern. It is only valid if SMOTOR_GENEND_IRQ_EN is enabled:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
249 #[inline(always)]
250 pub fn genend_irq_en(
251 self,
252 ) -> crate::common::RegisterFieldBool<15, 1, 0, Pg0CtrlReg_SPEC, crate::common::RW> {
253 crate::common::RegisterFieldBool::<15,1,0,Pg0CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
254 }
255
256 #[doc = "Determines if the corresponding pattern generator will contribute to the generation of the IRQ when it starts generating a pattern. It is only valid if SMOTOR_GENSTART_IRQ_EN is enabled:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
257 #[inline(always)]
258 pub fn genstart_irq_en(
259 self,
260 ) -> crate::common::RegisterFieldBool<14, 1, 0, Pg0CtrlReg_SPEC, crate::common::RW> {
261 crate::common::RegisterFieldBool::<14,1,0,Pg0CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
262 }
263
264 #[doc = "0 = Auto start mode: pattern generator will start whenever all enabled signals have received a command\n1 = Manual start mode: pattern generator will only start if it has been given a PG_START, and all enabled signals have received a command"]
265 #[inline(always)]
266 pub fn pg_start_mode(
267 self,
268 ) -> crate::common::RegisterFieldBool<13, 1, 0, Pg0CtrlReg_SPEC, crate::common::RW> {
269 crate::common::RegisterFieldBool::<13,1,0,Pg0CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
270 }
271
272 #[doc = "0 = Flex mode\n1 = Pair mode"]
273 #[inline(always)]
274 pub fn pg_mode(
275 self,
276 ) -> crate::common::RegisterFieldBool<12, 1, 0, Pg0CtrlReg_SPEC, crate::common::RW> {
277 crate::common::RegisterFieldBool::<12,1,0,Pg0CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
278 }
279
280 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
281 #[inline(always)]
282 pub fn sig3_en(
283 self,
284 ) -> crate::common::RegisterFieldBool<11, 1, 0, Pg0CtrlReg_SPEC, crate::common::RW> {
285 crate::common::RegisterFieldBool::<11,1,0,Pg0CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
286 }
287
288 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
289 #[inline(always)]
290 pub fn sig2_en(
291 self,
292 ) -> crate::common::RegisterFieldBool<10, 1, 0, Pg0CtrlReg_SPEC, crate::common::RW> {
293 crate::common::RegisterFieldBool::<10,1,0,Pg0CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
294 }
295
296 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
297 #[inline(always)]
298 pub fn sig1_en(
299 self,
300 ) -> crate::common::RegisterFieldBool<9, 1, 0, Pg0CtrlReg_SPEC, crate::common::RW> {
301 crate::common::RegisterFieldBool::<9,1,0,Pg0CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
302 }
303
304 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
305 #[inline(always)]
306 pub fn sig0_en(
307 self,
308 ) -> crate::common::RegisterFieldBool<8, 1, 0, Pg0CtrlReg_SPEC, crate::common::RW> {
309 crate::common::RegisterFieldBool::<8,1,0,Pg0CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
310 }
311
312 #[doc = "Selects which signal is routed to the output."]
313 #[inline(always)]
314 pub fn out3_sig(
315 self,
316 ) -> crate::common::RegisterField<6, 0x3, 1, 0, u8, u8, Pg0CtrlReg_SPEC, crate::common::RW>
317 {
318 crate::common::RegisterField::<6,0x3,1,0,u8,u8,Pg0CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
319 }
320
321 #[doc = "Selects which signal is routed to the output."]
322 #[inline(always)]
323 pub fn out2_sig(
324 self,
325 ) -> crate::common::RegisterField<4, 0x3, 1, 0, u8, u8, Pg0CtrlReg_SPEC, crate::common::RW>
326 {
327 crate::common::RegisterField::<4,0x3,1,0,u8,u8,Pg0CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
328 }
329
330 #[doc = "Selects which signal is routed to the output."]
331 #[inline(always)]
332 pub fn out1_sig(
333 self,
334 ) -> crate::common::RegisterField<2, 0x3, 1, 0, u8, u8, Pg0CtrlReg_SPEC, crate::common::RW>
335 {
336 crate::common::RegisterField::<2,0x3,1,0,u8,u8,Pg0CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
337 }
338
339 #[doc = "Selects which signal is routed to the output."]
340 #[inline(always)]
341 pub fn out0_sig(
342 self,
343 ) -> crate::common::RegisterField<0, 0x3, 1, 0, u8, u8, Pg0CtrlReg_SPEC, crate::common::RW>
344 {
345 crate::common::RegisterField::<0,0x3,1,0,u8,u8,Pg0CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
346 }
347}
348impl ::core::default::Default for Pg0CtrlReg {
349 #[inline(always)]
350 fn default() -> Pg0CtrlReg {
351 <crate::RegValueT<Pg0CtrlReg_SPEC> as RegisterValue<_>>::new(4068)
352 }
353}
354
355#[doc(hidden)]
356#[derive(Copy, Clone, Eq, PartialEq)]
357pub struct Pg1CtrlReg_SPEC;
358impl crate::sealed::RegSpec for Pg1CtrlReg_SPEC {
359 type DataType = u32;
360}
361
362#[doc = "Pattern generator 1 control register"]
363pub type Pg1CtrlReg = crate::RegValueT<Pg1CtrlReg_SPEC>;
364
365impl Pg1CtrlReg {
366 #[doc = "Determines if the corresponding pattern generator will contribute to the generation of the IRQ when it is done generating a pattern. It is only valid if SMOTOR_GENEND_IRQ_EN is enabled:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
367 #[inline(always)]
368 pub fn genend_irq_en(
369 self,
370 ) -> crate::common::RegisterFieldBool<15, 1, 0, Pg1CtrlReg_SPEC, crate::common::RW> {
371 crate::common::RegisterFieldBool::<15,1,0,Pg1CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
372 }
373
374 #[doc = "Determines if the corresponding pattern generator will contribute to the generation of the IRQ when it starts generating a pattern. It is only valid if SMOTOR_GENSTART_IRQ_EN is enabled:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
375 #[inline(always)]
376 pub fn genstart_irq_en(
377 self,
378 ) -> crate::common::RegisterFieldBool<14, 1, 0, Pg1CtrlReg_SPEC, crate::common::RW> {
379 crate::common::RegisterFieldBool::<14,1,0,Pg1CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
380 }
381
382 #[doc = "0 = Auto start mode: pattern generator will start whenever all enabled signals have received a command\n1 = Manual start mode: pattern generator will only start if it has been given a PG_START, and all enabled signals have received a command"]
383 #[inline(always)]
384 pub fn pg_start_mode(
385 self,
386 ) -> crate::common::RegisterFieldBool<13, 1, 0, Pg1CtrlReg_SPEC, crate::common::RW> {
387 crate::common::RegisterFieldBool::<13,1,0,Pg1CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
388 }
389
390 #[doc = "0 = Flex mode\n1 = Pair mode"]
391 #[inline(always)]
392 pub fn pg_mode(
393 self,
394 ) -> crate::common::RegisterFieldBool<12, 1, 0, Pg1CtrlReg_SPEC, crate::common::RW> {
395 crate::common::RegisterFieldBool::<12,1,0,Pg1CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
396 }
397
398 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
399 #[inline(always)]
400 pub fn sig3_en(
401 self,
402 ) -> crate::common::RegisterFieldBool<11, 1, 0, Pg1CtrlReg_SPEC, crate::common::RW> {
403 crate::common::RegisterFieldBool::<11,1,0,Pg1CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
404 }
405
406 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
407 #[inline(always)]
408 pub fn sig2_en(
409 self,
410 ) -> crate::common::RegisterFieldBool<10, 1, 0, Pg1CtrlReg_SPEC, crate::common::RW> {
411 crate::common::RegisterFieldBool::<10,1,0,Pg1CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
412 }
413
414 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
415 #[inline(always)]
416 pub fn sig1_en(
417 self,
418 ) -> crate::common::RegisterFieldBool<9, 1, 0, Pg1CtrlReg_SPEC, crate::common::RW> {
419 crate::common::RegisterFieldBool::<9,1,0,Pg1CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
420 }
421
422 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
423 #[inline(always)]
424 pub fn sig0_en(
425 self,
426 ) -> crate::common::RegisterFieldBool<8, 1, 0, Pg1CtrlReg_SPEC, crate::common::RW> {
427 crate::common::RegisterFieldBool::<8,1,0,Pg1CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
428 }
429
430 #[doc = "Selects which signal is routed to the output."]
431 #[inline(always)]
432 pub fn out3_sig(
433 self,
434 ) -> crate::common::RegisterField<6, 0x3, 1, 0, u8, u8, Pg1CtrlReg_SPEC, crate::common::RW>
435 {
436 crate::common::RegisterField::<6,0x3,1,0,u8,u8,Pg1CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
437 }
438
439 #[doc = "Selects which signal is routed to the output."]
440 #[inline(always)]
441 pub fn out2_sig(
442 self,
443 ) -> crate::common::RegisterField<4, 0x3, 1, 0, u8, u8, Pg1CtrlReg_SPEC, crate::common::RW>
444 {
445 crate::common::RegisterField::<4,0x3,1,0,u8,u8,Pg1CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
446 }
447
448 #[doc = "Selects which signal is routed to the output."]
449 #[inline(always)]
450 pub fn out1_sig(
451 self,
452 ) -> crate::common::RegisterField<2, 0x3, 1, 0, u8, u8, Pg1CtrlReg_SPEC, crate::common::RW>
453 {
454 crate::common::RegisterField::<2,0x3,1,0,u8,u8,Pg1CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
455 }
456
457 #[doc = "Selects which signal is routed to the output."]
458 #[inline(always)]
459 pub fn out0_sig(
460 self,
461 ) -> crate::common::RegisterField<0, 0x3, 1, 0, u8, u8, Pg1CtrlReg_SPEC, crate::common::RW>
462 {
463 crate::common::RegisterField::<0,0x3,1,0,u8,u8,Pg1CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
464 }
465}
466impl ::core::default::Default for Pg1CtrlReg {
467 #[inline(always)]
468 fn default() -> Pg1CtrlReg {
469 <crate::RegValueT<Pg1CtrlReg_SPEC> as RegisterValue<_>>::new(4068)
470 }
471}
472
473#[doc(hidden)]
474#[derive(Copy, Clone, Eq, PartialEq)]
475pub struct Pg2CtrlReg_SPEC;
476impl crate::sealed::RegSpec for Pg2CtrlReg_SPEC {
477 type DataType = u32;
478}
479
480#[doc = "Pattern generator 2 control register"]
481pub type Pg2CtrlReg = crate::RegValueT<Pg2CtrlReg_SPEC>;
482
483impl Pg2CtrlReg {
484 #[doc = "Determines if the corresponding pattern generator will contribute to the generation of the IRQ when it is done generating a pattern. It is only valid if SMOTOR_GENEND_IRQ_EN is enabled:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
485 #[inline(always)]
486 pub fn genend_irq_en(
487 self,
488 ) -> crate::common::RegisterFieldBool<15, 1, 0, Pg2CtrlReg_SPEC, crate::common::RW> {
489 crate::common::RegisterFieldBool::<15,1,0,Pg2CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
490 }
491
492 #[doc = "Determines if the corresponding pattern generator will contribute to the generation of the IRQ when it starts generating a pattern. It is only valid if SMOTOR_GENSTART_IRQ_EN is enabled:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
493 #[inline(always)]
494 pub fn genstart_irq_en(
495 self,
496 ) -> crate::common::RegisterFieldBool<14, 1, 0, Pg2CtrlReg_SPEC, crate::common::RW> {
497 crate::common::RegisterFieldBool::<14,1,0,Pg2CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
498 }
499
500 #[doc = "0 = Auto start mode: pattern generator will start whenever all enabled signals have received a command\n1 = Manual start mode: pattern generator will only start if it has been given a PG_START, and all enabled signals have received a command"]
501 #[inline(always)]
502 pub fn pg_start_mode(
503 self,
504 ) -> crate::common::RegisterFieldBool<13, 1, 0, Pg2CtrlReg_SPEC, crate::common::RW> {
505 crate::common::RegisterFieldBool::<13,1,0,Pg2CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
506 }
507
508 #[doc = "0 = Flex mode\n1 = Pair mode"]
509 #[inline(always)]
510 pub fn pg_mode(
511 self,
512 ) -> crate::common::RegisterFieldBool<12, 1, 0, Pg2CtrlReg_SPEC, crate::common::RW> {
513 crate::common::RegisterFieldBool::<12,1,0,Pg2CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
514 }
515
516 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
517 #[inline(always)]
518 pub fn sig3_en(
519 self,
520 ) -> crate::common::RegisterFieldBool<11, 1, 0, Pg2CtrlReg_SPEC, crate::common::RW> {
521 crate::common::RegisterFieldBool::<11,1,0,Pg2CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
522 }
523
524 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
525 #[inline(always)]
526 pub fn sig2_en(
527 self,
528 ) -> crate::common::RegisterFieldBool<10, 1, 0, Pg2CtrlReg_SPEC, crate::common::RW> {
529 crate::common::RegisterFieldBool::<10,1,0,Pg2CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
530 }
531
532 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
533 #[inline(always)]
534 pub fn sig1_en(
535 self,
536 ) -> crate::common::RegisterFieldBool<9, 1, 0, Pg2CtrlReg_SPEC, crate::common::RW> {
537 crate::common::RegisterFieldBool::<9,1,0,Pg2CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
538 }
539
540 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
541 #[inline(always)]
542 pub fn sig0_en(
543 self,
544 ) -> crate::common::RegisterFieldBool<8, 1, 0, Pg2CtrlReg_SPEC, crate::common::RW> {
545 crate::common::RegisterFieldBool::<8,1,0,Pg2CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
546 }
547
548 #[doc = "Selects which signal is routed to the output."]
549 #[inline(always)]
550 pub fn out3_sig(
551 self,
552 ) -> crate::common::RegisterField<6, 0x3, 1, 0, u8, u8, Pg2CtrlReg_SPEC, crate::common::RW>
553 {
554 crate::common::RegisterField::<6,0x3,1,0,u8,u8,Pg2CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
555 }
556
557 #[doc = "Selects which signal is routed to the output."]
558 #[inline(always)]
559 pub fn out2_sig(
560 self,
561 ) -> crate::common::RegisterField<4, 0x3, 1, 0, u8, u8, Pg2CtrlReg_SPEC, crate::common::RW>
562 {
563 crate::common::RegisterField::<4,0x3,1,0,u8,u8,Pg2CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
564 }
565
566 #[doc = "Selects which signal is routed to the output."]
567 #[inline(always)]
568 pub fn out1_sig(
569 self,
570 ) -> crate::common::RegisterField<2, 0x3, 1, 0, u8, u8, Pg2CtrlReg_SPEC, crate::common::RW>
571 {
572 crate::common::RegisterField::<2,0x3,1,0,u8,u8,Pg2CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
573 }
574
575 #[doc = "Selects which signal is routed to the output."]
576 #[inline(always)]
577 pub fn out0_sig(
578 self,
579 ) -> crate::common::RegisterField<0, 0x3, 1, 0, u8, u8, Pg2CtrlReg_SPEC, crate::common::RW>
580 {
581 crate::common::RegisterField::<0,0x3,1,0,u8,u8,Pg2CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
582 }
583}
584impl ::core::default::Default for Pg2CtrlReg {
585 #[inline(always)]
586 fn default() -> Pg2CtrlReg {
587 <crate::RegValueT<Pg2CtrlReg_SPEC> as RegisterValue<_>>::new(4068)
588 }
589}
590
591#[doc(hidden)]
592#[derive(Copy, Clone, Eq, PartialEq)]
593pub struct Pg3CtrlReg_SPEC;
594impl crate::sealed::RegSpec for Pg3CtrlReg_SPEC {
595 type DataType = u32;
596}
597
598#[doc = "Pattern generator 3 control register"]
599pub type Pg3CtrlReg = crate::RegValueT<Pg3CtrlReg_SPEC>;
600
601impl Pg3CtrlReg {
602 #[doc = "Determines if the corresponding pattern generator will contribute to the generation of the IRQ when it is done generating a pattern. It is only valid if SMOTOR_GENEND_IRQ_EN is enabled:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
603 #[inline(always)]
604 pub fn genend_irq_en(
605 self,
606 ) -> crate::common::RegisterFieldBool<15, 1, 0, Pg3CtrlReg_SPEC, crate::common::RW> {
607 crate::common::RegisterFieldBool::<15,1,0,Pg3CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
608 }
609
610 #[doc = "Determines if the corresponding pattern generator will contribute to the generation of the IRQ when it starts generating a pattern. It is only valid if SMOTOR_GENSTART_IRQ_EN is enabled:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
611 #[inline(always)]
612 pub fn genstart_irq_en(
613 self,
614 ) -> crate::common::RegisterFieldBool<14, 1, 0, Pg3CtrlReg_SPEC, crate::common::RW> {
615 crate::common::RegisterFieldBool::<14,1,0,Pg3CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
616 }
617
618 #[doc = "0 = Auto start mode: pattern generator will start whenever all enabled signals have received a command\n1 = Manual start mode: pattern generator will only start if it has been given a PG_START, and all enabled signals have received a command"]
619 #[inline(always)]
620 pub fn pg_start_mode(
621 self,
622 ) -> crate::common::RegisterFieldBool<13, 1, 0, Pg3CtrlReg_SPEC, crate::common::RW> {
623 crate::common::RegisterFieldBool::<13,1,0,Pg3CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
624 }
625
626 #[doc = "0 = Flex mode\n1 = Pair mode"]
627 #[inline(always)]
628 pub fn pg_mode(
629 self,
630 ) -> crate::common::RegisterFieldBool<12, 1, 0, Pg3CtrlReg_SPEC, crate::common::RW> {
631 crate::common::RegisterFieldBool::<12,1,0,Pg3CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
632 }
633
634 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
635 #[inline(always)]
636 pub fn sig3_en(
637 self,
638 ) -> crate::common::RegisterFieldBool<11, 1, 0, Pg3CtrlReg_SPEC, crate::common::RW> {
639 crate::common::RegisterFieldBool::<11,1,0,Pg3CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
640 }
641
642 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
643 #[inline(always)]
644 pub fn sig2_en(
645 self,
646 ) -> crate::common::RegisterFieldBool<10, 1, 0, Pg3CtrlReg_SPEC, crate::common::RW> {
647 crate::common::RegisterFieldBool::<10,1,0,Pg3CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
648 }
649
650 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
651 #[inline(always)]
652 pub fn sig1_en(
653 self,
654 ) -> crate::common::RegisterFieldBool<9, 1, 0, Pg3CtrlReg_SPEC, crate::common::RW> {
655 crate::common::RegisterFieldBool::<9,1,0,Pg3CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
656 }
657
658 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
659 #[inline(always)]
660 pub fn sig0_en(
661 self,
662 ) -> crate::common::RegisterFieldBool<8, 1, 0, Pg3CtrlReg_SPEC, crate::common::RW> {
663 crate::common::RegisterFieldBool::<8,1,0,Pg3CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
664 }
665
666 #[doc = "Selects which signal is routed to the output."]
667 #[inline(always)]
668 pub fn out3_sig(
669 self,
670 ) -> crate::common::RegisterField<6, 0x3, 1, 0, u8, u8, Pg3CtrlReg_SPEC, crate::common::RW>
671 {
672 crate::common::RegisterField::<6,0x3,1,0,u8,u8,Pg3CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
673 }
674
675 #[doc = "Selects which signal is routed to the output."]
676 #[inline(always)]
677 pub fn out2_sig(
678 self,
679 ) -> crate::common::RegisterField<4, 0x3, 1, 0, u8, u8, Pg3CtrlReg_SPEC, crate::common::RW>
680 {
681 crate::common::RegisterField::<4,0x3,1,0,u8,u8,Pg3CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
682 }
683
684 #[doc = "Selects which signal is routed to the output."]
685 #[inline(always)]
686 pub fn out1_sig(
687 self,
688 ) -> crate::common::RegisterField<2, 0x3, 1, 0, u8, u8, Pg3CtrlReg_SPEC, crate::common::RW>
689 {
690 crate::common::RegisterField::<2,0x3,1,0,u8,u8,Pg3CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
691 }
692
693 #[doc = "Selects which signal is routed to the output."]
694 #[inline(always)]
695 pub fn out0_sig(
696 self,
697 ) -> crate::common::RegisterField<0, 0x3, 1, 0, u8, u8, Pg3CtrlReg_SPEC, crate::common::RW>
698 {
699 crate::common::RegisterField::<0,0x3,1,0,u8,u8,Pg3CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
700 }
701}
702impl ::core::default::Default for Pg3CtrlReg {
703 #[inline(always)]
704 fn default() -> Pg3CtrlReg {
705 <crate::RegValueT<Pg3CtrlReg_SPEC> as RegisterValue<_>>::new(4068)
706 }
707}
708
709#[doc(hidden)]
710#[derive(Copy, Clone, Eq, PartialEq)]
711pub struct Pg4CtrlReg_SPEC;
712impl crate::sealed::RegSpec for Pg4CtrlReg_SPEC {
713 type DataType = u32;
714}
715
716#[doc = "Pattern generator 4 control register"]
717pub type Pg4CtrlReg = crate::RegValueT<Pg4CtrlReg_SPEC>;
718
719impl Pg4CtrlReg {
720 #[doc = "Determines if the corresponding pattern generator will contribute to the generation of the IRQ when it is done generating a pattern. It is only valid if SMOTOR_GENEND_IRQ_EN is enabled:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
721 #[inline(always)]
722 pub fn genend_irq_en(
723 self,
724 ) -> crate::common::RegisterFieldBool<15, 1, 0, Pg4CtrlReg_SPEC, crate::common::RW> {
725 crate::common::RegisterFieldBool::<15,1,0,Pg4CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
726 }
727
728 #[doc = "Determines if the corresponding pattern generator will contribute to the generation of the IRQ when it starts generating a pattern. It is only valid if SMOTOR_GENSTART_IRQ_EN is enabled:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
729 #[inline(always)]
730 pub fn genstart_irq_en(
731 self,
732 ) -> crate::common::RegisterFieldBool<14, 1, 0, Pg4CtrlReg_SPEC, crate::common::RW> {
733 crate::common::RegisterFieldBool::<14,1,0,Pg4CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
734 }
735
736 #[doc = "0 = Auto start mode: pattern generator will start whenever all enabled signals have received a command\n1 = Manual start mode: pattern generator will only start if it has been given a PG_START, and all enabled signals have received a command"]
737 #[inline(always)]
738 pub fn pg_start_mode(
739 self,
740 ) -> crate::common::RegisterFieldBool<13, 1, 0, Pg4CtrlReg_SPEC, crate::common::RW> {
741 crate::common::RegisterFieldBool::<13,1,0,Pg4CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
742 }
743
744 #[doc = "0 = Flex mode\n1 = Pair mode"]
745 #[inline(always)]
746 pub fn pg_mode(
747 self,
748 ) -> crate::common::RegisterFieldBool<12, 1, 0, Pg4CtrlReg_SPEC, crate::common::RW> {
749 crate::common::RegisterFieldBool::<12,1,0,Pg4CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
750 }
751
752 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
753 #[inline(always)]
754 pub fn sig3_en(
755 self,
756 ) -> crate::common::RegisterFieldBool<11, 1, 0, Pg4CtrlReg_SPEC, crate::common::RW> {
757 crate::common::RegisterFieldBool::<11,1,0,Pg4CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
758 }
759
760 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
761 #[inline(always)]
762 pub fn sig2_en(
763 self,
764 ) -> crate::common::RegisterFieldBool<10, 1, 0, Pg4CtrlReg_SPEC, crate::common::RW> {
765 crate::common::RegisterFieldBool::<10,1,0,Pg4CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
766 }
767
768 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
769 #[inline(always)]
770 pub fn sig1_en(
771 self,
772 ) -> crate::common::RegisterFieldBool<9, 1, 0, Pg4CtrlReg_SPEC, crate::common::RW> {
773 crate::common::RegisterFieldBool::<9,1,0,Pg4CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
774 }
775
776 #[doc = "0 = Signal disabled\n1 = Signal enabled"]
777 #[inline(always)]
778 pub fn sig0_en(
779 self,
780 ) -> crate::common::RegisterFieldBool<8, 1, 0, Pg4CtrlReg_SPEC, crate::common::RW> {
781 crate::common::RegisterFieldBool::<8,1,0,Pg4CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
782 }
783
784 #[doc = "Selects which signal is routed to the output."]
785 #[inline(always)]
786 pub fn out3_sig(
787 self,
788 ) -> crate::common::RegisterField<6, 0x3, 1, 0, u8, u8, Pg4CtrlReg_SPEC, crate::common::RW>
789 {
790 crate::common::RegisterField::<6,0x3,1,0,u8,u8,Pg4CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
791 }
792
793 #[doc = "Selects which signal is routed to the output."]
794 #[inline(always)]
795 pub fn out2_sig(
796 self,
797 ) -> crate::common::RegisterField<4, 0x3, 1, 0, u8, u8, Pg4CtrlReg_SPEC, crate::common::RW>
798 {
799 crate::common::RegisterField::<4,0x3,1,0,u8,u8,Pg4CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
800 }
801
802 #[doc = "Selects which signal is routed to the output."]
803 #[inline(always)]
804 pub fn out1_sig(
805 self,
806 ) -> crate::common::RegisterField<2, 0x3, 1, 0, u8, u8, Pg4CtrlReg_SPEC, crate::common::RW>
807 {
808 crate::common::RegisterField::<2,0x3,1,0,u8,u8,Pg4CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
809 }
810
811 #[doc = "Selects which signal is routed to the output."]
812 #[inline(always)]
813 pub fn out0_sig(
814 self,
815 ) -> crate::common::RegisterField<0, 0x3, 1, 0, u8, u8, Pg4CtrlReg_SPEC, crate::common::RW>
816 {
817 crate::common::RegisterField::<0,0x3,1,0,u8,u8,Pg4CtrlReg_SPEC,crate::common::RW>::from_register(self,0)
818 }
819}
820impl ::core::default::Default for Pg4CtrlReg {
821 #[inline(always)]
822 fn default() -> Pg4CtrlReg {
823 <crate::RegValueT<Pg4CtrlReg_SPEC> as RegisterValue<_>>::new(4068)
824 }
825}
826
827#[doc(hidden)]
828#[derive(Copy, Clone, Eq, PartialEq)]
829pub struct SmotorCmdFifoReg_SPEC;
830impl crate::sealed::RegSpec for SmotorCmdFifoReg_SPEC {
831 type DataType = u32;
832}
833
834#[doc = "Motor control command FIFO register"]
835pub type SmotorCmdFifoReg = crate::RegValueT<SmotorCmdFifoReg_SPEC>;
836
837impl SmotorCmdFifoReg {
838 #[doc = "Writing to this address will push a command into the command FIFO."]
839 #[inline(always)]
840 pub fn smotor_cmd_fifo(
841 self,
842 ) -> crate::common::RegisterField<
843 0,
844 0xffff,
845 1,
846 0,
847 u16,
848 u16,
849 SmotorCmdFifoReg_SPEC,
850 crate::common::W,
851 > {
852 crate::common::RegisterField::<
853 0,
854 0xffff,
855 1,
856 0,
857 u16,
858 u16,
859 SmotorCmdFifoReg_SPEC,
860 crate::common::W,
861 >::from_register(self, 0)
862 }
863}
864impl ::core::default::Default for SmotorCmdFifoReg {
865 #[inline(always)]
866 fn default() -> SmotorCmdFifoReg {
867 <crate::RegValueT<SmotorCmdFifoReg_SPEC> as RegisterValue<_>>::new(0)
868 }
869}
870
871#[doc(hidden)]
872#[derive(Copy, Clone, Eq, PartialEq)]
873pub struct SmotorCmdReadPtrReg_SPEC;
874impl crate::sealed::RegSpec for SmotorCmdReadPtrReg_SPEC {
875 type DataType = u32;
876}
877
878#[doc = "Command read pointer register"]
879pub type SmotorCmdReadPtrReg = crate::RegValueT<SmotorCmdReadPtrReg_SPEC>;
880
881impl SmotorCmdReadPtrReg {
882 #[doc = "Pointer to the next command to be popped from the FIFO. The command at SMOTOR_CMD_READ_PTR-1 is the last command that has been popped from the FIFO into its corresponding PG."]
883 #[inline(always)]
884 pub fn smotor_cmd_read_ptr(
885 self,
886 ) -> crate::common::RegisterField<
887 0,
888 0x3f,
889 1,
890 0,
891 u8,
892 u8,
893 SmotorCmdReadPtrReg_SPEC,
894 crate::common::R,
895 > {
896 crate::common::RegisterField::<
897 0,
898 0x3f,
899 1,
900 0,
901 u8,
902 u8,
903 SmotorCmdReadPtrReg_SPEC,
904 crate::common::R,
905 >::from_register(self, 0)
906 }
907}
908impl ::core::default::Default for SmotorCmdReadPtrReg {
909 #[inline(always)]
910 fn default() -> SmotorCmdReadPtrReg {
911 <crate::RegValueT<SmotorCmdReadPtrReg_SPEC> as RegisterValue<_>>::new(0)
912 }
913}
914
915#[doc(hidden)]
916#[derive(Copy, Clone, Eq, PartialEq)]
917pub struct SmotorCmdWritePtrReg_SPEC;
918impl crate::sealed::RegSpec for SmotorCmdWritePtrReg_SPEC {
919 type DataType = u32;
920}
921
922#[doc = "Command write pointer register"]
923pub type SmotorCmdWritePtrReg = crate::RegValueT<SmotorCmdWritePtrReg_SPEC>;
924
925impl SmotorCmdWritePtrReg {
926 #[doc = "Pointer to the location in the FIFO where the next command will be pushed at. The last command pushed to the FIFO is at SMOTOR_CMD_WRITE_PTR - 1. Can only be changed in cyclic mode"]
927 #[inline(always)]
928 pub fn smotor_cmd_write_ptr(
929 self,
930 ) -> crate::common::RegisterField<
931 0,
932 0x3f,
933 1,
934 0,
935 u8,
936 u8,
937 SmotorCmdWritePtrReg_SPEC,
938 crate::common::RW,
939 > {
940 crate::common::RegisterField::<
941 0,
942 0x3f,
943 1,
944 0,
945 u8,
946 u8,
947 SmotorCmdWritePtrReg_SPEC,
948 crate::common::RW,
949 >::from_register(self, 0)
950 }
951}
952impl ::core::default::Default for SmotorCmdWritePtrReg {
953 #[inline(always)]
954 fn default() -> SmotorCmdWritePtrReg {
955 <crate::RegValueT<SmotorCmdWritePtrReg_SPEC> as RegisterValue<_>>::new(0)
956 }
957}
958
959#[doc(hidden)]
960#[derive(Copy, Clone, Eq, PartialEq)]
961pub struct SmotorCtrlReg_SPEC;
962impl crate::sealed::RegSpec for SmotorCtrlReg_SPEC {
963 type DataType = u32;
964}
965
966#[doc = "Motor control register"]
967pub type SmotorCtrlReg = crate::RegValueT<SmotorCtrlReg_SPEC>;
968
969impl SmotorCtrlReg {
970 #[doc = "0 = RTC event does not trigger command pop\n1 = RTC event triggers command pop"]
971 #[inline(always)]
972 pub fn trig_rtc_event_en(
973 self,
974 ) -> crate::common::RegisterFieldBool<28, 1, 0, SmotorCtrlReg_SPEC, crate::common::RW> {
975 crate::common::RegisterFieldBool::<28,1,0,SmotorCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
976 }
977
978 #[doc = "0 = Divided sleep clock does not trigger command pop\n1 = Divided sleep clock triggers command pop"]
979 #[inline(always)]
980 pub fn mc_lp_clk_trig_en(
981 self,
982 ) -> crate::common::RegisterFieldBool<27, 1, 0, SmotorCtrlReg_SPEC, crate::common::RW> {
983 crate::common::RegisterFieldBool::<27,1,0,SmotorCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
984 }
985
986 #[doc = "IRQ in the event of the FIFO level (write pointer - read pointer) reaching, or is below the threshold determined by SMOTOR_THRESHOLD.\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
987 #[inline(always)]
988 pub fn smotor_threshold_irq_en(
989 self,
990 ) -> crate::common::RegisterFieldBool<26, 1, 0, SmotorCtrlReg_SPEC, crate::common::RW> {
991 crate::common::RegisterFieldBool::<26,1,0,SmotorCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
992 }
993
994 #[doc = "Determines the FIFO level (write pointer - read pointer) at or below which and IRQ can be triggered using SMOTOR_THRESHOLD_IRQ_EN."]
995 #[inline(always)]
996 pub fn smotor_threshold(
997 self,
998 ) -> crate::common::RegisterField<21, 0x1f, 1, 0, u8, u8, SmotorCtrlReg_SPEC, crate::common::RW>
999 {
1000 crate::common::RegisterField::<21,0x1f,1,0,u8,u8,SmotorCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
1001 }
1002
1003 #[doc = "IRQ in the event of FIFO underrun:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
1004 #[inline(always)]
1005 pub fn smotor_fifo_unr_irq_en(
1006 self,
1007 ) -> crate::common::RegisterFieldBool<20, 1, 0, SmotorCtrlReg_SPEC, crate::common::RW> {
1008 crate::common::RegisterFieldBool::<20,1,0,SmotorCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
1009 }
1010
1011 #[doc = "IRQ in the event of FIFO overflow:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
1012 #[inline(always)]
1013 pub fn smotor_fifo_ovf_irq_en(
1014 self,
1015 ) -> crate::common::RegisterFieldBool<19, 1, 0, SmotorCtrlReg_SPEC, crate::common::RW> {
1016 crate::common::RegisterFieldBool::<19,1,0,SmotorCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
1017 }
1018
1019 #[doc = "IRQ in the event a pattern generator (configured to do so through its corresponding GENEND_IRQ_EN bit) has ended generating a pattern:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
1020 #[inline(always)]
1021 pub fn smotor_genend_irq_en(
1022 self,
1023 ) -> crate::common::RegisterFieldBool<18, 1, 0, SmotorCtrlReg_SPEC, crate::common::RW> {
1024 crate::common::RegisterFieldBool::<18,1,0,SmotorCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
1025 }
1026
1027 #[doc = "IRQ in the event a pattern generator (configured to do so through its corresponding GENSTART_IRQ_EN bit) has just started generating a pattern:\n0 = Interrupt requests disabled\n1 = Interrupt requests enabled"]
1028 #[inline(always)]
1029 pub fn smotor_genstart_irq_en(
1030 self,
1031 ) -> crate::common::RegisterFieldBool<17, 1, 0, SmotorCtrlReg_SPEC, crate::common::RW> {
1032 crate::common::RegisterFieldBool::<17,1,0,SmotorCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
1033 }
1034
1035 #[doc = "Idle time of a PG after generating a waveform. A PG will remain busy for the last signal\'s MOI to finish."]
1036 #[inline(always)]
1037 pub fn smotor_moi(
1038 self,
1039 ) -> crate::common::RegisterField<7, 0x3ff, 1, 0, u16, u16, SmotorCtrlReg_SPEC, crate::common::RW>
1040 {
1041 crate::common::RegisterField::<
1042 7,
1043 0x3ff,
1044 1,
1045 0,
1046 u16,
1047 u16,
1048 SmotorCtrlReg_SPEC,
1049 crate::common::RW,
1050 >::from_register(self, 0)
1051 }
1052
1053 #[doc = "Depth of the cyclic buffer, only valid if CYCLIC_MODE is 1."]
1054 #[inline(always)]
1055 pub fn cyclic_size(
1056 self,
1057 ) -> crate::common::RegisterField<1, 0x3f, 1, 0, u8, u8, SmotorCtrlReg_SPEC, crate::common::RW>
1058 {
1059 crate::common::RegisterField::<1,0x3f,1,0,u8,u8,SmotorCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
1060 }
1061
1062 #[doc = "Determines operation mode of command FIFO:\n0 = Normal FIFO mode\n1 = Cyclic buffer mode, CYCLIC_SIZE determines buffer depth"]
1063 #[inline(always)]
1064 pub fn cyclic_mode(
1065 self,
1066 ) -> crate::common::RegisterFieldBool<0, 1, 0, SmotorCtrlReg_SPEC, crate::common::RW> {
1067 crate::common::RegisterFieldBool::<0,1,0,SmotorCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
1068 }
1069}
1070impl ::core::default::Default for SmotorCtrlReg {
1071 #[inline(always)]
1072 fn default() -> SmotorCtrlReg {
1073 <crate::RegValueT<SmotorCtrlReg_SPEC> as RegisterValue<_>>::new(0)
1074 }
1075}
1076
1077#[doc(hidden)]
1078#[derive(Copy, Clone, Eq, PartialEq)]
1079pub struct SmotorIrqClearReg_SPEC;
1080impl crate::sealed::RegSpec for SmotorIrqClearReg_SPEC {
1081 type DataType = u32;
1082}
1083
1084#[doc = "Motor control IRQ clear register"]
1085pub type SmotorIrqClearReg = crate::RegValueT<SmotorIrqClearReg_SPEC>;
1086
1087impl SmotorIrqClearReg {
1088 #[doc = "Clears the THRESHOLD_IRQ_STATUS bit."]
1089 #[inline(always)]
1090 pub fn threshold_irq_clear(
1091 self,
1092 ) -> crate::common::RegisterFieldBool<4, 1, 0, SmotorIrqClearReg_SPEC, crate::common::W> {
1093 crate::common::RegisterFieldBool::<4,1,0,SmotorIrqClearReg_SPEC,crate::common::W>::from_register(self,0)
1094 }
1095
1096 #[doc = "Clears the FIFO_UNR_IRQ_STATUS bit."]
1097 #[inline(always)]
1098 pub fn fifo_unr_irq_clear(
1099 self,
1100 ) -> crate::common::RegisterFieldBool<3, 1, 0, SmotorIrqClearReg_SPEC, crate::common::W> {
1101 crate::common::RegisterFieldBool::<3,1,0,SmotorIrqClearReg_SPEC,crate::common::W>::from_register(self,0)
1102 }
1103
1104 #[doc = "Clears the FIFO_OVF_IRQ_STATUS bit."]
1105 #[inline(always)]
1106 pub fn fifo_ovf_irq_clear(
1107 self,
1108 ) -> crate::common::RegisterFieldBool<2, 1, 0, SmotorIrqClearReg_SPEC, crate::common::W> {
1109 crate::common::RegisterFieldBool::<2,1,0,SmotorIrqClearReg_SPEC,crate::common::W>::from_register(self,0)
1110 }
1111
1112 #[doc = "Clears the GENEND_IRQ_STATUS bit."]
1113 #[inline(always)]
1114 pub fn genend_irq_clear(
1115 self,
1116 ) -> crate::common::RegisterFieldBool<1, 1, 0, SmotorIrqClearReg_SPEC, crate::common::W> {
1117 crate::common::RegisterFieldBool::<1,1,0,SmotorIrqClearReg_SPEC,crate::common::W>::from_register(self,0)
1118 }
1119
1120 #[doc = "Clears the GENSTART_IRQ_STATUS bit."]
1121 #[inline(always)]
1122 pub fn genstart_irq_clear(
1123 self,
1124 ) -> crate::common::RegisterFieldBool<0, 1, 0, SmotorIrqClearReg_SPEC, crate::common::W> {
1125 crate::common::RegisterFieldBool::<0,1,0,SmotorIrqClearReg_SPEC,crate::common::W>::from_register(self,0)
1126 }
1127}
1128impl ::core::default::Default for SmotorIrqClearReg {
1129 #[inline(always)]
1130 fn default() -> SmotorIrqClearReg {
1131 <crate::RegValueT<SmotorIrqClearReg_SPEC> as RegisterValue<_>>::new(0)
1132 }
1133}
1134
1135#[doc(hidden)]
1136#[derive(Copy, Clone, Eq, PartialEq)]
1137pub struct SmotorTriggerReg_SPEC;
1138impl crate::sealed::RegSpec for SmotorTriggerReg_SPEC {
1139 type DataType = u32;
1140}
1141
1142#[doc = "Motor controller trigger register"]
1143pub type SmotorTriggerReg = crate::RegValueT<SmotorTriggerReg_SPEC>;
1144
1145impl SmotorTriggerReg {
1146 #[doc = "Writing 1 to this bit will start PG4, only effective in manual mode."]
1147 #[inline(always)]
1148 pub fn pg4_start(
1149 self,
1150 ) -> crate::common::RegisterFieldBool<5, 1, 0, SmotorTriggerReg_SPEC, crate::common::W> {
1151 crate::common::RegisterFieldBool::<5,1,0,SmotorTriggerReg_SPEC,crate::common::W>::from_register(self,0)
1152 }
1153
1154 #[doc = "Writing 1 to this bit will start PG3, only effective in manual mode."]
1155 #[inline(always)]
1156 pub fn pg3_start(
1157 self,
1158 ) -> crate::common::RegisterFieldBool<4, 1, 0, SmotorTriggerReg_SPEC, crate::common::W> {
1159 crate::common::RegisterFieldBool::<4,1,0,SmotorTriggerReg_SPEC,crate::common::W>::from_register(self,0)
1160 }
1161
1162 #[doc = "Writing 1 to this bit will start PG2, only effective in manual mode."]
1163 #[inline(always)]
1164 pub fn pg2_start(
1165 self,
1166 ) -> crate::common::RegisterFieldBool<3, 1, 0, SmotorTriggerReg_SPEC, crate::common::W> {
1167 crate::common::RegisterFieldBool::<3,1,0,SmotorTriggerReg_SPEC,crate::common::W>::from_register(self,0)
1168 }
1169
1170 #[doc = "Writing 1 to this bit will start PG1, only effective in manual mode."]
1171 #[inline(always)]
1172 pub fn pg1_start(
1173 self,
1174 ) -> crate::common::RegisterFieldBool<2, 1, 0, SmotorTriggerReg_SPEC, crate::common::W> {
1175 crate::common::RegisterFieldBool::<2,1,0,SmotorTriggerReg_SPEC,crate::common::W>::from_register(self,0)
1176 }
1177
1178 #[doc = "Writing 1 to this bit will start PG0, only effective in manual mode."]
1179 #[inline(always)]
1180 pub fn pg0_start(
1181 self,
1182 ) -> crate::common::RegisterFieldBool<1, 1, 0, SmotorTriggerReg_SPEC, crate::common::W> {
1183 crate::common::RegisterFieldBool::<1,1,0,SmotorTriggerReg_SPEC,crate::common::W>::from_register(self,0)
1184 }
1185
1186 #[doc = "Writing 1 will pop one (or more, depending on the N_CMDs field of the first) command(s) from the command buffer into its corresponding pattern generator."]
1187 #[inline(always)]
1188 pub fn pop_cmd(
1189 self,
1190 ) -> crate::common::RegisterFieldBool<0, 1, 0, SmotorTriggerReg_SPEC, crate::common::W> {
1191 crate::common::RegisterFieldBool::<0,1,0,SmotorTriggerReg_SPEC,crate::common::W>::from_register(self,0)
1192 }
1193}
1194impl ::core::default::Default for SmotorTriggerReg {
1195 #[inline(always)]
1196 fn default() -> SmotorTriggerReg {
1197 <crate::RegValueT<SmotorTriggerReg_SPEC> as RegisterValue<_>>::new(0)
1198 }
1199}
1200
1201#[doc(hidden)]
1202#[derive(Copy, Clone, Eq, PartialEq)]
1203pub struct WavetableBase_SPEC;
1204impl crate::sealed::RegSpec for WavetableBase_SPEC {
1205 type DataType = u32;
1206}
1207
1208#[doc = "Base address of the wavetable"]
1209pub type WavetableBase = crate::RegValueT<WavetableBase_SPEC>;
1210
1211impl WavetableBase {
1212 #[doc = "Dummy bitfield for register test generation."]
1213 #[inline(always)]
1214 pub fn wavetable_base_x_b3(
1215 self,
1216 ) -> crate::common::RegisterField<24, 0x1f, 1, 0, u8, u8, WavetableBase_SPEC, crate::common::RW>
1217 {
1218 crate::common::RegisterField::<24,0x1f,1,0,u8,u8,WavetableBase_SPEC,crate::common::RW>::from_register(self,0)
1219 }
1220
1221 #[doc = "Dummy bitfield for register test generation."]
1222 #[inline(always)]
1223 pub fn wavetable_base_x_b2(
1224 self,
1225 ) -> crate::common::RegisterField<16, 0x1f, 1, 0, u8, u8, WavetableBase_SPEC, crate::common::RW>
1226 {
1227 crate::common::RegisterField::<16,0x1f,1,0,u8,u8,WavetableBase_SPEC,crate::common::RW>::from_register(self,0)
1228 }
1229
1230 #[doc = "Dummy bitfield for register test generation."]
1231 #[inline(always)]
1232 pub fn wavetable_base_x_b1(
1233 self,
1234 ) -> crate::common::RegisterField<8, 0x1f, 1, 0, u8, u8, WavetableBase_SPEC, crate::common::RW>
1235 {
1236 crate::common::RegisterField::<8,0x1f,1,0,u8,u8,WavetableBase_SPEC,crate::common::RW>::from_register(self,0)
1237 }
1238
1239 #[doc = "Dummy bitfield for register test generation."]
1240 #[inline(always)]
1241 pub fn wavetable_base_x_b0(
1242 self,
1243 ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, WavetableBase_SPEC, crate::common::RW>
1244 {
1245 crate::common::RegisterField::<0,0x1f,1,0,u8,u8,WavetableBase_SPEC,crate::common::RW>::from_register(self,0)
1246 }
1247}
1248impl ::core::default::Default for WavetableBase {
1249 #[inline(always)]
1250 fn default() -> WavetableBase {
1251 <crate::RegValueT<WavetableBase_SPEC> as RegisterValue<_>>::new(0)
1252 }
1253}