#![allow(clippy::identity_op)]
#![allow(clippy::module_inception)]
#![allow(clippy::derivable_impls)]
#[allow(unused_imports)]
use crate::common::sealed;
#[allow(unused_imports)]
use crate::common::*;
#[doc = r"crg580_dcdc_nl01 registers"]
unsafe impl ::core::marker::Send for super::Crg580DcdcNl01 {}
unsafe impl ::core::marker::Sync for super::Crg580DcdcNl01 {}
impl super::Crg580DcdcNl01 {
#[allow(unused)]
#[inline(always)]
pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
self.ptr
}
#[doc = "DCDC second control register"]
#[inline(always)]
pub const fn dcdc_ctrl2_reg(
&self,
) -> &'static crate::common::Reg<self::DcdcCtrl2Reg_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::DcdcCtrl2Reg_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(2usize),
)
}
}
#[doc = "DCDC thirth control register"]
#[inline(always)]
pub const fn dcdc_ctrl3_reg(
&self,
) -> &'static crate::common::Reg<self::DcdcCtrl3Reg_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::DcdcCtrl3Reg_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(4usize),
)
}
}
#[doc = "DCDC control register"]
#[inline(always)]
pub const fn dcdc_ctrl_reg(
&self,
) -> &'static crate::common::Reg<self::DcdcCtrlReg_SPEC, crate::common::RW> {
unsafe {
crate::common::Reg::<self::DcdcCtrlReg_SPEC, crate::common::RW>::from_ptr(
self._svd2pac_as_ptr().add(0usize),
)
}
}
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct DcdcCtrl2Reg_SPEC;
impl crate::sealed::RegSpec for DcdcCtrl2Reg_SPEC {
type DataType = u16;
}
#[doc = "DCDC second control register"]
pub type DcdcCtrl2Reg = crate::RegValueT<DcdcCtrl2Reg_SPEC>;
impl DcdcCtrl2Reg {
#[doc = "Nominal output voltage of the DCDC-converter.\nVDCDC = 1.2V + N*25mV"]
#[inline(always)]
pub fn dcdc_volt_lev(
self,
) -> crate::common::RegisterField<12, 0xf, 1, 0, u8, DcdcCtrl2Reg_SPEC, crate::common::RW> {
crate::common::RegisterField::<12,0xf,1,0,u8, DcdcCtrl2Reg_SPEC,crate::common::RW>::from_register(self,0)
}
#[doc = "Nominal VBAT3V output voltage of the boost converter.\n000 ... 011 = 1.8V + N*25mV\n100 = 2.4V\n101 = 2.5V\n110 = 2.62V\n111 = 2.76V\n(Note: MSB is automatically on if the OTP LDO is enabled.)"]
#[inline(always)]
pub fn dcdc_vbat3v_lev(
self,
) -> crate::common::RegisterField<9, 0x7, 1, 0, u8, DcdcCtrl2Reg_SPEC, crate::common::RW> {
crate::common::RegisterField::<9,0x7,1,0,u8, DcdcCtrl2Reg_SPEC,crate::common::RW>::from_register(self,0)
}
#[doc = "This defines the minimum on-time of the comparators. For buck-mode use 0x2, for boost-mode use 0x1"]
#[inline(always)]
pub fn dcdc_ton(
self,
) -> crate::common::RegisterField<7, 0x3, 1, 0, u8, DcdcCtrl2Reg_SPEC, crate::common::RW> {
crate::common::RegisterField::<7,0x3,1,0,u8, DcdcCtrl2Reg_SPEC,crate::common::RW>::from_register(self,0)
}
#[doc = "Current limit in the switches of the DCDC-converter (approximate values):\nN x 10mA"]
#[inline(always)]
pub fn dcdc_cur_lim(
self,
) -> crate::common::RegisterField<3, 0xf, 1, 0, u8, DcdcCtrl2Reg_SPEC, crate::common::RW> {
crate::common::RegisterField::<3,0xf,1,0,u8, DcdcCtrl2Reg_SPEC,crate::common::RW>::from_register(self,0)
}
#[doc = "Control of the automatic calibration of the DCDC-converter. For Buck-mode use 0x1, for Boost-mode use 0x6.\nAutomatic calibration is disabled by setting 0x0"]
#[inline(always)]
pub fn dcdc_auto_cal(
self,
) -> crate::common::RegisterField<0, 0x7, 1, 0, u8, DcdcCtrl2Reg_SPEC, crate::common::RW> {
crate::common::RegisterField::<0,0x7,1,0,u8, DcdcCtrl2Reg_SPEC,crate::common::RW>::from_register(self,0)
}
}
impl ::core::default::Default for DcdcCtrl2Reg {
#[inline(always)]
fn default() -> DcdcCtrl2Reg {
<crate::RegValueT<DcdcCtrl2Reg_SPEC> as RegisterValue<_>>::new(35872)
}
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct DcdcCtrl3Reg_SPEC;
impl crate::sealed::RegSpec for DcdcCtrl3Reg_SPEC {
type DataType = u16;
}
#[doc = "DCDC thirth control register"]
pub type DcdcCtrl3Reg = crate::RegValueT<DcdcCtrl3Reg_SPEC>;
impl DcdcCtrl3Reg {
#[doc = "timeout for the idle state to check voltage"]
#[inline(always)]
pub fn dcdc_timeout(
self,
) -> crate::common::RegisterField<3, 0x3, 1, 0, u8, DcdcCtrl3Reg_SPEC, crate::common::RW> {
crate::common::RegisterField::<3,0x3,1,0,u8, DcdcCtrl3Reg_SPEC,crate::common::RW>::from_register(self,0)
}
#[doc = "Clock used as trigger for the idle state to check voltage.\n(Note: when no 16 MHz oscillator is active, the 32 kHz oscillator will be used as trigger independent of the setting below:) \n00 = 16 MHz\n01 = 4 MHz\n10 = 1 MHz\n11 = 250 kHz"]
#[inline(always)]
pub fn dcdc_idle_clk(
self,
) -> crate::common::RegisterField<1, 0x3, 1, 0, u8, DcdcCtrl3Reg_SPEC, crate::common::RW> {
crate::common::RegisterField::<1,0x3,1,0,u8, DcdcCtrl3Reg_SPEC,crate::common::RW>::from_register(self,0)
}
#[doc = "Enables the buck converter when the device becomes active and VBAT1V is connected to GND."]
#[inline(always)]
pub fn buck_enable(
self,
) -> crate::common::RegisterFieldBool<0, 1, 0, DcdcCtrl3Reg_SPEC, crate::common::RW> {
crate::common::RegisterFieldBool::<0,1,0,DcdcCtrl3Reg_SPEC,crate::common::RW>::from_register(self,0)
}
}
impl ::core::default::Default for DcdcCtrl3Reg {
#[inline(always)]
fn default() -> DcdcCtrl3Reg {
<crate::RegValueT<DcdcCtrl3Reg_SPEC> as RegisterValue<_>>::new(21)
}
}
#[doc(hidden)]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct DcdcCtrlReg_SPEC;
impl crate::sealed::RegSpec for DcdcCtrlReg_SPEC {
type DataType = u16;
}
#[doc = "DCDC control register"]
pub type DcdcCtrlReg = crate::RegValueT<DcdcCtrlReg_SPEC>;
impl DcdcCtrlReg {
#[doc = "Tune-bits to compensate for parasitic resistance in the current sense circuit of the DCDC-converter."]
#[inline(always)]
pub fn dcdc_tune(
self,
) -> crate::common::RegisterField<14, 0x3, 1, 0, u8, DcdcCtrlReg_SPEC, crate::common::RW> {
crate::common::RegisterField::<14,0x3,1,0,u8, DcdcCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
}
#[doc = "Drive level of the switch between SWITCH and VDCDC.\n00 = 100 percent\n01 = 66 percent\n10 = 33 percent\n11 = off"]
#[inline(always)]
pub fn dcdc_drive_osw(
self,
) -> crate::common::RegisterField<12, 0x3, 1, 0, u8, DcdcCtrlReg_SPEC, crate::common::RW> {
crate::common::RegisterField::<12,0x3,1,0,u8, DcdcCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
}
#[doc = "Drive level of the switch between SWITCH and VBAT3V.\n00 = 100 percent\n01 = 66 percent\n10 = 33 percent\n11 = off"]
#[inline(always)]
pub fn dcdc_drive_psw(
self,
) -> crate::common::RegisterField<10, 0x3, 1, 0, u8, DcdcCtrlReg_SPEC, crate::common::RW> {
crate::common::RegisterField::<10,0x3,1,0,u8, DcdcCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
}
#[doc = "Drive level of the switch between SWITCH and GROUND.\n00 = 100 percent\n01 = 66 percent\n10 = 33 percent\n11 = off"]
#[inline(always)]
pub fn dcdc_drive_nsw(
self,
) -> crate::common::RegisterField<8, 0x3, 1, 0, u8, DcdcCtrlReg_SPEC, crate::common::RW> {
crate::common::RegisterField::<8,0x3,1,0,u8, DcdcCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
}
#[doc = "Testmodes, keep 000."]
#[inline(always)]
pub fn dcdc_mode(
self,
) -> crate::common::RegisterField<5, 0x7, 1, 0, u8, DcdcCtrlReg_SPEC, crate::common::RW> {
crate::common::RegisterField::<5,0x7,1,0,u8, DcdcCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
}
#[doc = "If VBAT1V is below this level, the boost converter will be disabled:\n110 = 0.6V\n101 = 0.8V\n011 = 1.0V\n111 = 0V (always OK)"]
#[inline(always)]
pub fn dcdc_vbat1v_lev(
self,
) -> crate::common::RegisterField<1, 0x7, 1, 0, u8, DcdcCtrlReg_SPEC, crate::common::RW> {
crate::common::RegisterField::<1,0x7,1,0,u8, DcdcCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
}
}
impl ::core::default::Default for DcdcCtrlReg {
#[inline(always)]
fn default() -> DcdcCtrlReg {
<crate::RegValueT<DcdcCtrlReg_SPEC> as RegisterValue<_>>::new(12)
}
}