da14697_pac/
smotor.rs

1/*
2DISCLAIMER
3This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products.
4No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
5applicable laws, including copyright laws.
6THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED
7OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
8NON-INFRINGEMENT.  ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY
9LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT,
10INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR
11ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
12Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability
13of this software. By using this software, you agree to the additional terms and conditions found by accessing the
14following link:
15http://www.renesas.com/disclaimer
16
17*/
18// Generated from SVD 1.2, with svd2pac 0.6.0 on Thu, 24 Jul 2025 04:45:38 +0000
19
20#![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}