da14681_pac/
dcdc.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:04 +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"DCDC registers"]
28unsafe impl ::core::marker::Send for super::Dcdc {}
29unsafe impl ::core::marker::Sync for super::Dcdc {}
30impl super::Dcdc {
31    #[allow(unused)]
32    #[inline(always)]
33    pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34        self.ptr
35    }
36
37    #[doc = "DCDC First Control Register"]
38    #[inline(always)]
39    pub const fn dcdc_ctrl_0_reg(
40        &self,
41    ) -> &'static crate::common::Reg<self::DcdcCtrl0Reg_SPEC, crate::common::RW> {
42        unsafe {
43            crate::common::Reg::<self::DcdcCtrl0Reg_SPEC, crate::common::RW>::from_ptr(
44                self._svd2pac_as_ptr().add(2usize),
45            )
46        }
47    }
48
49    #[doc = "DCDC Second Control Register"]
50    #[inline(always)]
51    pub const fn dcdc_ctrl_1_reg(
52        &self,
53    ) -> &'static crate::common::Reg<self::DcdcCtrl1Reg_SPEC, crate::common::RW> {
54        unsafe {
55            crate::common::Reg::<self::DcdcCtrl1Reg_SPEC, crate::common::RW>::from_ptr(
56                self._svd2pac_as_ptr().add(4usize),
57            )
58        }
59    }
60
61    #[doc = "DCDC Third Control Register"]
62    #[inline(always)]
63    pub const fn dcdc_ctrl_2_reg(
64        &self,
65    ) -> &'static crate::common::Reg<self::DcdcCtrl2Reg_SPEC, crate::common::RW> {
66        unsafe {
67            crate::common::Reg::<self::DcdcCtrl2Reg_SPEC, crate::common::RW>::from_ptr(
68                self._svd2pac_as_ptr().add(6usize),
69            )
70        }
71    }
72
73    #[doc = "DCDC Interrupt Clear Register"]
74    #[inline(always)]
75    pub const fn dcdc_irq_clear_reg(
76        &self,
77    ) -> &'static crate::common::Reg<self::DcdcIrqClearReg_SPEC, crate::common::RW> {
78        unsafe {
79            crate::common::Reg::<self::DcdcIrqClearReg_SPEC, crate::common::RW>::from_ptr(
80                self._svd2pac_as_ptr().add(54usize),
81            )
82        }
83    }
84
85    #[doc = "DCDC Interrupt Clear Register"]
86    #[inline(always)]
87    pub const fn dcdc_irq_mask_reg(
88        &self,
89    ) -> &'static crate::common::Reg<self::DcdcIrqMaskReg_SPEC, crate::common::RW> {
90        unsafe {
91            crate::common::Reg::<self::DcdcIrqMaskReg_SPEC, crate::common::RW>::from_ptr(
92                self._svd2pac_as_ptr().add(56usize),
93            )
94        }
95    }
96
97    #[doc = "DCDC Interrupt Status Register"]
98    #[inline(always)]
99    pub const fn dcdc_irq_status_reg(
100        &self,
101    ) -> &'static crate::common::Reg<self::DcdcIrqStatusReg_SPEC, crate::common::RW> {
102        unsafe {
103            crate::common::Reg::<self::DcdcIrqStatusReg_SPEC, crate::common::RW>::from_ptr(
104                self._svd2pac_as_ptr().add(52usize),
105            )
106        }
107    }
108
109    #[doc = "DCDC First Retention Mode Register"]
110    #[inline(always)]
111    pub const fn dcdc_ret_0_reg(
112        &self,
113    ) -> &'static crate::common::Reg<self::DcdcRet0Reg_SPEC, crate::common::RW> {
114        unsafe {
115            crate::common::Reg::<self::DcdcRet0Reg_SPEC, crate::common::RW>::from_ptr(
116                self._svd2pac_as_ptr().add(24usize),
117            )
118        }
119    }
120
121    #[doc = "DCDC Second Retention Mode Register"]
122    #[inline(always)]
123    pub const fn dcdc_ret_1_reg(
124        &self,
125    ) -> &'static crate::common::Reg<self::DcdcRet1Reg_SPEC, crate::common::RW> {
126        unsafe {
127            crate::common::Reg::<self::DcdcRet1Reg_SPEC, crate::common::RW>::from_ptr(
128                self._svd2pac_as_ptr().add(26usize),
129            )
130        }
131    }
132
133    #[doc = "DCDC First Status Register"]
134    #[inline(always)]
135    pub const fn dcdc_status_0_reg(
136        &self,
137    ) -> &'static crate::common::Reg<self::DcdcStatus0Reg_SPEC, crate::common::RW> {
138        unsafe {
139            crate::common::Reg::<self::DcdcStatus0Reg_SPEC, crate::common::RW>::from_ptr(
140                self._svd2pac_as_ptr().add(34usize),
141            )
142        }
143    }
144
145    #[doc = "DCDC Second Status Register"]
146    #[inline(always)]
147    pub const fn dcdc_status_1_reg(
148        &self,
149    ) -> &'static crate::common::Reg<self::DcdcStatus1Reg_SPEC, crate::common::RW> {
150        unsafe {
151            crate::common::Reg::<self::DcdcStatus1Reg_SPEC, crate::common::RW>::from_ptr(
152                self._svd2pac_as_ptr().add(36usize),
153            )
154        }
155    }
156
157    #[doc = "DCDC Third Status Register"]
158    #[inline(always)]
159    pub const fn dcdc_status_2_reg(
160        &self,
161    ) -> &'static crate::common::Reg<self::DcdcStatus2Reg_SPEC, crate::common::RW> {
162        unsafe {
163            crate::common::Reg::<self::DcdcStatus2Reg_SPEC, crate::common::RW>::from_ptr(
164                self._svd2pac_as_ptr().add(38usize),
165            )
166        }
167    }
168
169    #[doc = "DCDC Fourth Status Register"]
170    #[inline(always)]
171    pub const fn dcdc_status_3_reg(
172        &self,
173    ) -> &'static crate::common::Reg<self::DcdcStatus3Reg_SPEC, crate::common::RW> {
174        unsafe {
175            crate::common::Reg::<self::DcdcStatus3Reg_SPEC, crate::common::RW>::from_ptr(
176                self._svd2pac_as_ptr().add(40usize),
177            )
178        }
179    }
180
181    #[doc = "DCDC Fifth Status Register"]
182    #[inline(always)]
183    pub const fn dcdc_status_4_reg(
184        &self,
185    ) -> &'static crate::common::Reg<self::DcdcStatus4Reg_SPEC, crate::common::RW> {
186        unsafe {
187            crate::common::Reg::<self::DcdcStatus4Reg_SPEC, crate::common::RW>::from_ptr(
188                self._svd2pac_as_ptr().add(42usize),
189            )
190        }
191    }
192
193    #[doc = "DCDC Test Register"]
194    #[inline(always)]
195    pub const fn dcdc_test_0_reg(
196        &self,
197    ) -> &'static crate::common::Reg<self::DcdcTest0Reg_SPEC, crate::common::RW> {
198        unsafe {
199            crate::common::Reg::<self::DcdcTest0Reg_SPEC, crate::common::RW>::from_ptr(
200                self._svd2pac_as_ptr().add(30usize),
201            )
202        }
203    }
204
205    #[doc = "DCDC Test Register"]
206    #[inline(always)]
207    pub const fn dcdc_test_1_reg(
208        &self,
209    ) -> &'static crate::common::Reg<self::DcdcTest1Reg_SPEC, crate::common::RW> {
210        unsafe {
211            crate::common::Reg::<self::DcdcTest1Reg_SPEC, crate::common::RW>::from_ptr(
212                self._svd2pac_as_ptr().add(32usize),
213            )
214        }
215    }
216
217    #[doc = "DCDC V14 Comparator Trim Register"]
218    #[inline(always)]
219    pub const fn dcdc_trim_0_reg(
220        &self,
221    ) -> &'static crate::common::Reg<self::DcdcTrim0Reg_SPEC, crate::common::RW> {
222        unsafe {
223            crate::common::Reg::<self::DcdcTrim0Reg_SPEC, crate::common::RW>::from_ptr(
224                self._svd2pac_as_ptr().add(44usize),
225            )
226        }
227    }
228
229    #[doc = "DCDC V18 Comparator Trim Register"]
230    #[inline(always)]
231    pub const fn dcdc_trim_1_reg(
232        &self,
233    ) -> &'static crate::common::Reg<self::DcdcTrim1Reg_SPEC, crate::common::RW> {
234        unsafe {
235            crate::common::Reg::<self::DcdcTrim1Reg_SPEC, crate::common::RW>::from_ptr(
236                self._svd2pac_as_ptr().add(46usize),
237            )
238        }
239    }
240
241    #[doc = "DCDC VDD Comparator Trim Register"]
242    #[inline(always)]
243    pub const fn dcdc_trim_2_reg(
244        &self,
245    ) -> &'static crate::common::Reg<self::DcdcTrim2Reg_SPEC, crate::common::RW> {
246        unsafe {
247            crate::common::Reg::<self::DcdcTrim2Reg_SPEC, crate::common::RW>::from_ptr(
248                self._svd2pac_as_ptr().add(48usize),
249            )
250        }
251    }
252
253    #[doc = "DCDC VPA Comparator Trim Register"]
254    #[inline(always)]
255    pub const fn dcdc_trim_3_reg(
256        &self,
257    ) -> &'static crate::common::Reg<self::DcdcTrim3Reg_SPEC, crate::common::RW> {
258        unsafe {
259            crate::common::Reg::<self::DcdcTrim3Reg_SPEC, crate::common::RW>::from_ptr(
260                self._svd2pac_as_ptr().add(50usize),
261            )
262        }
263    }
264
265    #[doc = "DCDC Comparator Trim Register"]
266    #[inline(always)]
267    pub const fn dcdc_trim_reg(
268        &self,
269    ) -> &'static crate::common::Reg<self::DcdcTrimReg_SPEC, crate::common::RW> {
270        unsafe {
271            crate::common::Reg::<self::DcdcTrimReg_SPEC, crate::common::RW>::from_ptr(
272                self._svd2pac_as_ptr().add(28usize),
273            )
274        }
275    }
276
277    #[doc = "DCDC V14 First Control Register"]
278    #[inline(always)]
279    pub const fn dcdc_v14_0_reg(
280        &self,
281    ) -> &'static crate::common::Reg<self::DcdcV140Reg_SPEC, crate::common::RW> {
282        unsafe {
283            crate::common::Reg::<self::DcdcV140Reg_SPEC, crate::common::RW>::from_ptr(
284                self._svd2pac_as_ptr().add(8usize),
285            )
286        }
287    }
288
289    #[doc = "DCDC V14 Second Control Register"]
290    #[inline(always)]
291    pub const fn dcdc_v14_1_reg(
292        &self,
293    ) -> &'static crate::common::Reg<self::DcdcV141Reg_SPEC, crate::common::RW> {
294        unsafe {
295            crate::common::Reg::<self::DcdcV141Reg_SPEC, crate::common::RW>::from_ptr(
296                self._svd2pac_as_ptr().add(10usize),
297            )
298        }
299    }
300
301    #[doc = "DCDC VPA First Control Register"]
302    #[inline(always)]
303    pub const fn dcdc_v18p_0_reg(
304        &self,
305    ) -> &'static crate::common::Reg<self::DcdcV18P0Reg_SPEC, crate::common::RW> {
306        unsafe {
307            crate::common::Reg::<self::DcdcV18P0Reg_SPEC, crate::common::RW>::from_ptr(
308                self._svd2pac_as_ptr().add(20usize),
309            )
310        }
311    }
312
313    #[doc = "DCDC VPA Second Control Register"]
314    #[inline(always)]
315    pub const fn dcdc_v18p_1_reg(
316        &self,
317    ) -> &'static crate::common::Reg<self::DcdcV18P1Reg_SPEC, crate::common::RW> {
318        unsafe {
319            crate::common::Reg::<self::DcdcV18P1Reg_SPEC, crate::common::RW>::from_ptr(
320                self._svd2pac_as_ptr().add(22usize),
321            )
322        }
323    }
324
325    #[doc = "DCDC V18 First Control Register"]
326    #[inline(always)]
327    pub const fn dcdc_v18_0_reg(
328        &self,
329    ) -> &'static crate::common::Reg<self::DcdcV180Reg_SPEC, crate::common::RW> {
330        unsafe {
331            crate::common::Reg::<self::DcdcV180Reg_SPEC, crate::common::RW>::from_ptr(
332                self._svd2pac_as_ptr().add(12usize),
333            )
334        }
335    }
336
337    #[doc = "DCDC V18 Second Control Register"]
338    #[inline(always)]
339    pub const fn dcdc_v18_1_reg(
340        &self,
341    ) -> &'static crate::common::Reg<self::DcdcV181Reg_SPEC, crate::common::RW> {
342        unsafe {
343            crate::common::Reg::<self::DcdcV181Reg_SPEC, crate::common::RW>::from_ptr(
344                self._svd2pac_as_ptr().add(14usize),
345            )
346        }
347    }
348
349    #[doc = "DCDC VDD First Control Register"]
350    #[inline(always)]
351    pub const fn dcdc_vdd_0_reg(
352        &self,
353    ) -> &'static crate::common::Reg<self::DcdcVdd0Reg_SPEC, crate::common::RW> {
354        unsafe {
355            crate::common::Reg::<self::DcdcVdd0Reg_SPEC, crate::common::RW>::from_ptr(
356                self._svd2pac_as_ptr().add(16usize),
357            )
358        }
359    }
360
361    #[doc = "DCDC VDD Second Control Register"]
362    #[inline(always)]
363    pub const fn dcdc_vdd_1_reg(
364        &self,
365    ) -> &'static crate::common::Reg<self::DcdcVdd1Reg_SPEC, crate::common::RW> {
366        unsafe {
367            crate::common::Reg::<self::DcdcVdd1Reg_SPEC, crate::common::RW>::from_ptr(
368                self._svd2pac_as_ptr().add(18usize),
369            )
370        }
371    }
372}
373#[doc(hidden)]
374#[derive(Copy, Clone, Eq, PartialEq)]
375pub struct DcdcCtrl0Reg_SPEC;
376impl crate::sealed::RegSpec for DcdcCtrl0Reg_SPEC {
377    type DataType = u16;
378}
379
380#[doc = "DCDC First Control Register"]
381pub type DcdcCtrl0Reg = crate::RegValueT<DcdcCtrl0Reg_SPEC>;
382
383impl DcdcCtrl0Reg {
384    #[doc = "Set current limit to maximum during initial startup"]
385    #[inline(always)]
386    pub fn dcdc_fast_startup(
387        self,
388    ) -> crate::common::RegisterFieldBool<14, 1, 0, DcdcCtrl0Reg_SPEC, crate::common::RW> {
389        crate::common::RegisterFieldBool::<14,1,0,DcdcCtrl0Reg_SPEC,crate::common::RW>::from_register(self,0)
390    }
391
392    #[doc = "Switches to low voltage settings when battery voltage drops below 2.5 V"]
393    #[inline(always)]
394    pub fn dcdc_brownout_lv_mode(
395        self,
396    ) -> crate::common::RegisterFieldBool<13, 1, 0, DcdcCtrl0Reg_SPEC, crate::common::RW> {
397        crate::common::RegisterFieldBool::<13,1,0,DcdcCtrl0Reg_SPEC,crate::common::RW>::from_register(self,0)
398    }
399
400    #[doc = "Idle Clock Divider\n00 = 2\n01 = 4\n10 = 8\n11 = 16"]
401    #[inline(always)]
402    pub fn dcdc_idle_clk_div(
403        self,
404    ) -> crate::common::RegisterField<11, 0x3, 1, 0, u8, u8, DcdcCtrl0Reg_SPEC, crate::common::RW>
405    {
406        crate::common::RegisterField::<11,0x3,1,0,u8,u8,DcdcCtrl0Reg_SPEC,crate::common::RW>::from_register(self,0)
407    }
408
409    #[doc = "Charge priority register (4x 2 bit ID)\nCharge sequence is \\[1:0\\] > \\[3:2\\] > \\[5:4\\] > \\[7:6\\]\nID\\[V14\\] = 00\nID\\[V18\\] = 01\nID\\[VDD\\] = 10\nID\\[V18P\\] = 11"]
410    #[inline(always)]
411    pub fn dcdc_priority(
412        self,
413    ) -> crate::common::RegisterField<3, 0xff, 1, 0, u8, u8, DcdcCtrl0Reg_SPEC, crate::common::RW>
414    {
415        crate::common::RegisterField::<3,0xff,1,0,u8,u8,DcdcCtrl0Reg_SPEC,crate::common::RW>::from_register(self,0)
416    }
417
418    #[doc = "Freewheel switch enable"]
419    #[inline(always)]
420    pub fn dcdc_fw_enable(
421        self,
422    ) -> crate::common::RegisterFieldBool<2, 1, 0, DcdcCtrl0Reg_SPEC, crate::common::RW> {
423        crate::common::RegisterFieldBool::<2,1,0,DcdcCtrl0Reg_SPEC,crate::common::RW>::from_register(self,0)
424    }
425
426    #[doc = "DCDC converter mode\n00 = Disabled\n01 = Active\n10 = Sleep mode\n11 = Disabled"]
427    #[inline(always)]
428    pub fn dcdc_mode(
429        self,
430    ) -> crate::common::RegisterField<0, 0x3, 1, 0, u8, u8, DcdcCtrl0Reg_SPEC, crate::common::RW>
431    {
432        crate::common::RegisterField::<0,0x3,1,0,u8,u8,DcdcCtrl0Reg_SPEC,crate::common::RW>::from_register(self,0)
433    }
434}
435impl ::core::default::Default for DcdcCtrl0Reg {
436    #[inline(always)]
437    fn default() -> DcdcCtrl0Reg {
438        <crate::RegValueT<DcdcCtrl0Reg_SPEC> as RegisterValue<_>>::new(12068)
439    }
440}
441
442#[doc(hidden)]
443#[derive(Copy, Clone, Eq, PartialEq)]
444pub struct DcdcCtrl1Reg_SPEC;
445impl crate::sealed::RegSpec for DcdcCtrl1Reg_SPEC {
446    type DataType = u16;
447}
448
449#[doc = "DCDC Second Control Register"]
450pub type DcdcCtrl1Reg = crate::RegValueT<DcdcCtrl1Reg_SPEC>;
451
452impl DcdcCtrl1Reg {
453    #[doc = "Delay between turning bias on and converter becoming active\n0 - 31 us, 1 us step size"]
454    #[inline(always)]
455    pub fn dcdc_startup_delay(
456        self,
457    ) -> crate::common::RegisterField<11, 0x1f, 1, 0, u8, u8, DcdcCtrl1Reg_SPEC, crate::common::RW>
458    {
459        crate::common::RegisterField::<11,0x1f,1,0,u8,u8,DcdcCtrl1Reg_SPEC,crate::common::RW>::from_register(self,0)
460    }
461
462    #[doc = "Global maximum idle time\nThe current limit of any output that is idle for this long will be downramped faster than normal\n0 - 7875 ns, 125 ns step size"]
463    #[inline(always)]
464    pub fn dcdc_global_max_idle_time(
465        self,
466    ) -> crate::common::RegisterField<5, 0x3f, 1, 0, u8, u8, DcdcCtrl1Reg_SPEC, crate::common::RW>
467    {
468        crate::common::RegisterField::<5,0x3f,1,0,u8,u8,DcdcCtrl1Reg_SPEC,crate::common::RW>::from_register(self,0)
469    }
470
471    #[doc = "P and N switch timeout, if switch is closed longer than this a timeout is generated and the FSM is forced to the next state\n0 - 1937.5 ns, 62.5 ns step size"]
472    #[inline(always)]
473    pub fn dcdc_timeout(
474        self,
475    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, DcdcCtrl1Reg_SPEC, crate::common::RW>
476    {
477        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,DcdcCtrl1Reg_SPEC,crate::common::RW>::from_register(self,0)
478    }
479}
480impl ::core::default::Default for DcdcCtrl1Reg {
481    #[inline(always)]
482    fn default() -> DcdcCtrl1Reg {
483        <crate::RegValueT<DcdcCtrl1Reg_SPEC> as RegisterValue<_>>::new(21520)
484    }
485}
486
487#[doc(hidden)]
488#[derive(Copy, Clone, Eq, PartialEq)]
489pub struct DcdcCtrl2Reg_SPEC;
490impl crate::sealed::RegSpec for DcdcCtrl2Reg_SPEC {
491    type DataType = u16;
492}
493
494#[doc = "DCDC Third Control Register"]
495pub type DcdcCtrl2Reg = crate::RegValueT<DcdcCtrl2Reg_SPEC>;
496
497impl DcdcCtrl2Reg {
498    #[doc = "Number of timeout events before timeout interrupt is generated"]
499    #[inline(always)]
500    pub fn dcdc_timeout_irq_trig(
501        self,
502    ) -> crate::common::RegisterField<12, 0xf, 1, 0, u8, u8, DcdcCtrl2Reg_SPEC, crate::common::RW>
503    {
504        crate::common::RegisterField::<12,0xf,1,0,u8,u8,DcdcCtrl2Reg_SPEC,crate::common::RW>::from_register(self,0)
505    }
506
507    #[doc = "Number of successive non-timed out charge events required to clear timeout event counter"]
508    #[inline(always)]
509    pub fn dcdc_timeout_irq_res(
510        self,
511    ) -> crate::common::RegisterField<8, 0xf, 1, 0, u8, u8, DcdcCtrl2Reg_SPEC, crate::common::RW>
512    {
513        crate::common::RegisterField::<8,0xf,1,0,u8,u8,DcdcCtrl2Reg_SPEC,crate::common::RW>::from_register(self,0)
514    }
515
516    #[doc = "Trim current sensing circuitry\n00 = +0  percent\n01 = +4  percent\n10 = +8  percent\n11 = +12  percent"]
517    #[inline(always)]
518    pub fn dcdc_tune(
519        self,
520    ) -> crate::common::RegisterField<6, 0x3, 1, 0, u8, u8, DcdcCtrl2Reg_SPEC, crate::common::RW>
521    {
522        crate::common::RegisterField::<6,0x3,1,0,u8,u8,DcdcCtrl2Reg_SPEC,crate::common::RW>::from_register(self,0)
523    }
524
525    #[doc = "Trim low side supply voltage\nV = 2 V + 100 mV * N"]
526    #[inline(always)]
527    pub fn dcdc_lssup_trim(
528        self,
529    ) -> crate::common::RegisterField<3, 0x7, 1, 0, u8, u8, DcdcCtrl2Reg_SPEC, crate::common::RW>
530    {
531        crate::common::RegisterField::<3,0x7,1,0,u8,u8,DcdcCtrl2Reg_SPEC,crate::common::RW>::from_register(self,0)
532    }
533
534    #[doc = "Trim high side ground\nV = VBAT - (2.2 V + 200 mV * N)"]
535    #[inline(always)]
536    pub fn dcdc_hsgnd_trim(
537        self,
538    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, DcdcCtrl2Reg_SPEC, crate::common::RW>
539    {
540        crate::common::RegisterField::<0,0x7,1,0,u8,u8,DcdcCtrl2Reg_SPEC,crate::common::RW>::from_register(self,0)
541    }
542}
543impl ::core::default::Default for DcdcCtrl2Reg {
544    #[inline(always)]
545    fn default() -> DcdcCtrl2Reg {
546        <crate::RegValueT<DcdcCtrl2Reg_SPEC> as RegisterValue<_>>::new(34861)
547    }
548}
549
550#[doc(hidden)]
551#[derive(Copy, Clone, Eq, PartialEq)]
552pub struct DcdcIrqClearReg_SPEC;
553impl crate::sealed::RegSpec for DcdcIrqClearReg_SPEC {
554    type DataType = u16;
555}
556
557#[doc = "DCDC Interrupt Clear Register"]
558pub type DcdcIrqClearReg = crate::RegValueT<DcdcIrqClearReg_SPEC>;
559
560impl DcdcIrqClearReg {
561    #[doc = "Clear brown out interrupt"]
562    #[inline(always)]
563    pub fn dcdc_brown_out_irq_clear(
564        self,
565    ) -> crate::common::RegisterFieldBool<4, 1, 0, DcdcIrqClearReg_SPEC, crate::common::W> {
566        crate::common::RegisterFieldBool::<4,1,0,DcdcIrqClearReg_SPEC,crate::common::W>::from_register(self,0)
567    }
568
569    #[doc = "Clear V18P timeout interrupt"]
570    #[inline(always)]
571    pub fn dcdc_v18p_timeout_irq_clear(
572        self,
573    ) -> crate::common::RegisterFieldBool<3, 1, 0, DcdcIrqClearReg_SPEC, crate::common::W> {
574        crate::common::RegisterFieldBool::<3,1,0,DcdcIrqClearReg_SPEC,crate::common::W>::from_register(self,0)
575    }
576
577    #[doc = "Clear VDD timeout interrupt"]
578    #[inline(always)]
579    pub fn dcdc_vdd_timeout_irq_clear(
580        self,
581    ) -> crate::common::RegisterFieldBool<2, 1, 0, DcdcIrqClearReg_SPEC, crate::common::W> {
582        crate::common::RegisterFieldBool::<2,1,0,DcdcIrqClearReg_SPEC,crate::common::W>::from_register(self,0)
583    }
584
585    #[doc = "Clear V18 timeout interrupt"]
586    #[inline(always)]
587    pub fn dcdc_v18_timeout_irq_clear(
588        self,
589    ) -> crate::common::RegisterFieldBool<1, 1, 0, DcdcIrqClearReg_SPEC, crate::common::W> {
590        crate::common::RegisterFieldBool::<1,1,0,DcdcIrqClearReg_SPEC,crate::common::W>::from_register(self,0)
591    }
592
593    #[doc = "Clear V14 timeout interrupt"]
594    #[inline(always)]
595    pub fn dcdc_v14_timeout_irq_clear(
596        self,
597    ) -> crate::common::RegisterFieldBool<0, 1, 0, DcdcIrqClearReg_SPEC, crate::common::W> {
598        crate::common::RegisterFieldBool::<0,1,0,DcdcIrqClearReg_SPEC,crate::common::W>::from_register(self,0)
599    }
600}
601impl ::core::default::Default for DcdcIrqClearReg {
602    #[inline(always)]
603    fn default() -> DcdcIrqClearReg {
604        <crate::RegValueT<DcdcIrqClearReg_SPEC> as RegisterValue<_>>::new(0)
605    }
606}
607
608#[doc(hidden)]
609#[derive(Copy, Clone, Eq, PartialEq)]
610pub struct DcdcIrqMaskReg_SPEC;
611impl crate::sealed::RegSpec for DcdcIrqMaskReg_SPEC {
612    type DataType = u16;
613}
614
615#[doc = "DCDC Interrupt Clear Register"]
616pub type DcdcIrqMaskReg = crate::RegValueT<DcdcIrqMaskReg_SPEC>;
617
618impl DcdcIrqMaskReg {
619    #[doc = "Mask brown out interrupt"]
620    #[inline(always)]
621    pub fn dcdc_brown_out_irq_mask(
622        self,
623    ) -> crate::common::RegisterFieldBool<4, 1, 0, DcdcIrqMaskReg_SPEC, crate::common::RW> {
624        crate::common::RegisterFieldBool::<4,1,0,DcdcIrqMaskReg_SPEC,crate::common::RW>::from_register(self,0)
625    }
626
627    #[doc = "Mask V18P timeout interrupt"]
628    #[inline(always)]
629    pub fn dcdc_v18p_timeout_irq_mask(
630        self,
631    ) -> crate::common::RegisterFieldBool<3, 1, 0, DcdcIrqMaskReg_SPEC, crate::common::RW> {
632        crate::common::RegisterFieldBool::<3,1,0,DcdcIrqMaskReg_SPEC,crate::common::RW>::from_register(self,0)
633    }
634
635    #[doc = "Mask VDD timeout interrupt"]
636    #[inline(always)]
637    pub fn dcdc_vdd_timeout_irq_mask(
638        self,
639    ) -> crate::common::RegisterFieldBool<2, 1, 0, DcdcIrqMaskReg_SPEC, crate::common::RW> {
640        crate::common::RegisterFieldBool::<2,1,0,DcdcIrqMaskReg_SPEC,crate::common::RW>::from_register(self,0)
641    }
642
643    #[doc = "Mask V18 timeout interrupt"]
644    #[inline(always)]
645    pub fn dcdc_v18_timeout_irq_mask(
646        self,
647    ) -> crate::common::RegisterFieldBool<1, 1, 0, DcdcIrqMaskReg_SPEC, crate::common::RW> {
648        crate::common::RegisterFieldBool::<1,1,0,DcdcIrqMaskReg_SPEC,crate::common::RW>::from_register(self,0)
649    }
650
651    #[doc = "Mask V14 timeout interrupt"]
652    #[inline(always)]
653    pub fn dcdc_v14_timeout_irq_mask(
654        self,
655    ) -> crate::common::RegisterFieldBool<0, 1, 0, DcdcIrqMaskReg_SPEC, crate::common::RW> {
656        crate::common::RegisterFieldBool::<0,1,0,DcdcIrqMaskReg_SPEC,crate::common::RW>::from_register(self,0)
657    }
658}
659impl ::core::default::Default for DcdcIrqMaskReg {
660    #[inline(always)]
661    fn default() -> DcdcIrqMaskReg {
662        <crate::RegValueT<DcdcIrqMaskReg_SPEC> as RegisterValue<_>>::new(0)
663    }
664}
665
666#[doc(hidden)]
667#[derive(Copy, Clone, Eq, PartialEq)]
668pub struct DcdcIrqStatusReg_SPEC;
669impl crate::sealed::RegSpec for DcdcIrqStatusReg_SPEC {
670    type DataType = u16;
671}
672
673#[doc = "DCDC Interrupt Status Register"]
674pub type DcdcIrqStatusReg = crate::RegValueT<DcdcIrqStatusReg_SPEC>;
675
676impl DcdcIrqStatusReg {
677    #[doc = "Brown out detector triggered (battery voltage below 2.5 V)"]
678    #[inline(always)]
679    pub fn dcdc_brown_out_irq_status(
680        self,
681    ) -> crate::common::RegisterFieldBool<4, 1, 0, DcdcIrqStatusReg_SPEC, crate::common::R> {
682        crate::common::RegisterFieldBool::<4,1,0,DcdcIrqStatusReg_SPEC,crate::common::R>::from_register(self,0)
683    }
684
685    #[doc = "Timeout occured on V18P output"]
686    #[inline(always)]
687    pub fn dcdc_v18p_timeout_irq_status(
688        self,
689    ) -> crate::common::RegisterFieldBool<3, 1, 0, DcdcIrqStatusReg_SPEC, crate::common::R> {
690        crate::common::RegisterFieldBool::<3,1,0,DcdcIrqStatusReg_SPEC,crate::common::R>::from_register(self,0)
691    }
692
693    #[doc = "Timeout occured on VDD output"]
694    #[inline(always)]
695    pub fn dcdc_vdd_timeout_irq_status(
696        self,
697    ) -> crate::common::RegisterFieldBool<2, 1, 0, DcdcIrqStatusReg_SPEC, crate::common::R> {
698        crate::common::RegisterFieldBool::<2,1,0,DcdcIrqStatusReg_SPEC,crate::common::R>::from_register(self,0)
699    }
700
701    #[doc = "Timeout occured on V18 output"]
702    #[inline(always)]
703    pub fn dcdc_v18_timeout_irq_status(
704        self,
705    ) -> crate::common::RegisterFieldBool<1, 1, 0, DcdcIrqStatusReg_SPEC, crate::common::R> {
706        crate::common::RegisterFieldBool::<1,1,0,DcdcIrqStatusReg_SPEC,crate::common::R>::from_register(self,0)
707    }
708
709    #[doc = "Timeout occured on V14 output"]
710    #[inline(always)]
711    pub fn dcdc_v14_timeout_irq_status(
712        self,
713    ) -> crate::common::RegisterFieldBool<0, 1, 0, DcdcIrqStatusReg_SPEC, crate::common::R> {
714        crate::common::RegisterFieldBool::<0,1,0,DcdcIrqStatusReg_SPEC,crate::common::R>::from_register(self,0)
715    }
716}
717impl ::core::default::Default for DcdcIrqStatusReg {
718    #[inline(always)]
719    fn default() -> DcdcIrqStatusReg {
720        <crate::RegValueT<DcdcIrqStatusReg_SPEC> as RegisterValue<_>>::new(0)
721    }
722}
723
724#[doc(hidden)]
725#[derive(Copy, Clone, Eq, PartialEq)]
726pub struct DcdcRet0Reg_SPEC;
727impl crate::sealed::RegSpec for DcdcRet0Reg_SPEC {
728    type DataType = u16;
729}
730
731#[doc = "DCDC First Retention Mode Register"]
732pub type DcdcRet0Reg = crate::RegValueT<DcdcRet0Reg_SPEC>;
733
734impl DcdcRet0Reg {
735    #[doc = "Charge cycles for V18P output in sleep mode\nCycles = 1 + 2 * N"]
736    #[inline(always)]
737    pub fn dcdc_v18p_ret_cycles(
738        self,
739    ) -> crate::common::RegisterField<13, 0x7, 1, 0, u8, u8, DcdcRet0Reg_SPEC, crate::common::RW>
740    {
741        crate::common::RegisterField::<13,0x7,1,0,u8,u8,DcdcRet0Reg_SPEC,crate::common::RW>::from_register(self,0)
742    }
743
744    #[doc = "V18P output sleep mode current limit\nI = 30 mA * (1 + N)"]
745    #[inline(always)]
746    pub fn dcdc_v18p_cur_lim_ret(
747        self,
748    ) -> crate::common::RegisterField<8, 0x1f, 1, 0, u8, u8, DcdcRet0Reg_SPEC, crate::common::RW>
749    {
750        crate::common::RegisterField::<8,0x1f,1,0,u8,u8,DcdcRet0Reg_SPEC,crate::common::RW>::from_register(self,0)
751    }
752
753    #[doc = "Charge cycles for VDD output in sleep mode\nCycles = 1 + 2 * N"]
754    #[inline(always)]
755    pub fn dcdc_vdd_ret_cycles(
756        self,
757    ) -> crate::common::RegisterField<5, 0x7, 1, 0, u8, u8, DcdcRet0Reg_SPEC, crate::common::RW>
758    {
759        crate::common::RegisterField::<5,0x7,1,0,u8,u8,DcdcRet0Reg_SPEC,crate::common::RW>::from_register(self,0)
760    }
761
762    #[doc = "VDD output sleep mode current limit\nI = 30 mA * (1 + N)"]
763    #[inline(always)]
764    pub fn dcdc_vdd_cur_lim_ret(
765        self,
766    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, DcdcRet0Reg_SPEC, crate::common::RW>
767    {
768        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,DcdcRet0Reg_SPEC,crate::common::RW>::from_register(self,0)
769    }
770}
771impl ::core::default::Default for DcdcRet0Reg {
772    #[inline(always)]
773    fn default() -> DcdcRet0Reg {
774        <crate::RegValueT<DcdcRet0Reg_SPEC> as RegisterValue<_>>::new(43686)
775    }
776}
777
778#[doc(hidden)]
779#[derive(Copy, Clone, Eq, PartialEq)]
780pub struct DcdcRet1Reg_SPEC;
781impl crate::sealed::RegSpec for DcdcRet1Reg_SPEC {
782    type DataType = u16;
783}
784
785#[doc = "DCDC Second Retention Mode Register"]
786pub type DcdcRet1Reg = crate::RegValueT<DcdcRet1Reg_SPEC>;
787
788impl DcdcRet1Reg {
789    #[doc = "Charge cycles for V18 output in sleep mode\nCycles = 1 + 2 * N"]
790    #[inline(always)]
791    pub fn dcdc_v18_ret_cycles(
792        self,
793    ) -> crate::common::RegisterField<13, 0x7, 1, 0, u8, u8, DcdcRet1Reg_SPEC, crate::common::RW>
794    {
795        crate::common::RegisterField::<13,0x7,1,0,u8,u8,DcdcRet1Reg_SPEC,crate::common::RW>::from_register(self,0)
796    }
797
798    #[doc = "V18 output sleep mode current limit\nI = 30 mA * (1 + N)"]
799    #[inline(always)]
800    pub fn dcdc_v18_cur_lim_ret(
801        self,
802    ) -> crate::common::RegisterField<8, 0x1f, 1, 0, u8, u8, DcdcRet1Reg_SPEC, crate::common::RW>
803    {
804        crate::common::RegisterField::<8,0x1f,1,0,u8,u8,DcdcRet1Reg_SPEC,crate::common::RW>::from_register(self,0)
805    }
806
807    #[doc = "Charge cycles for V14 output in sleep mode\nCycles = 1 + 2 * N"]
808    #[inline(always)]
809    pub fn dcdc_v14_ret_cycles(
810        self,
811    ) -> crate::common::RegisterField<5, 0x7, 1, 0, u8, u8, DcdcRet1Reg_SPEC, crate::common::RW>
812    {
813        crate::common::RegisterField::<5,0x7,1,0,u8,u8,DcdcRet1Reg_SPEC,crate::common::RW>::from_register(self,0)
814    }
815
816    #[doc = "V14 output sleep mode current limit\nI = 30 mA * (1 + N)"]
817    #[inline(always)]
818    pub fn dcdc_v14_cur_lim_ret(
819        self,
820    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, DcdcRet1Reg_SPEC, crate::common::RW>
821    {
822        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,DcdcRet1Reg_SPEC,crate::common::RW>::from_register(self,0)
823    }
824}
825impl ::core::default::Default for DcdcRet1Reg {
826    #[inline(always)]
827    fn default() -> DcdcRet1Reg {
828        <crate::RegValueT<DcdcRet1Reg_SPEC> as RegisterValue<_>>::new(43590)
829    }
830}
831
832#[doc(hidden)]
833#[derive(Copy, Clone, Eq, PartialEq)]
834pub struct DcdcStatus0Reg_SPEC;
835impl crate::sealed::RegSpec for DcdcStatus0Reg_SPEC {
836    type DataType = u16;
837}
838
839#[doc = "DCDC First Status Register"]
840pub type DcdcStatus0Reg = crate::RegValueT<DcdcStatus0Reg_SPEC>;
841
842impl DcdcStatus0Reg {
843    #[doc = "Charge register position 3"]
844    #[inline(always)]
845    pub fn dcdc_charge_reg_3(
846        self,
847    ) -> crate::common::RegisterField<9, 0x7, 1, 0, u8, u8, DcdcStatus0Reg_SPEC, crate::common::R>
848    {
849        crate::common::RegisterField::<9,0x7,1,0,u8,u8,DcdcStatus0Reg_SPEC,crate::common::R>::from_register(self,0)
850    }
851
852    #[doc = "Charge register position 2"]
853    #[inline(always)]
854    pub fn dcdc_charge_reg_2(
855        self,
856    ) -> crate::common::RegisterField<6, 0x7, 1, 0, u8, u8, DcdcStatus0Reg_SPEC, crate::common::R>
857    {
858        crate::common::RegisterField::<6,0x7,1,0,u8,u8,DcdcStatus0Reg_SPEC,crate::common::R>::from_register(self,0)
859    }
860
861    #[doc = "Charge register position 1"]
862    #[inline(always)]
863    pub fn dcdc_charge_reg_1(
864        self,
865    ) -> crate::common::RegisterField<3, 0x7, 1, 0, u8, u8, DcdcStatus0Reg_SPEC, crate::common::R>
866    {
867        crate::common::RegisterField::<3,0x7,1,0,u8,u8,DcdcStatus0Reg_SPEC,crate::common::R>::from_register(self,0)
868    }
869
870    #[doc = "Charge register position 0"]
871    #[inline(always)]
872    pub fn dcdc_charge_reg_0(
873        self,
874    ) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, u8, DcdcStatus0Reg_SPEC, crate::common::R>
875    {
876        crate::common::RegisterField::<0,0x7,1,0,u8,u8,DcdcStatus0Reg_SPEC,crate::common::R>::from_register(self,0)
877    }
878}
879impl ::core::default::Default for DcdcStatus0Reg {
880    #[inline(always)]
881    fn default() -> DcdcStatus0Reg {
882        <crate::RegValueT<DcdcStatus0Reg_SPEC> as RegisterValue<_>>::new(0)
883    }
884}
885
886#[doc(hidden)]
887#[derive(Copy, Clone, Eq, PartialEq)]
888pub struct DcdcStatus1Reg_SPEC;
889impl crate::sealed::RegSpec for DcdcStatus1Reg_SPEC {
890    type DataType = u16;
891}
892
893#[doc = "DCDC Second Status Register"]
894pub type DcdcStatus1Reg = crate::RegValueT<DcdcStatus1Reg_SPEC>;
895
896impl DcdcStatus1Reg {
897    #[doc = "Indicates whether V18P is available\nRequires that converter is enabled, output is enabled and V_OK and V_NOK have both occured"]
898    #[inline(always)]
899    pub fn dcdc_v18p_available(
900        self,
901    ) -> crate::common::RegisterFieldBool<11, 1, 0, DcdcStatus1Reg_SPEC, crate::common::R> {
902        crate::common::RegisterFieldBool::<11,1,0,DcdcStatus1Reg_SPEC,crate::common::R>::from_register(self,0)
903    }
904
905    #[doc = "Indicates whether VDD is available\nRequires that converter is enabled, output is enabled and V_OK and V_NOK have both occured"]
906    #[inline(always)]
907    pub fn dcdc_vdd_available(
908        self,
909    ) -> crate::common::RegisterFieldBool<10, 1, 0, DcdcStatus1Reg_SPEC, crate::common::R> {
910        crate::common::RegisterFieldBool::<10,1,0,DcdcStatus1Reg_SPEC,crate::common::R>::from_register(self,0)
911    }
912
913    #[doc = "Indicates whether V18 is available\nRequires that converter is enabled, output is enabled and V_OK and V_NOK have both occured"]
914    #[inline(always)]
915    pub fn dcdc_v18_available(
916        self,
917    ) -> crate::common::RegisterFieldBool<9, 1, 0, DcdcStatus1Reg_SPEC, crate::common::R> {
918        crate::common::RegisterFieldBool::<9,1,0,DcdcStatus1Reg_SPEC,crate::common::R>::from_register(self,0)
919    }
920
921    #[doc = "Indicates whether V14 is available\nRequires that converter is enabled, output is enabled and V_OK and V_NOK have both occured"]
922    #[inline(always)]
923    pub fn dcdc_v14_available(
924        self,
925    ) -> crate::common::RegisterFieldBool<8, 1, 0, DcdcStatus1Reg_SPEC, crate::common::R> {
926        crate::common::RegisterFieldBool::<8,1,0,DcdcStatus1Reg_SPEC,crate::common::R>::from_register(self,0)
927    }
928
929    #[doc = "OK output of V18P comparator"]
930    #[inline(always)]
931    pub fn dcdc_v18p_ok(
932        self,
933    ) -> crate::common::RegisterFieldBool<7, 1, 0, DcdcStatus1Reg_SPEC, crate::common::R> {
934        crate::common::RegisterFieldBool::<7,1,0,DcdcStatus1Reg_SPEC,crate::common::R>::from_register(self,0)
935    }
936
937    #[doc = "OK output of VDD comparator"]
938    #[inline(always)]
939    pub fn dcdc_vdd_ok(
940        self,
941    ) -> crate::common::RegisterFieldBool<6, 1, 0, DcdcStatus1Reg_SPEC, crate::common::R> {
942        crate::common::RegisterFieldBool::<6,1,0,DcdcStatus1Reg_SPEC,crate::common::R>::from_register(self,0)
943    }
944
945    #[doc = "OK output of V18 comparator"]
946    #[inline(always)]
947    pub fn dcdc_v18_ok(
948        self,
949    ) -> crate::common::RegisterFieldBool<5, 1, 0, DcdcStatus1Reg_SPEC, crate::common::R> {
950        crate::common::RegisterFieldBool::<5,1,0,DcdcStatus1Reg_SPEC,crate::common::R>::from_register(self,0)
951    }
952
953    #[doc = "OK output of V14 comparator"]
954    #[inline(always)]
955    pub fn dcdc_v14_ok(
956        self,
957    ) -> crate::common::RegisterFieldBool<4, 1, 0, DcdcStatus1Reg_SPEC, crate::common::R> {
958        crate::common::RegisterFieldBool::<4,1,0,DcdcStatus1Reg_SPEC,crate::common::R>::from_register(self,0)
959    }
960
961    #[doc = "NOK output of V18P comparator"]
962    #[inline(always)]
963    pub fn dcdc_v18p_nok(
964        self,
965    ) -> crate::common::RegisterFieldBool<3, 1, 0, DcdcStatus1Reg_SPEC, crate::common::R> {
966        crate::common::RegisterFieldBool::<3,1,0,DcdcStatus1Reg_SPEC,crate::common::R>::from_register(self,0)
967    }
968
969    #[doc = "NOK output of VDD comparator"]
970    #[inline(always)]
971    pub fn dcdc_vdd_nok(
972        self,
973    ) -> crate::common::RegisterFieldBool<2, 1, 0, DcdcStatus1Reg_SPEC, crate::common::R> {
974        crate::common::RegisterFieldBool::<2,1,0,DcdcStatus1Reg_SPEC,crate::common::R>::from_register(self,0)
975    }
976
977    #[doc = "NOK output of V18 comparator"]
978    #[inline(always)]
979    pub fn dcdc_v18_nok(
980        self,
981    ) -> crate::common::RegisterFieldBool<1, 1, 0, DcdcStatus1Reg_SPEC, crate::common::R> {
982        crate::common::RegisterFieldBool::<1,1,0,DcdcStatus1Reg_SPEC,crate::common::R>::from_register(self,0)
983    }
984
985    #[doc = "NOK output of V14 comparator"]
986    #[inline(always)]
987    pub fn dcdc_v14_nok(
988        self,
989    ) -> crate::common::RegisterFieldBool<0, 1, 0, DcdcStatus1Reg_SPEC, crate::common::R> {
990        crate::common::RegisterFieldBool::<0,1,0,DcdcStatus1Reg_SPEC,crate::common::R>::from_register(self,0)
991    }
992}
993impl ::core::default::Default for DcdcStatus1Reg {
994    #[inline(always)]
995    fn default() -> DcdcStatus1Reg {
996        <crate::RegValueT<DcdcStatus1Reg_SPEC> as RegisterValue<_>>::new(0)
997    }
998}
999
1000#[doc(hidden)]
1001#[derive(Copy, Clone, Eq, PartialEq)]
1002pub struct DcdcStatus2Reg_SPEC;
1003impl crate::sealed::RegSpec for DcdcStatus2Reg_SPEC {
1004    type DataType = u16;
1005}
1006
1007#[doc = "DCDC Third Status Register"]
1008pub type DcdcStatus2Reg = crate::RegValueT<DcdcStatus2Reg_SPEC>;
1009
1010impl DcdcStatus2Reg {
1011    #[doc = "DCDC state machine V18P output"]
1012    #[inline(always)]
1013    pub fn dcdc_v18p_sw_state(
1014        self,
1015    ) -> crate::common::RegisterFieldBool<11, 1, 0, DcdcStatus2Reg_SPEC, crate::common::R> {
1016        crate::common::RegisterFieldBool::<11,1,0,DcdcStatus2Reg_SPEC,crate::common::R>::from_register(self,0)
1017    }
1018
1019    #[doc = "DCDC state machine VDD output"]
1020    #[inline(always)]
1021    pub fn dcdc_vdd_sw_state(
1022        self,
1023    ) -> crate::common::RegisterFieldBool<10, 1, 0, DcdcStatus2Reg_SPEC, crate::common::R> {
1024        crate::common::RegisterFieldBool::<10,1,0,DcdcStatus2Reg_SPEC,crate::common::R>::from_register(self,0)
1025    }
1026
1027    #[doc = "DCDC state machine V18 output"]
1028    #[inline(always)]
1029    pub fn dcdc_v18_sw_state(
1030        self,
1031    ) -> crate::common::RegisterFieldBool<9, 1, 0, DcdcStatus2Reg_SPEC, crate::common::R> {
1032        crate::common::RegisterFieldBool::<9,1,0,DcdcStatus2Reg_SPEC,crate::common::R>::from_register(self,0)
1033    }
1034
1035    #[doc = "DCDC state machine V14 output"]
1036    #[inline(always)]
1037    pub fn dcdc_v14_sw_state(
1038        self,
1039    ) -> crate::common::RegisterFieldBool<8, 1, 0, DcdcStatus2Reg_SPEC, crate::common::R> {
1040        crate::common::RegisterFieldBool::<8,1,0,DcdcStatus2Reg_SPEC,crate::common::R>::from_register(self,0)
1041    }
1042
1043    #[doc = "DCDC state machine NSW output"]
1044    #[inline(always)]
1045    pub fn dcdc_nsw_state(
1046        self,
1047    ) -> crate::common::RegisterFieldBool<7, 1, 0, DcdcStatus2Reg_SPEC, crate::common::R> {
1048        crate::common::RegisterFieldBool::<7,1,0,DcdcStatus2Reg_SPEC,crate::common::R>::from_register(self,0)
1049    }
1050
1051    #[doc = "DCDC state machine PSW output"]
1052    #[inline(always)]
1053    pub fn dcdc_psw_state(
1054        self,
1055    ) -> crate::common::RegisterFieldBool<6, 1, 0, DcdcStatus2Reg_SPEC, crate::common::R> {
1056        crate::common::RegisterFieldBool::<6,1,0,DcdcStatus2Reg_SPEC,crate::common::R>::from_register(self,0)
1057    }
1058
1059    #[doc = "DCDC P side dynamic comparator P output"]
1060    #[inline(always)]
1061    pub fn dcdc_p_comp_p(
1062        self,
1063    ) -> crate::common::RegisterFieldBool<5, 1, 0, DcdcStatus2Reg_SPEC, crate::common::R> {
1064        crate::common::RegisterFieldBool::<5,1,0,DcdcStatus2Reg_SPEC,crate::common::R>::from_register(self,0)
1065    }
1066
1067    #[doc = "DCDC P side dynamic comparator N output"]
1068    #[inline(always)]
1069    pub fn dcdc_p_comp_n(
1070        self,
1071    ) -> crate::common::RegisterFieldBool<4, 1, 0, DcdcStatus2Reg_SPEC, crate::common::R> {
1072        crate::common::RegisterFieldBool::<4,1,0,DcdcStatus2Reg_SPEC,crate::common::R>::from_register(self,0)
1073    }
1074
1075    #[doc = "DCDC N side dynamic comparator P output"]
1076    #[inline(always)]
1077    pub fn dcdc_n_comp_p(
1078        self,
1079    ) -> crate::common::RegisterFieldBool<3, 1, 0, DcdcStatus2Reg_SPEC, crate::common::R> {
1080        crate::common::RegisterFieldBool::<3,1,0,DcdcStatus2Reg_SPEC,crate::common::R>::from_register(self,0)
1081    }
1082
1083    #[doc = "DCDC N side dynamic comparator N output"]
1084    #[inline(always)]
1085    pub fn dcdc_n_comp_n(
1086        self,
1087    ) -> crate::common::RegisterFieldBool<2, 1, 0, DcdcStatus2Reg_SPEC, crate::common::R> {
1088        crate::common::RegisterFieldBool::<2,1,0,DcdcStatus2Reg_SPEC,crate::common::R>::from_register(self,0)
1089    }
1090
1091    #[doc = "DCDC P side continuous time comparator output"]
1092    #[inline(always)]
1093    pub fn dcdc_p_comp(
1094        self,
1095    ) -> crate::common::RegisterFieldBool<1, 1, 0, DcdcStatus2Reg_SPEC, crate::common::R> {
1096        crate::common::RegisterFieldBool::<1,1,0,DcdcStatus2Reg_SPEC,crate::common::R>::from_register(self,0)
1097    }
1098
1099    #[doc = "DCDC N side continuous time comparator output"]
1100    #[inline(always)]
1101    pub fn dcdc_n_comp(
1102        self,
1103    ) -> crate::common::RegisterFieldBool<0, 1, 0, DcdcStatus2Reg_SPEC, crate::common::R> {
1104        crate::common::RegisterFieldBool::<0,1,0,DcdcStatus2Reg_SPEC,crate::common::R>::from_register(self,0)
1105    }
1106}
1107impl ::core::default::Default for DcdcStatus2Reg {
1108    #[inline(always)]
1109    fn default() -> DcdcStatus2Reg {
1110        <crate::RegValueT<DcdcStatus2Reg_SPEC> as RegisterValue<_>>::new(0)
1111    }
1112}
1113
1114#[doc(hidden)]
1115#[derive(Copy, Clone, Eq, PartialEq)]
1116pub struct DcdcStatus3Reg_SPEC;
1117impl crate::sealed::RegSpec for DcdcStatus3Reg_SPEC {
1118    type DataType = u16;
1119}
1120
1121#[doc = "DCDC Fourth Status Register"]
1122pub type DcdcStatus3Reg = crate::RegValueT<DcdcStatus3Reg_SPEC>;
1123
1124impl DcdcStatus3Reg {
1125    #[doc = "Indicates if the converter is in low battery voltage mode"]
1126    #[inline(always)]
1127    pub fn dcdc_lv_mode(
1128        self,
1129    ) -> crate::common::RegisterFieldBool<10, 1, 0, DcdcStatus3Reg_SPEC, crate::common::R> {
1130        crate::common::RegisterFieldBool::<10,1,0,DcdcStatus3Reg_SPEC,crate::common::R>::from_register(self,0)
1131    }
1132
1133    #[doc = "Actual V18P current limit"]
1134    #[inline(always)]
1135    pub fn dcdc_i_lim_v18p(
1136        self,
1137    ) -> crate::common::RegisterField<5, 0x1f, 1, 0, u8, u8, DcdcStatus3Reg_SPEC, crate::common::R>
1138    {
1139        crate::common::RegisterField::<5,0x1f,1,0,u8,u8,DcdcStatus3Reg_SPEC,crate::common::R>::from_register(self,0)
1140    }
1141
1142    #[doc = "Actual VDD current limit"]
1143    #[inline(always)]
1144    pub fn dcdc_i_lim_vdd(
1145        self,
1146    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, DcdcStatus3Reg_SPEC, crate::common::R>
1147    {
1148        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,DcdcStatus3Reg_SPEC,crate::common::R>::from_register(self,0)
1149    }
1150}
1151impl ::core::default::Default for DcdcStatus3Reg {
1152    #[inline(always)]
1153    fn default() -> DcdcStatus3Reg {
1154        <crate::RegValueT<DcdcStatus3Reg_SPEC> as RegisterValue<_>>::new(132)
1155    }
1156}
1157
1158#[doc(hidden)]
1159#[derive(Copy, Clone, Eq, PartialEq)]
1160pub struct DcdcStatus4Reg_SPEC;
1161impl crate::sealed::RegSpec for DcdcStatus4Reg_SPEC {
1162    type DataType = u16;
1163}
1164
1165#[doc = "DCDC Fifth Status Register"]
1166pub type DcdcStatus4Reg = crate::RegValueT<DcdcStatus4Reg_SPEC>;
1167
1168impl DcdcStatus4Reg {
1169    #[doc = "Actual V18 current limit"]
1170    #[inline(always)]
1171    pub fn dcdc_i_lim_v18(
1172        self,
1173    ) -> crate::common::RegisterField<5, 0x1f, 1, 0, u8, u8, DcdcStatus4Reg_SPEC, crate::common::R>
1174    {
1175        crate::common::RegisterField::<5,0x1f,1,0,u8,u8,DcdcStatus4Reg_SPEC,crate::common::R>::from_register(self,0)
1176    }
1177
1178    #[doc = "Actual V14 current limit"]
1179    #[inline(always)]
1180    pub fn dcdc_i_lim_v14(
1181        self,
1182    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, DcdcStatus4Reg_SPEC, crate::common::R>
1183    {
1184        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,DcdcStatus4Reg_SPEC,crate::common::R>::from_register(self,0)
1185    }
1186}
1187impl ::core::default::Default for DcdcStatus4Reg {
1188    #[inline(always)]
1189    fn default() -> DcdcStatus4Reg {
1190        <crate::RegValueT<DcdcStatus4Reg_SPEC> as RegisterValue<_>>::new(132)
1191    }
1192}
1193
1194#[doc(hidden)]
1195#[derive(Copy, Clone, Eq, PartialEq)]
1196pub struct DcdcTest0Reg_SPEC;
1197impl crate::sealed::RegSpec for DcdcTest0Reg_SPEC {
1198    type DataType = u16;
1199}
1200
1201#[doc = "DCDC Test Register"]
1202pub type DcdcTest0Reg = crate::RegValueT<DcdcTest0Reg_SPEC>;
1203
1204impl DcdcTest0Reg {
1205    #[doc = "Disables automatic comparator clock, clock lines values based on DCDC_COMP_CLK"]
1206    #[inline(always)]
1207    pub fn dcdc_force_comp_clk(
1208        self,
1209    ) -> crate::common::RegisterFieldBool<15, 1, 0, DcdcTest0Reg_SPEC, crate::common::RW> {
1210        crate::common::RegisterFieldBool::<15,1,0,DcdcTest0Reg_SPEC,crate::common::RW>::from_register(self,0)
1211    }
1212
1213    #[doc = "Force output current setting"]
1214    #[inline(always)]
1215    pub fn dcdc_force_current(
1216        self,
1217    ) -> crate::common::RegisterFieldBool<14, 1, 0, DcdcTest0Reg_SPEC, crate::common::RW> {
1218        crate::common::RegisterFieldBool::<14,1,0,DcdcTest0Reg_SPEC,crate::common::RW>::from_register(self,0)
1219    }
1220
1221    #[doc = "Output monitor switch (connect to ADC)\n000 = None\n001 = V14\n010 = V18\n011 = VDD\n100 = VPA\n101 = None\n110 = None\n111 = None"]
1222    #[inline(always)]
1223    pub fn dcdc_output_monitor(
1224        self,
1225    ) -> crate::common::RegisterField<11, 0x7, 1, 0, u8, u8, DcdcTest0Reg_SPEC, crate::common::RW>
1226    {
1227        crate::common::RegisterField::<11,0x7,1,0,u8,u8,DcdcTest0Reg_SPEC,crate::common::RW>::from_register(self,0)
1228    }
1229
1230    #[doc = "Analog test bus\n000 = None\n001 = High side ground\n010 = Low side supply\n011 = 1.2 V buffer output\n100 = None\n101 = None\n110 = None\n111 = None"]
1231    #[inline(always)]
1232    pub fn dcdc_ana_test(
1233        self,
1234    ) -> crate::common::RegisterField<8, 0x7, 1, 0, u8, u8, DcdcTest0Reg_SPEC, crate::common::RW>
1235    {
1236        crate::common::RegisterField::<8,0x7,1,0,u8,u8,DcdcTest0Reg_SPEC,crate::common::RW>::from_register(self,0)
1237    }
1238
1239    #[doc = "Force idle mode"]
1240    #[inline(always)]
1241    pub fn dcdc_force_idle(
1242        self,
1243    ) -> crate::common::RegisterFieldBool<7, 1, 0, DcdcTest0Reg_SPEC, crate::common::RW> {
1244        crate::common::RegisterFieldBool::<7,1,0,DcdcTest0Reg_SPEC,crate::common::RW>::from_register(self,0)
1245    }
1246
1247    #[doc = "Force V18P switch on"]
1248    #[inline(always)]
1249    pub fn dcdc_force_v18p(
1250        self,
1251    ) -> crate::common::RegisterFieldBool<6, 1, 0, DcdcTest0Reg_SPEC, crate::common::RW> {
1252        crate::common::RegisterFieldBool::<6,1,0,DcdcTest0Reg_SPEC,crate::common::RW>::from_register(self,0)
1253    }
1254
1255    #[doc = "Force VDD switch on"]
1256    #[inline(always)]
1257    pub fn dcdc_force_vdd(
1258        self,
1259    ) -> crate::common::RegisterFieldBool<5, 1, 0, DcdcTest0Reg_SPEC, crate::common::RW> {
1260        crate::common::RegisterFieldBool::<5,1,0,DcdcTest0Reg_SPEC,crate::common::RW>::from_register(self,0)
1261    }
1262
1263    #[doc = "Force V18 switch on"]
1264    #[inline(always)]
1265    pub fn dcdc_force_v18(
1266        self,
1267    ) -> crate::common::RegisterFieldBool<4, 1, 0, DcdcTest0Reg_SPEC, crate::common::RW> {
1268        crate::common::RegisterFieldBool::<4,1,0,DcdcTest0Reg_SPEC,crate::common::RW>::from_register(self,0)
1269    }
1270
1271    #[doc = "Force V14 switch on"]
1272    #[inline(always)]
1273    pub fn dcdc_force_v14(
1274        self,
1275    ) -> crate::common::RegisterFieldBool<3, 1, 0, DcdcTest0Reg_SPEC, crate::common::RW> {
1276        crate::common::RegisterFieldBool::<3,1,0,DcdcTest0Reg_SPEC,crate::common::RW>::from_register(self,0)
1277    }
1278
1279    #[doc = "Force FW switch on"]
1280    #[inline(always)]
1281    pub fn dcdc_force_fw(
1282        self,
1283    ) -> crate::common::RegisterFieldBool<2, 1, 0, DcdcTest0Reg_SPEC, crate::common::RW> {
1284        crate::common::RegisterFieldBool::<2,1,0,DcdcTest0Reg_SPEC,crate::common::RW>::from_register(self,0)
1285    }
1286
1287    #[doc = "Force N switch on"]
1288    #[inline(always)]
1289    pub fn dcdc_force_nsw(
1290        self,
1291    ) -> crate::common::RegisterFieldBool<1, 1, 0, DcdcTest0Reg_SPEC, crate::common::RW> {
1292        crate::common::RegisterFieldBool::<1,1,0,DcdcTest0Reg_SPEC,crate::common::RW>::from_register(self,0)
1293    }
1294
1295    #[doc = "Force P switch on"]
1296    #[inline(always)]
1297    pub fn dcdc_force_psw(
1298        self,
1299    ) -> crate::common::RegisterFieldBool<0, 1, 0, DcdcTest0Reg_SPEC, crate::common::RW> {
1300        crate::common::RegisterFieldBool::<0,1,0,DcdcTest0Reg_SPEC,crate::common::RW>::from_register(self,0)
1301    }
1302}
1303impl ::core::default::Default for DcdcTest0Reg {
1304    #[inline(always)]
1305    fn default() -> DcdcTest0Reg {
1306        <crate::RegValueT<DcdcTest0Reg_SPEC> as RegisterValue<_>>::new(0)
1307    }
1308}
1309
1310#[doc(hidden)]
1311#[derive(Copy, Clone, Eq, PartialEq)]
1312pub struct DcdcTest1Reg_SPEC;
1313impl crate::sealed::RegSpec for DcdcTest1Reg_SPEC {
1314    type DataType = u16;
1315}
1316
1317#[doc = "DCDC Test Register"]
1318pub type DcdcTest1Reg = crate::RegValueT<DcdcTest1Reg_SPEC>;
1319
1320impl DcdcTest1Reg {
1321    #[doc = "Forced clock values for \\[COMP_VPA, COMP_VDD, COMP_V18, COMP_V14\\] (requires DCDC_FORCE_COMP_CLK = 1)"]
1322    #[inline(always)]
1323    pub fn dcdc_comp_clk(
1324        self,
1325    ) -> crate::common::RegisterField<9, 0xf, 1, 0, u8, u8, DcdcTest1Reg_SPEC, crate::common::RW>
1326    {
1327        crate::common::RegisterField::<9,0xf,1,0,u8,u8,DcdcTest1Reg_SPEC,crate::common::RW>::from_register(self,0)
1328    }
1329
1330    #[doc = "Current limit setting when current limit is forced"]
1331    #[inline(always)]
1332    pub fn dcdc_test_current(
1333        self,
1334    ) -> crate::common::RegisterField<4, 0x1f, 1, 0, u8, u8, DcdcTest1Reg_SPEC, crate::common::RW>
1335    {
1336        crate::common::RegisterField::<4,0x1f,1,0,u8,u8,DcdcTest1Reg_SPEC,crate::common::RW>::from_register(self,0)
1337    }
1338
1339    #[doc = "Determines which register appears on the testbus\n0x0 = DCDC_NONE\n0x1 = DCDC_STATUS_0\n0x2 = DCDC_STATUS_1\n0x3 = DCDC_STATUS_2\n0x4 = DCDC_STATUS_3\n0x5 = DCDC_STATUS_4\n0x6 = DCDC_TRIM_0\n0x7 = DCDC_TRIM_1\n0x8 = DCDC_TRIM_2\n0x9 = DCDC_TRIM_3\n0xA-0xF = DCDC_NONE"]
1340    #[inline(always)]
1341    pub fn dcdc_test_reg(
1342        self,
1343    ) -> crate::common::RegisterField<0, 0xf, 1, 0, u8, u8, DcdcTest1Reg_SPEC, crate::common::RW>
1344    {
1345        crate::common::RegisterField::<0,0xf,1,0,u8,u8,DcdcTest1Reg_SPEC,crate::common::RW>::from_register(self,0)
1346    }
1347}
1348impl ::core::default::Default for DcdcTest1Reg {
1349    #[inline(always)]
1350    fn default() -> DcdcTest1Reg {
1351        <crate::RegValueT<DcdcTest1Reg_SPEC> as RegisterValue<_>>::new(0)
1352    }
1353}
1354
1355#[doc(hidden)]
1356#[derive(Copy, Clone, Eq, PartialEq)]
1357pub struct DcdcTrim0Reg_SPEC;
1358impl crate::sealed::RegSpec for DcdcTrim0Reg_SPEC {
1359    type DataType = u16;
1360}
1361
1362#[doc = "DCDC V14 Comparator Trim Register"]
1363pub type DcdcTrim0Reg = crate::RegValueT<DcdcTrim0Reg_SPEC>;
1364
1365impl DcdcTrim0Reg {
1366    #[doc = "P comparator trim value when V14 is active\nSigned magnitude representation\n011111 = +47 mV\n000000 = 100000 = +16 mV\n111111 = -15 mV"]
1367    #[inline(always)]
1368    pub fn dcdc_v14_trim_p(
1369        self,
1370    ) -> crate::common::RegisterField<6, 0x3f, 1, 0, u8, u8, DcdcTrim0Reg_SPEC, crate::common::R>
1371    {
1372        crate::common::RegisterField::<6,0x3f,1,0,u8,u8,DcdcTrim0Reg_SPEC,crate::common::R>::from_register(self,0)
1373    }
1374
1375    #[doc = "N comparator trim value when V14 is active\nSigned magnitude representation\n011111 = +13 mV\n000000 = 100000 = -22 mV\n111111 = -56 mV"]
1376    #[inline(always)]
1377    pub fn dcdc_v14_trim_n(
1378        self,
1379    ) -> crate::common::RegisterField<0, 0x3f, 1, 0, u8, u8, DcdcTrim0Reg_SPEC, crate::common::R>
1380    {
1381        crate::common::RegisterField::<0,0x3f,1,0,u8,u8,DcdcTrim0Reg_SPEC,crate::common::R>::from_register(self,0)
1382    }
1383}
1384impl ::core::default::Default for DcdcTrim0Reg {
1385    #[inline(always)]
1386    fn default() -> DcdcTrim0Reg {
1387        <crate::RegValueT<DcdcTrim0Reg_SPEC> as RegisterValue<_>>::new(0)
1388    }
1389}
1390
1391#[doc(hidden)]
1392#[derive(Copy, Clone, Eq, PartialEq)]
1393pub struct DcdcTrim1Reg_SPEC;
1394impl crate::sealed::RegSpec for DcdcTrim1Reg_SPEC {
1395    type DataType = u16;
1396}
1397
1398#[doc = "DCDC V18 Comparator Trim Register"]
1399pub type DcdcTrim1Reg = crate::RegValueT<DcdcTrim1Reg_SPEC>;
1400
1401impl DcdcTrim1Reg {
1402    #[doc = "P comparator trim value when V18 is active\nSigned magnitude representation\n011111 = +47 mV\n000000 = 100000 = +16 mV\n111111 = -15 mV"]
1403    #[inline(always)]
1404    pub fn dcdc_v18_trim_p(
1405        self,
1406    ) -> crate::common::RegisterField<6, 0x3f, 1, 0, u8, u8, DcdcTrim1Reg_SPEC, crate::common::R>
1407    {
1408        crate::common::RegisterField::<6,0x3f,1,0,u8,u8,DcdcTrim1Reg_SPEC,crate::common::R>::from_register(self,0)
1409    }
1410
1411    #[doc = "N comparator trim value when V18 is active\nSigned magnitude representation\n011111 = +13 mV\n000000 = 100000 = -22 mV\n111111 = -56 mV"]
1412    #[inline(always)]
1413    pub fn dcdc_v18_trim_n(
1414        self,
1415    ) -> crate::common::RegisterField<0, 0x3f, 1, 0, u8, u8, DcdcTrim1Reg_SPEC, crate::common::R>
1416    {
1417        crate::common::RegisterField::<0,0x3f,1,0,u8,u8,DcdcTrim1Reg_SPEC,crate::common::R>::from_register(self,0)
1418    }
1419}
1420impl ::core::default::Default for DcdcTrim1Reg {
1421    #[inline(always)]
1422    fn default() -> DcdcTrim1Reg {
1423        <crate::RegValueT<DcdcTrim1Reg_SPEC> as RegisterValue<_>>::new(0)
1424    }
1425}
1426
1427#[doc(hidden)]
1428#[derive(Copy, Clone, Eq, PartialEq)]
1429pub struct DcdcTrim2Reg_SPEC;
1430impl crate::sealed::RegSpec for DcdcTrim2Reg_SPEC {
1431    type DataType = u16;
1432}
1433
1434#[doc = "DCDC VDD Comparator Trim Register"]
1435pub type DcdcTrim2Reg = crate::RegValueT<DcdcTrim2Reg_SPEC>;
1436
1437impl DcdcTrim2Reg {
1438    #[doc = "P comparator trim value when VDD is active\nSigned magnitude representation\n011111 = +47 mV\n000000 = 100000 = +16 mV\n111111 = -15 mV"]
1439    #[inline(always)]
1440    pub fn dcdc_vdd_trim_p(
1441        self,
1442    ) -> crate::common::RegisterField<6, 0x3f, 1, 0, u8, u8, DcdcTrim2Reg_SPEC, crate::common::R>
1443    {
1444        crate::common::RegisterField::<6,0x3f,1,0,u8,u8,DcdcTrim2Reg_SPEC,crate::common::R>::from_register(self,0)
1445    }
1446
1447    #[doc = "N comparator trim value when VDD is active\nSigned magnitude representation\n011111 = +13 mV\n000000 = 100000 = -22 mV\n111111 = -56 mV"]
1448    #[inline(always)]
1449    pub fn dcdc_vdd_trim_n(
1450        self,
1451    ) -> crate::common::RegisterField<0, 0x3f, 1, 0, u8, u8, DcdcTrim2Reg_SPEC, crate::common::R>
1452    {
1453        crate::common::RegisterField::<0,0x3f,1,0,u8,u8,DcdcTrim2Reg_SPEC,crate::common::R>::from_register(self,0)
1454    }
1455}
1456impl ::core::default::Default for DcdcTrim2Reg {
1457    #[inline(always)]
1458    fn default() -> DcdcTrim2Reg {
1459        <crate::RegValueT<DcdcTrim2Reg_SPEC> as RegisterValue<_>>::new(0)
1460    }
1461}
1462
1463#[doc(hidden)]
1464#[derive(Copy, Clone, Eq, PartialEq)]
1465pub struct DcdcTrim3Reg_SPEC;
1466impl crate::sealed::RegSpec for DcdcTrim3Reg_SPEC {
1467    type DataType = u16;
1468}
1469
1470#[doc = "DCDC VPA Comparator Trim Register"]
1471pub type DcdcTrim3Reg = crate::RegValueT<DcdcTrim3Reg_SPEC>;
1472
1473impl DcdcTrim3Reg {
1474    #[doc = "P comparator trim value when V18P is active\nSigned magnitude representation\n011111 = +47 mV\n000000 = 100000 = +16 mV\n111111 = -15 mV"]
1475    #[inline(always)]
1476    pub fn dcdc_v18p_trim_p(
1477        self,
1478    ) -> crate::common::RegisterField<6, 0x3f, 1, 0, u8, u8, DcdcTrim3Reg_SPEC, crate::common::R>
1479    {
1480        crate::common::RegisterField::<6,0x3f,1,0,u8,u8,DcdcTrim3Reg_SPEC,crate::common::R>::from_register(self,0)
1481    }
1482
1483    #[doc = "N comparator trim value when V18P is active\nSigned magnitude representation\n011111 = +13 mV\n000000 = 100000 = -22 mV\n111111 = -56 mV"]
1484    #[inline(always)]
1485    pub fn dcdc_v18p_trim_n(
1486        self,
1487    ) -> crate::common::RegisterField<0, 0x3f, 1, 0, u8, u8, DcdcTrim3Reg_SPEC, crate::common::R>
1488    {
1489        crate::common::RegisterField::<0,0x3f,1,0,u8,u8,DcdcTrim3Reg_SPEC,crate::common::R>::from_register(self,0)
1490    }
1491}
1492impl ::core::default::Default for DcdcTrim3Reg {
1493    #[inline(always)]
1494    fn default() -> DcdcTrim3Reg {
1495        <crate::RegValueT<DcdcTrim3Reg_SPEC> as RegisterValue<_>>::new(0)
1496    }
1497}
1498
1499#[doc(hidden)]
1500#[derive(Copy, Clone, Eq, PartialEq)]
1501pub struct DcdcTrimReg_SPEC;
1502impl crate::sealed::RegSpec for DcdcTrimReg_SPEC {
1503    type DataType = u16;
1504}
1505
1506#[doc = "DCDC Comparator Trim Register"]
1507pub type DcdcTrimReg = crate::RegValueT<DcdcTrimReg_SPEC>;
1508
1509impl DcdcTrimReg {
1510    #[doc = "Trim mode for P side comparator\n0 = Automatic\n1 = Manual"]
1511    #[inline(always)]
1512    pub fn dcdc_p_comp_man_trim(
1513        self,
1514    ) -> crate::common::RegisterFieldBool<13, 1, 0, DcdcTrimReg_SPEC, crate::common::RW> {
1515        crate::common::RegisterFieldBool::<13,1,0,DcdcTrimReg_SPEC,crate::common::RW>::from_register(self,0)
1516    }
1517
1518    #[doc = "Manual trim value for P side comparator\nSigned magnitude representation\n011111 = +47 mV\n000000 = 100000 = +16 mV\n111111 = -15 mV"]
1519    #[inline(always)]
1520    pub fn dcdc_p_comp_trim(
1521        self,
1522    ) -> crate::common::RegisterField<7, 0x3f, 1, 0, u8, u8, DcdcTrimReg_SPEC, crate::common::RW>
1523    {
1524        crate::common::RegisterField::<7,0x3f,1,0,u8,u8,DcdcTrimReg_SPEC,crate::common::RW>::from_register(self,0)
1525    }
1526
1527    #[doc = "Trim mode for N side comparator\n0 = Automatic\n1 = Manual"]
1528    #[inline(always)]
1529    pub fn dcdc_n_comp_man_trim(
1530        self,
1531    ) -> crate::common::RegisterFieldBool<6, 1, 0, DcdcTrimReg_SPEC, crate::common::RW> {
1532        crate::common::RegisterFieldBool::<6,1,0,DcdcTrimReg_SPEC,crate::common::RW>::from_register(self,0)
1533    }
1534
1535    #[doc = "Manual trim value for N side comparator\nSigned magnitude representation\n011111 = +13 mV\n000000 = 100000 = -22 mV\n111111 = -56 mV"]
1536    #[inline(always)]
1537    pub fn dcdc_n_comp_trim(
1538        self,
1539    ) -> crate::common::RegisterField<0, 0x3f, 1, 0, u8, u8, DcdcTrimReg_SPEC, crate::common::RW>
1540    {
1541        crate::common::RegisterField::<0,0x3f,1,0,u8,u8,DcdcTrimReg_SPEC,crate::common::RW>::from_register(self,0)
1542    }
1543}
1544impl ::core::default::Default for DcdcTrimReg {
1545    #[inline(always)]
1546    fn default() -> DcdcTrimReg {
1547        <crate::RegValueT<DcdcTrimReg_SPEC> as RegisterValue<_>>::new(0)
1548    }
1549}
1550
1551#[doc(hidden)]
1552#[derive(Copy, Clone, Eq, PartialEq)]
1553pub struct DcdcV140Reg_SPEC;
1554impl crate::sealed::RegSpec for DcdcV140Reg_SPEC {
1555    type DataType = u16;
1556}
1557
1558#[doc = "DCDC V14 First Control Register"]
1559pub type DcdcV140Reg = crate::RegValueT<DcdcV140Reg_SPEC>;
1560
1561impl DcdcV140Reg {
1562    #[doc = "V14 output fast current ramping (improves response time at the cost of more ripple)"]
1563    #[inline(always)]
1564    pub fn dcdc_v14_fast_ramping(
1565        self,
1566    ) -> crate::common::RegisterFieldBool<15, 1, 0, DcdcV140Reg_SPEC, crate::common::RW> {
1567        crate::common::RegisterFieldBool::<15,1,0,DcdcV140Reg_SPEC,crate::common::RW>::from_register(self,0)
1568    }
1569
1570    #[doc = "V14 output voltage\nV = 1.2 V + 25 mV * N"]
1571    #[inline(always)]
1572    pub fn dcdc_v14_voltage(
1573        self,
1574    ) -> crate::common::RegisterField<10, 0x1f, 1, 0, u8, u8, DcdcV140Reg_SPEC, crate::common::RW>
1575    {
1576        crate::common::RegisterField::<10,0x1f,1,0,u8,u8,DcdcV140Reg_SPEC,crate::common::RW>::from_register(self,0)
1577    }
1578
1579    #[doc = "V14 output maximum current limit (high battery voltage mode)\nI = 30 mA * (1 + N)"]
1580    #[inline(always)]
1581    pub fn dcdc_v14_cur_lim_max_hv(
1582        self,
1583    ) -> crate::common::RegisterField<5, 0x1f, 1, 0, u8, u8, DcdcV140Reg_SPEC, crate::common::RW>
1584    {
1585        crate::common::RegisterField::<5,0x1f,1,0,u8,u8,DcdcV140Reg_SPEC,crate::common::RW>::from_register(self,0)
1586    }
1587
1588    #[doc = "V14 output minimum current limit\nI = 30 mA * (1 + N)"]
1589    #[inline(always)]
1590    pub fn dcdc_v14_cur_lim_min(
1591        self,
1592    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, DcdcV140Reg_SPEC, crate::common::RW>
1593    {
1594        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,DcdcV140Reg_SPEC,crate::common::RW>::from_register(self,0)
1595    }
1596}
1597impl ::core::default::Default for DcdcV140Reg {
1598    #[inline(always)]
1599    fn default() -> DcdcV140Reg {
1600        <crate::RegValueT<DcdcV140Reg_SPEC> as RegisterValue<_>>::new(41380)
1601    }
1602}
1603
1604#[doc(hidden)]
1605#[derive(Copy, Clone, Eq, PartialEq)]
1606pub struct DcdcV141Reg_SPEC;
1607impl crate::sealed::RegSpec for DcdcV141Reg_SPEC {
1608    type DataType = u16;
1609}
1610
1611#[doc = "DCDC V14 Second Control Register"]
1612pub type DcdcV141Reg = crate::RegValueT<DcdcV141Reg_SPEC>;
1613
1614impl DcdcV141Reg {
1615    #[doc = "V14 output enable (high battery voltage mode)\n0 = Disabled\n1 = Enabled"]
1616    #[inline(always)]
1617    pub fn dcdc_v14_enable_hv(
1618        self,
1619    ) -> crate::common::RegisterFieldBool<15, 1, 0, DcdcV141Reg_SPEC, crate::common::RW> {
1620        crate::common::RegisterFieldBool::<15,1,0,DcdcV141Reg_SPEC,crate::common::RW>::from_register(self,0)
1621    }
1622
1623    #[doc = "V14 output enable (low battery voltage mode)\n0 = Disabled\n1 = Enabled"]
1624    #[inline(always)]
1625    pub fn dcdc_v14_enable_lv(
1626        self,
1627    ) -> crate::common::RegisterFieldBool<14, 1, 0, DcdcV141Reg_SPEC, crate::common::RW> {
1628        crate::common::RegisterFieldBool::<14,1,0,DcdcV141Reg_SPEC,crate::common::RW>::from_register(self,0)
1629    }
1630
1631    #[doc = "V14 output maximum current limit low battery voltage mode)\nI = 30 mA * (1 + N)"]
1632    #[inline(always)]
1633    pub fn dcdc_v14_cur_lim_max_lv(
1634        self,
1635    ) -> crate::common::RegisterField<10, 0xf, 1, 0, u8, u8, DcdcV141Reg_SPEC, crate::common::RW>
1636    {
1637        crate::common::RegisterField::<10,0xf,1,0,u8,u8,DcdcV141Reg_SPEC,crate::common::RW>::from_register(self,0)
1638    }
1639
1640    #[doc = "V14 output idle time hysteresis\n0 - 3875 ns, 125 ns step size\nIDLE_MAX = IDLE_MIN + IDLE_HYST\nMaximum idle time before decreasing CUR_LIM"]
1641    #[inline(always)]
1642    pub fn dcdc_v14_idle_hyst(
1643        self,
1644    ) -> crate::common::RegisterField<5, 0x1f, 1, 0, u8, u8, DcdcV141Reg_SPEC, crate::common::RW>
1645    {
1646        crate::common::RegisterField::<5,0x1f,1,0,u8,u8,DcdcV141Reg_SPEC,crate::common::RW>::from_register(self,0)
1647    }
1648
1649    #[doc = "V14 output minimum idle time\n0 - 3875 ns, 125 ns step size\nMinimum idle time, CUR_LIM is increased if this limit is not reached"]
1650    #[inline(always)]
1651    pub fn dcdc_v14_idle_min(
1652        self,
1653    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, DcdcV141Reg_SPEC, crate::common::RW>
1654    {
1655        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,DcdcV141Reg_SPEC,crate::common::RW>::from_register(self,0)
1656    }
1657}
1658impl ::core::default::Default for DcdcV141Reg {
1659    #[inline(always)]
1660    fn default() -> DcdcV141Reg {
1661        <crate::RegValueT<DcdcV141Reg_SPEC> as RegisterValue<_>>::new(55440)
1662    }
1663}
1664
1665#[doc(hidden)]
1666#[derive(Copy, Clone, Eq, PartialEq)]
1667pub struct DcdcV18P0Reg_SPEC;
1668impl crate::sealed::RegSpec for DcdcV18P0Reg_SPEC {
1669    type DataType = u16;
1670}
1671
1672#[doc = "DCDC VPA First Control Register"]
1673pub type DcdcV18P0Reg = crate::RegValueT<DcdcV18P0Reg_SPEC>;
1674
1675impl DcdcV18P0Reg {
1676    #[doc = "V18P output fast current ramping (improves response time at the cost of more ripple)"]
1677    #[inline(always)]
1678    pub fn dcdc_v18p_fast_ramping(
1679        self,
1680    ) -> crate::common::RegisterFieldBool<15, 1, 0, DcdcV18P0Reg_SPEC, crate::common::RW> {
1681        crate::common::RegisterFieldBool::<15,1,0,DcdcV18P0Reg_SPEC,crate::common::RW>::from_register(self,0)
1682    }
1683
1684    #[doc = "V18P output voltage\nV = 1.2 V + 25 mV * N"]
1685    #[inline(always)]
1686    pub fn dcdc_v18p_voltage(
1687        self,
1688    ) -> crate::common::RegisterField<10, 0x1f, 1, 0, u8, u8, DcdcV18P0Reg_SPEC, crate::common::RW>
1689    {
1690        crate::common::RegisterField::<10,0x1f,1,0,u8,u8,DcdcV18P0Reg_SPEC,crate::common::RW>::from_register(self,0)
1691    }
1692
1693    #[doc = "V18P output maximum current limit (high battery voltage mode)\nI = 30 mA * (1 + N)"]
1694    #[inline(always)]
1695    pub fn dcdc_v18p_cur_lim_max_hv(
1696        self,
1697    ) -> crate::common::RegisterField<5, 0x1f, 1, 0, u8, u8, DcdcV18P0Reg_SPEC, crate::common::RW>
1698    {
1699        crate::common::RegisterField::<5,0x1f,1,0,u8,u8,DcdcV18P0Reg_SPEC,crate::common::RW>::from_register(self,0)
1700    }
1701
1702    #[doc = "V18P output minimum current limit\nI = 30 mA * (1 + N)"]
1703    #[inline(always)]
1704    pub fn dcdc_v18p_cur_lim_min(
1705        self,
1706    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, DcdcV18P0Reg_SPEC, crate::common::RW>
1707    {
1708        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,DcdcV18P0Reg_SPEC,crate::common::RW>::from_register(self,0)
1709    }
1710}
1711impl ::core::default::Default for DcdcV18P0Reg {
1712    #[inline(always)]
1713    fn default() -> DcdcV18P0Reg {
1714        <crate::RegValueT<DcdcV18P0Reg_SPEC> as RegisterValue<_>>::new(58340)
1715    }
1716}
1717
1718#[doc(hidden)]
1719#[derive(Copy, Clone, Eq, PartialEq)]
1720pub struct DcdcV18P1Reg_SPEC;
1721impl crate::sealed::RegSpec for DcdcV18P1Reg_SPEC {
1722    type DataType = u16;
1723}
1724
1725#[doc = "DCDC VPA Second Control Register"]
1726pub type DcdcV18P1Reg = crate::RegValueT<DcdcV18P1Reg_SPEC>;
1727
1728impl DcdcV18P1Reg {
1729    #[doc = "V18P output enable (high battery voltage mode)\n0 = Disabled\n1 = Enabled"]
1730    #[inline(always)]
1731    pub fn dcdc_v18p_enable_hv(
1732        self,
1733    ) -> crate::common::RegisterFieldBool<15, 1, 0, DcdcV18P1Reg_SPEC, crate::common::RW> {
1734        crate::common::RegisterFieldBool::<15,1,0,DcdcV18P1Reg_SPEC,crate::common::RW>::from_register(self,0)
1735    }
1736
1737    #[doc = "V18P output enable (low battery voltage mode)\n0 = Disabled\n1 = Enabled"]
1738    #[inline(always)]
1739    pub fn dcdc_v18p_enable_lv(
1740        self,
1741    ) -> crate::common::RegisterFieldBool<14, 1, 0, DcdcV18P1Reg_SPEC, crate::common::RW> {
1742        crate::common::RegisterFieldBool::<14,1,0,DcdcV18P1Reg_SPEC,crate::common::RW>::from_register(self,0)
1743    }
1744
1745    #[doc = "V18P output maximum current limit low battery voltage mode)\nI = 30 mA * (1 + N)"]
1746    #[inline(always)]
1747    pub fn dcdc_v18p_cur_lim_max_lv(
1748        self,
1749    ) -> crate::common::RegisterField<10, 0xf, 1, 0, u8, u8, DcdcV18P1Reg_SPEC, crate::common::RW>
1750    {
1751        crate::common::RegisterField::<10,0xf,1,0,u8,u8,DcdcV18P1Reg_SPEC,crate::common::RW>::from_register(self,0)
1752    }
1753
1754    #[doc = "V18P output idle time hysteresis\n0 - 3875 ns, 125 ns step size\nIDLE_MAX = IDLE_MIN + IDLE_HYST\nMaximum idle time before decreasing CUR_LIM"]
1755    #[inline(always)]
1756    pub fn dcdc_v18p_idle_hyst(
1757        self,
1758    ) -> crate::common::RegisterField<5, 0x1f, 1, 0, u8, u8, DcdcV18P1Reg_SPEC, crate::common::RW>
1759    {
1760        crate::common::RegisterField::<5,0x1f,1,0,u8,u8,DcdcV18P1Reg_SPEC,crate::common::RW>::from_register(self,0)
1761    }
1762
1763    #[doc = "V18P output minimum idle time\n0 - 3875 ns, 125 ns step size\nMinimum idle time, CUR_LIM is increased if this limit is not reached"]
1764    #[inline(always)]
1765    pub fn dcdc_v18p_idle_min(
1766        self,
1767    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, DcdcV18P1Reg_SPEC, crate::common::RW>
1768    {
1769        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,DcdcV18P1Reg_SPEC,crate::common::RW>::from_register(self,0)
1770    }
1771}
1772impl ::core::default::Default for DcdcV18P1Reg {
1773    #[inline(always)]
1774    fn default() -> DcdcV18P1Reg {
1775        <crate::RegValueT<DcdcV18P1Reg_SPEC> as RegisterValue<_>>::new(48272)
1776    }
1777}
1778
1779#[doc(hidden)]
1780#[derive(Copy, Clone, Eq, PartialEq)]
1781pub struct DcdcV180Reg_SPEC;
1782impl crate::sealed::RegSpec for DcdcV180Reg_SPEC {
1783    type DataType = u16;
1784}
1785
1786#[doc = "DCDC V18 First Control Register"]
1787pub type DcdcV180Reg = crate::RegValueT<DcdcV180Reg_SPEC>;
1788
1789impl DcdcV180Reg {
1790    #[doc = "V18 output fast current ramping (improves response time at the cost of more ripple)"]
1791    #[inline(always)]
1792    pub fn dcdc_v18_fast_ramping(
1793        self,
1794    ) -> crate::common::RegisterFieldBool<15, 1, 0, DcdcV180Reg_SPEC, crate::common::RW> {
1795        crate::common::RegisterFieldBool::<15,1,0,DcdcV180Reg_SPEC,crate::common::RW>::from_register(self,0)
1796    }
1797
1798    #[doc = "V18 output voltage\nV = 1.2 V + 25 mV * N"]
1799    #[inline(always)]
1800    pub fn dcdc_v18_voltage(
1801        self,
1802    ) -> crate::common::RegisterField<10, 0x1f, 1, 0, u8, u8, DcdcV180Reg_SPEC, crate::common::RW>
1803    {
1804        crate::common::RegisterField::<10,0x1f,1,0,u8,u8,DcdcV180Reg_SPEC,crate::common::RW>::from_register(self,0)
1805    }
1806
1807    #[doc = "V18 output maximum current limit (high battery voltage mode)\nI = 30 mA * (1 + N)"]
1808    #[inline(always)]
1809    pub fn dcdc_v18_cur_lim_max_hv(
1810        self,
1811    ) -> crate::common::RegisterField<5, 0x1f, 1, 0, u8, u8, DcdcV180Reg_SPEC, crate::common::RW>
1812    {
1813        crate::common::RegisterField::<5,0x1f,1,0,u8,u8,DcdcV180Reg_SPEC,crate::common::RW>::from_register(self,0)
1814    }
1815
1816    #[doc = "V18 output minimum current limit\nI = 30 mA * (1 + N)"]
1817    #[inline(always)]
1818    pub fn dcdc_v18_cur_lim_min(
1819        self,
1820    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, DcdcV180Reg_SPEC, crate::common::RW>
1821    {
1822        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,DcdcV180Reg_SPEC,crate::common::RW>::from_register(self,0)
1823    }
1824}
1825impl ::core::default::Default for DcdcV180Reg {
1826    #[inline(always)]
1827    fn default() -> DcdcV180Reg {
1828        <crate::RegValueT<DcdcV180Reg_SPEC> as RegisterValue<_>>::new(58340)
1829    }
1830}
1831
1832#[doc(hidden)]
1833#[derive(Copy, Clone, Eq, PartialEq)]
1834pub struct DcdcV181Reg_SPEC;
1835impl crate::sealed::RegSpec for DcdcV181Reg_SPEC {
1836    type DataType = u16;
1837}
1838
1839#[doc = "DCDC V18 Second Control Register"]
1840pub type DcdcV181Reg = crate::RegValueT<DcdcV181Reg_SPEC>;
1841
1842impl DcdcV181Reg {
1843    #[doc = "V18 output enable (high battery voltage mode)\n0 = Disabled\n1 = Enabled"]
1844    #[inline(always)]
1845    pub fn dcdc_v18_enable_hv(
1846        self,
1847    ) -> crate::common::RegisterFieldBool<15, 1, 0, DcdcV181Reg_SPEC, crate::common::RW> {
1848        crate::common::RegisterFieldBool::<15,1,0,DcdcV181Reg_SPEC,crate::common::RW>::from_register(self,0)
1849    }
1850
1851    #[doc = "V18 output enable (low battery voltage mode)\n0 = Disabled\n1 = Enabled"]
1852    #[inline(always)]
1853    pub fn dcdc_v18_enable_lv(
1854        self,
1855    ) -> crate::common::RegisterFieldBool<14, 1, 0, DcdcV181Reg_SPEC, crate::common::RW> {
1856        crate::common::RegisterFieldBool::<14,1,0,DcdcV181Reg_SPEC,crate::common::RW>::from_register(self,0)
1857    }
1858
1859    #[doc = "V18 output maximum current limit low battery voltage mode)\nI = 30 mA * (1 + N)"]
1860    #[inline(always)]
1861    pub fn dcdc_v18_cur_lim_max_lv(
1862        self,
1863    ) -> crate::common::RegisterField<10, 0xf, 1, 0, u8, u8, DcdcV181Reg_SPEC, crate::common::RW>
1864    {
1865        crate::common::RegisterField::<10,0xf,1,0,u8,u8,DcdcV181Reg_SPEC,crate::common::RW>::from_register(self,0)
1866    }
1867
1868    #[doc = "V18 output idle time hysteresis\n0 - 3875 ns, 125 ns step size\nIDLE_MAX = IDLE_MIN + IDLE_HYST\nMaximum idle time before decreasing CUR_LIM"]
1869    #[inline(always)]
1870    pub fn dcdc_v18_idle_hyst(
1871        self,
1872    ) -> crate::common::RegisterField<5, 0x1f, 1, 0, u8, u8, DcdcV181Reg_SPEC, crate::common::RW>
1873    {
1874        crate::common::RegisterField::<5,0x1f,1,0,u8,u8,DcdcV181Reg_SPEC,crate::common::RW>::from_register(self,0)
1875    }
1876
1877    #[doc = "V18 output minimum idle time\n0 - 3875 ns, 125 ns step size\nMinimum idle time, CUR_LIM is increased if this limit is not reached"]
1878    #[inline(always)]
1879    pub fn dcdc_v18_idle_min(
1880        self,
1881    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, DcdcV181Reg_SPEC, crate::common::RW>
1882    {
1883        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,DcdcV181Reg_SPEC,crate::common::RW>::from_register(self,0)
1884    }
1885}
1886impl ::core::default::Default for DcdcV181Reg {
1887    #[inline(always)]
1888    fn default() -> DcdcV181Reg {
1889        <crate::RegValueT<DcdcV181Reg_SPEC> as RegisterValue<_>>::new(48272)
1890    }
1891}
1892
1893#[doc(hidden)]
1894#[derive(Copy, Clone, Eq, PartialEq)]
1895pub struct DcdcVdd0Reg_SPEC;
1896impl crate::sealed::RegSpec for DcdcVdd0Reg_SPEC {
1897    type DataType = u16;
1898}
1899
1900#[doc = "DCDC VDD First Control Register"]
1901pub type DcdcVdd0Reg = crate::RegValueT<DcdcVdd0Reg_SPEC>;
1902
1903impl DcdcVdd0Reg {
1904    #[doc = "VDD output fast current ramping (improves response time at the cost of more ripple)"]
1905    #[inline(always)]
1906    pub fn dcdc_vdd_fast_ramping(
1907        self,
1908    ) -> crate::common::RegisterFieldBool<15, 1, 0, DcdcVdd0Reg_SPEC, crate::common::RW> {
1909        crate::common::RegisterFieldBool::<15,1,0,DcdcVdd0Reg_SPEC,crate::common::RW>::from_register(self,0)
1910    }
1911
1912    #[doc = "VDD output voltage\nV = 0.8 V + 25 mV * N"]
1913    #[inline(always)]
1914    pub fn dcdc_vdd_voltage(
1915        self,
1916    ) -> crate::common::RegisterField<10, 0x1f, 1, 0, u8, u8, DcdcVdd0Reg_SPEC, crate::common::RW>
1917    {
1918        crate::common::RegisterField::<10,0x1f,1,0,u8,u8,DcdcVdd0Reg_SPEC,crate::common::RW>::from_register(self,0)
1919    }
1920
1921    #[doc = "VDD output maximum current limit (high battery voltage mode)\nI = 30 mA * (1 + N)"]
1922    #[inline(always)]
1923    pub fn dcdc_vdd_cur_lim_max_hv(
1924        self,
1925    ) -> crate::common::RegisterField<5, 0x1f, 1, 0, u8, u8, DcdcVdd0Reg_SPEC, crate::common::RW>
1926    {
1927        crate::common::RegisterField::<5,0x1f,1,0,u8,u8,DcdcVdd0Reg_SPEC,crate::common::RW>::from_register(self,0)
1928    }
1929
1930    #[doc = "VDD output minimum current limit\nI = 30 mA * (1 + N)"]
1931    #[inline(always)]
1932    pub fn dcdc_vdd_cur_lim_min(
1933        self,
1934    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, DcdcVdd0Reg_SPEC, crate::common::RW>
1935    {
1936        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,DcdcVdd0Reg_SPEC,crate::common::RW>::from_register(self,0)
1937    }
1938}
1939impl ::core::default::Default for DcdcVdd0Reg {
1940    #[inline(always)]
1941    fn default() -> DcdcVdd0Reg {
1942        <crate::RegValueT<DcdcVdd0Reg_SPEC> as RegisterValue<_>>::new(49924)
1943    }
1944}
1945
1946#[doc(hidden)]
1947#[derive(Copy, Clone, Eq, PartialEq)]
1948pub struct DcdcVdd1Reg_SPEC;
1949impl crate::sealed::RegSpec for DcdcVdd1Reg_SPEC {
1950    type DataType = u16;
1951}
1952
1953#[doc = "DCDC VDD Second Control Register"]
1954pub type DcdcVdd1Reg = crate::RegValueT<DcdcVdd1Reg_SPEC>;
1955
1956impl DcdcVdd1Reg {
1957    #[doc = "VDD output enable (high battery voltage mode)\n0 = Disabled\n1 = Enabled"]
1958    #[inline(always)]
1959    pub fn dcdc_vdd_enable_hv(
1960        self,
1961    ) -> crate::common::RegisterFieldBool<15, 1, 0, DcdcVdd1Reg_SPEC, crate::common::RW> {
1962        crate::common::RegisterFieldBool::<15,1,0,DcdcVdd1Reg_SPEC,crate::common::RW>::from_register(self,0)
1963    }
1964
1965    #[doc = "VDD output enable (low battery voltage mode)\n0 = Disabled\n1 = Enabled"]
1966    #[inline(always)]
1967    pub fn dcdc_vdd_enable_lv(
1968        self,
1969    ) -> crate::common::RegisterFieldBool<14, 1, 0, DcdcVdd1Reg_SPEC, crate::common::RW> {
1970        crate::common::RegisterFieldBool::<14,1,0,DcdcVdd1Reg_SPEC,crate::common::RW>::from_register(self,0)
1971    }
1972
1973    #[doc = "VDD output maximum current limit low battery voltage mode)\nI = 30 mA * (1 + N)"]
1974    #[inline(always)]
1975    pub fn dcdc_vdd_cur_lim_max_lv(
1976        self,
1977    ) -> crate::common::RegisterField<10, 0xf, 1, 0, u8, u8, DcdcVdd1Reg_SPEC, crate::common::RW>
1978    {
1979        crate::common::RegisterField::<10,0xf,1,0,u8,u8,DcdcVdd1Reg_SPEC,crate::common::RW>::from_register(self,0)
1980    }
1981
1982    #[doc = "VDD output idle time hysteresis\n0 - 3875 ns, 125 ns step size\nIDLE_MAX = IDLE_MIN + IDLE_HYST\nMaximum idle time before decreasing CUR_LIM"]
1983    #[inline(always)]
1984    pub fn dcdc_vdd_idle_hyst(
1985        self,
1986    ) -> crate::common::RegisterField<5, 0x1f, 1, 0, u8, u8, DcdcVdd1Reg_SPEC, crate::common::RW>
1987    {
1988        crate::common::RegisterField::<5,0x1f,1,0,u8,u8,DcdcVdd1Reg_SPEC,crate::common::RW>::from_register(self,0)
1989    }
1990
1991    #[doc = "VDD output minimum idle time\n0 - 3875 ns, 125 ns step size\nMinimum idle time, CUR_LIM is increased if this limit is not reached"]
1992    #[inline(always)]
1993    pub fn dcdc_vdd_idle_min(
1994        self,
1995    ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, DcdcVdd1Reg_SPEC, crate::common::RW>
1996    {
1997        crate::common::RegisterField::<0,0x1f,1,0,u8,u8,DcdcVdd1Reg_SPEC,crate::common::RW>::from_register(self,0)
1998    }
1999}
2000impl ::core::default::Default for DcdcVdd1Reg {
2001    #[inline(always)]
2002    fn default() -> DcdcVdd1Reg {
2003        <crate::RegValueT<DcdcVdd1Reg_SPEC> as RegisterValue<_>>::new(60560)
2004    }
2005}