# [doc = "WM8960 Registers"]
pub struct Wm8960 < 'a , I > { pub iface : & 'a mut I , pub addr : usize , } impl < 'a , I > Wm8960 < 'a , I > { # [doc = "Left Input Volume"]
# [inline (always)]
pub fn lin_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , InVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 0usize) as u8) } # [doc = "Right Input Volume"]
# [inline (always)]
pub fn rin_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , InVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 1usize) as u8) } # [doc = "Left Output Volume"]
# [inline (always)]
pub fn lout1_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , OutVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 2usize) as u8) } # [doc = "Right Output Volume"]
# [inline (always)]
pub fn rout1_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , OutVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 3usize) as u8) } # [doc = "Clocking"]
# [inline (always)]
pub fn clocking1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , Clocking1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 4usize) as u8) } # [doc = "ADC & DAC Control"]
# [inline (always)]
pub fn adac_ctl1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdacCtl1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 5usize) as u8) } # [doc = "ADC & DAC Control"]
# [inline (always)]
pub fn adac_ctl2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdacCtl2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 6usize) as u8) } # [doc = "Audio Interface"]
# [inline (always)]
pub fn aud_intf1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AudIntf1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 7usize) as u8) } # [doc = "Clocking"]
# [inline (always)]
pub fn clocking2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , Clocking2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 8usize) as u8) } # [doc = "Audio Interface"]
# [inline (always)]
pub fn aud_intf2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AudIntf2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 9usize) as u8) } # [doc = "Left DAC Volume"]
# [inline (always)]
pub fn ldac_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdacVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 10usize) as u8) } # [doc = "Right DAC Volume"]
# [inline (always)]
pub fn rdac_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdacVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 11usize) as u8) } # [doc = "Reset"]
# [inline (always)]
pub fn reset (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 15usize) as u8) } # [doc = "3D Control"]
# [inline (always)]
pub fn _3d_ctl (& mut self) -> crate :: common :: Reg < '_ , I , u8 , X3dCtl , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 16usize) as u8) } # [doc = "Automatic Level Control"]
# [inline (always)]
pub fn alc1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , Alc1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 17usize) as u8) } # [doc = "Automatic Level Control"]
# [inline (always)]
pub fn alc2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , Alc2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 18usize) as u8) } # [doc = "Automatic Level Control"]
# [inline (always)]
pub fn alc3 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , Alc3 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 19usize) as u8) } # [doc = "Noise Gate"]
# [inline (always)]
pub fn noise_gate (& mut self) -> crate :: common :: Reg < '_ , I , u8 , NoiseGate , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 20usize) as u8) } # [doc = "Left ADC Volume"]
# [inline (always)]
pub fn ladc_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdacVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 21usize) as u8) } # [doc = "Right ADC Volume"]
# [inline (always)]
pub fn radc_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdacVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 22usize) as u8) } # [doc = "Additional Control"]
# [inline (always)]
pub fn addtl_ctl1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AddtlCtl1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 23usize) as u8) } # [doc = "Additional Control"]
# [inline (always)]
pub fn addtl_ctl2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AddtlCtl2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 24usize) as u8) } # [doc = "Power Management"]
# [inline (always)]
pub fn pwr_mgmt1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , PwrMgmt1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 25usize) as u8) } # [doc = "Power Management"]
# [inline (always)]
pub fn pwr_mgmt2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , PwrMgmt2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 26usize) as u8) } # [doc = "Additional Control"]
# [inline (always)]
pub fn addtl_ctl3 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AddtlCtl3 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 27usize) as u8) } # [doc = "Anti-pop"]
# [inline (always)]
pub fn anti_pop1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AntiPop1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 28usize) as u8) } # [doc = "Anti-pop"]
# [inline (always)]
pub fn anti_pop2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AntiPop2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 29usize) as u8) } # [doc = "ADCL Signal Path"]
# [inline (always)]
pub fn adcl_sigpath (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdcSigpath , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 32usize) as u8) } # [doc = "ADCR Signal Path"]
# [inline (always)]
pub fn adcr_sigpath (& mut self) -> crate :: common :: Reg < '_ , I , u8 , AdcSigpath , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 33usize) as u8) } # [doc = "Left Out Mix"]
# [inline (always)]
pub fn lout_mix (& mut self) -> crate :: common :: Reg < '_ , I , u8 , LroutMix , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 34usize) as u8) } # [doc = "Right Out Mix"]
# [inline (always)]
pub fn rout_mix (& mut self) -> crate :: common :: Reg < '_ , I , u8 , LroutMix , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 37usize) as u8) } # [doc = "Mono Out Mix"]
# [inline (always)]
pub fn mout_mix1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , MoutMix1 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 38usize) as u8) } # [doc = "Mono Out Mix"]
# [inline (always)]
pub fn mout_mix2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , MoutMix2 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 39usize) as u8) } # [doc = "Left Speaker Out Volume"]
# [inline (always)]
pub fn lspkr_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , OutVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 40usize) as u8) } # [doc = "Right Speaker Out Volume"]
# [inline (always)]
pub fn rspkr_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , OutVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 41usize) as u8) } # [doc = "Mono Out Volume"]
# [inline (always)]
pub fn mout_vol (& mut self) -> crate :: common :: Reg < '_ , I , u8 , MoutVol , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 42usize) as u8) } # [doc = "Left Input Boost Mixer"]
# [inline (always)]
pub fn lin_boost_mix (& mut self) -> crate :: common :: Reg < '_ , I , u8 , InBoostMix , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 43usize) as u8) } # [doc = "Right Input Boost Mixer"]
# [inline (always)]
pub fn rin_boost_mix (& mut self) -> crate :: common :: Reg < '_ , I , u8 , InBoostMix , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 44usize) as u8) } # [doc = "Left Bypass"]
# [inline (always)]
pub fn lbypass (& mut self) -> crate :: common :: Reg < '_ , I , u8 , InBypass , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 45usize) as u8) } # [doc = "Right Bypass"]
# [inline (always)]
pub fn rbypass (& mut self) -> crate :: common :: Reg < '_ , I , u8 , InBypass , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 46usize) as u8) } # [doc = "Power Management"]
# [inline (always)]
pub fn pwr_mgmt3 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , PwrMgmt3 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 47usize) as u8) } # [doc = "Additional Control"]
# [inline (always)]
pub fn addtl_ctl4 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 48usize) as u8) } # [doc = "Class D Control"]
# [inline (always)]
pub fn classd_ctl1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 49usize) as u8) } # [doc = "Class D Control"]
# [inline (always)]
pub fn classd_ctl3 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 51usize) as u8) } # [doc = "PLL K"]
# [inline (always)]
pub fn pll_k3 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 51usize) as u8) } # [doc = "PLL N"]
# [inline (always)]
pub fn pll_n (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 52usize) as u8) } # [doc = "PLL K"]
# [inline (always)]
pub fn pll_k1 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 53usize) as u8) } # [doc = "PLL K"]
# [inline (always)]
pub fn pll_k2 (& mut self) -> crate :: common :: Reg < '_ , I , u8 , u16 , crate :: common :: RW > { crate :: common :: Reg :: new (self . iface , (self . addr + 54usize) as u8) } } # [doc = "ADC & DAC Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AdacCtl1 (pub u16) ; impl AdacCtl1 { # [doc = "ADC High Pass Filter Disable"]
# [inline (always)]
pub const fn adchpd (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [doc = "ADC High Pass Filter Disable"]
# [inline (always)]
pub fn set_adchpd (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [doc = "De-emphasis Control"]
# [inline (always)]
pub const fn deemph (& self) -> u8 { let val = (self . 0 >> 1usize) & 0x03 ; val as u8 } # [doc = "De-emphasis Control"]
# [inline (always)]
pub fn set_deemph (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 1usize)) | (((val as u16) & 0x03) << 1usize) ; } # [doc = "DAC Soft Mute"]
# [inline (always)]
pub const fn dacmu (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [doc = "DAC Soft Mute"]
# [inline (always)]
pub fn set_dacmu (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [doc = "ADC Polarity Control"]
# [inline (always)]
pub const fn adcpol (& self) -> u8 { let val = (self . 0 >> 5usize) & 0x03 ; val as u8 } # [doc = "ADC Polarity Control"]
# [inline (always)]
pub fn set_adcpol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 5usize)) | (((val as u16) & 0x03) << 5usize) ; } # [doc = "DAC 6dB attenuate enable, 0b0 = 0dB, 0b1 = -6dB"]
# [inline (always)]
pub const fn dacdiv2 (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "DAC 6dB attenuate enable, 0b0 = 0dB, 0b1 = -6dB"]
# [inline (always)]
pub fn set_dacdiv2 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } } impl Default for AdacCtl1 { # [inline (always)]
fn default () -> AdacCtl1 { AdacCtl1 (0) } } impl From < u16 > for AdacCtl1 { fn from (val : u16) -> AdacCtl1 { AdacCtl1 (val) } } impl From < AdacCtl1 > for u16 { fn from (val : AdacCtl1) -> u16 { val . 0 } } # [doc = "ADC & DAC Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AdacCtl2 (pub u16) ; impl AdacCtl2 { # [doc = "DAC Filter Characteristics"]
# [inline (always)]
pub const fn dacslope (& self) -> bool { let val = (self . 0 >> 1usize) & 0x01 ; val != 0 } # [doc = "DAC Filter Characteristics"]
# [inline (always)]
pub fn set_dacslope (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 1usize)) | (((val as u16) & 0x01) << 1usize) ; } # [doc = "DAC Soft Mute Ramp Rate"]
# [inline (always)]
pub const fn dacmr (& self) -> bool { let val = (self . 0 >> 2usize) & 0x01 ; val != 0 } # [doc = "DAC Soft Mute Ramp Rate"]
# [inline (always)]
pub fn set_dacmr (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 2usize)) | (((val as u16) & 0x01) << 2usize) ; } # [doc = "DAC Soft Mute Mode"]
# [inline (always)]
pub const fn dacsmm (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [doc = "DAC Soft Mute Mode"]
# [inline (always)]
pub fn set_dacsmm (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [doc = "DAC Polarity Control"]
# [inline (always)]
pub const fn dacpol (& self) -> u8 { let val = (self . 0 >> 5usize) & 0x03 ; val as u8 } # [doc = "DAC Polarity Control"]
# [inline (always)]
pub fn set_dacpol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 5usize)) | (((val as u16) & 0x03) << 5usize) ; } } impl Default for AdacCtl2 { # [inline (always)]
fn default () -> AdacCtl2 { AdacCtl2 (0) } } impl From < u16 > for AdacCtl2 { fn from (val : u16) -> AdacCtl2 { AdacCtl2 (val) } } impl From < AdacCtl2 > for u16 { fn from (val : AdacCtl2) -> u16 { val . 0 } } # [doc = "ADC/DAC Volume"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AdacVol (pub u16) ; impl AdacVol { # [doc = "ADC/DAC Volume Control"]
# [inline (always)]
pub const fn vol (& self) -> u8 { let val = (self . 0 >> 0usize) & 0xff ; val as u8 } # [doc = "ADC/DAC Volume Control"]
# [inline (always)]
pub fn set_vol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0xff << 0usize)) | (((val as u16) & 0xff) << 0usize) ; } # [doc = "ADC/DAC Volume Update, 0b1 = Left and Right updated"]
# [inline (always)]
pub const fn vu (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [doc = "ADC/DAC Volume Update, 0b1 = Left and Right updated"]
# [inline (always)]
pub fn set_vu (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for AdacVol { # [inline (always)]
fn default () -> AdacVol { AdacVol (0) } } impl From < u16 > for AdacVol { fn from (val : u16) -> AdacVol { AdacVol (val) } } impl From < AdacVol > for u16 { fn from (val : AdacVol) -> u16 { val . 0 } } # [doc = "ADC Signal Path"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AdcSigpath (pub u16) ; impl AdcSigpath { # [inline (always)]
pub const fn mic2b (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_mic2b (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [inline (always)]
pub const fn micboost (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_micboost (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 4usize)) | (((val as u16) & 0x03) << 4usize) ; } # [inline (always)]
pub const fn mp2 (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_mp2 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } # [inline (always)]
pub const fn mp3 (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_mp3 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } # [inline (always)]
pub const fn mn1 (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_mn1 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for AdcSigpath { # [inline (always)]
fn default () -> AdcSigpath { AdcSigpath (0) } } impl From < u16 > for AdcSigpath { fn from (val : u16) -> AdcSigpath { AdcSigpath (val) } } impl From < AdcSigpath > for u16 { fn from (val : AdcSigpath) -> u16 { val . 0 } } # [doc = "Additional Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AddtlCtl1 (pub u16) ; impl AddtlCtl1 { # [inline (always)]
pub const fn toen (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_toen (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [inline (always)]
pub const fn toclksel (& self) -> bool { let val = (self . 0 >> 1usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_toclksel (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 1usize)) | (((val as u16) & 0x01) << 1usize) ; } # [inline (always)]
pub const fn datsel (& self) -> u8 { let val = (self . 0 >> 2usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_datsel (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 2usize)) | (((val as u16) & 0x03) << 2usize) ; } # [inline (always)]
pub const fn dmonomix (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_dmonomix (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [inline (always)]
pub const fn vsel (& self) -> u8 { let val = (self . 0 >> 6usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_vsel (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 6usize)) | (((val as u16) & 0x03) << 6usize) ; } # [inline (always)]
pub const fn tsden (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_tsden (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for AddtlCtl1 { # [inline (always)]
fn default () -> AddtlCtl1 { AddtlCtl1 (0) } } impl From < u16 > for AddtlCtl1 { fn from (val : u16) -> AddtlCtl1 { AddtlCtl1 (val) } } impl From < AddtlCtl1 > for u16 { fn from (val : AddtlCtl1) -> u16 { val . 0 } } # [doc = "Additional Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AddtlCtl2 (pub u16) ; impl AddtlCtl2 { # [inline (always)]
pub const fn lrcm (& self) -> bool { let val = (self . 0 >> 2usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_lrcm (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 2usize)) | (((val as u16) & 0x01) << 2usize) ; } # [inline (always)]
pub const fn tris (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_tris (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [inline (always)]
pub const fn hpswpol (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_hpswpol (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } # [inline (always)]
pub const fn hpswen (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_hpswen (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } } impl Default for AddtlCtl2 { # [inline (always)]
fn default () -> AddtlCtl2 { AddtlCtl2 (0) } } impl From < u16 > for AddtlCtl2 { fn from (val : u16) -> AddtlCtl2 { AddtlCtl2 (val) } } impl From < AddtlCtl2 > for u16 { fn from (val : AddtlCtl2) -> u16 { val . 0 } } # [doc = "Additional Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AddtlCtl3 (pub u16) ; impl AddtlCtl3 { # [inline (always)]
pub const fn adc_alc_sr (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x07 ; val as u8 } # [inline (always)]
pub fn set_adc_alc_sr (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 0usize)) | (((val as u16) & 0x07) << 0usize) ; } # [inline (always)]
pub const fn out3cap (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_out3cap (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [inline (always)]
pub const fn vroi (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_vroi (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } } impl Default for AddtlCtl3 { # [inline (always)]
fn default () -> AddtlCtl3 { AddtlCtl3 (0) } } impl From < u16 > for AddtlCtl3 { fn from (val : u16) -> AddtlCtl3 { AddtlCtl3 (val) } } impl From < AddtlCtl3 > for u16 { fn from (val : AddtlCtl3) -> u16 { val . 0 } } # [doc = "Automatic Level Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct Alc1 (pub u16) ; impl Alc1 { # [inline (always)]
pub const fn alcl (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x0f ; val as u8 } # [inline (always)]
pub fn set_alcl (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x0f << 0usize)) | (((val as u16) & 0x0f) << 0usize) ; } # [inline (always)]
pub const fn maxgain (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x07 ; val as u8 } # [inline (always)]
pub fn set_maxgain (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 4usize)) | (((val as u16) & 0x07) << 4usize) ; } # [inline (always)]
pub const fn alcsel (& self) -> u8 { let val = (self . 0 >> 7usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_alcsel (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 7usize)) | (((val as u16) & 0x03) << 7usize) ; } } impl Default for Alc1 { # [inline (always)]
fn default () -> Alc1 { Alc1 (0) } } impl From < u16 > for Alc1 { fn from (val : u16) -> Alc1 { Alc1 (val) } } impl From < Alc1 > for u16 { fn from (val : Alc1) -> u16 { val . 0 } } # [doc = "Automatic Level Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct Alc2 (pub u16) ; impl Alc2 { # [inline (always)]
pub const fn hld (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x0f ; val as u8 } # [inline (always)]
pub fn set_hld (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x0f << 0usize)) | (((val as u16) & 0x0f) << 0usize) ; } # [inline (always)]
pub const fn mingain (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x07 ; val as u8 } # [inline (always)]
pub fn set_mingain (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 4usize)) | (((val as u16) & 0x07) << 4usize) ; } } impl Default for Alc2 { # [inline (always)]
fn default () -> Alc2 { Alc2 (0) } } impl From < u16 > for Alc2 { fn from (val : u16) -> Alc2 { Alc2 (val) } } impl From < Alc2 > for u16 { fn from (val : Alc2) -> u16 { val . 0 } } # [doc = "Automatic Level Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct Alc3 (pub u16) ; impl Alc3 { # [inline (always)]
pub const fn atk (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x0f ; val as u8 } # [inline (always)]
pub fn set_atk (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x0f << 0usize)) | (((val as u16) & 0x0f) << 0usize) ; } # [inline (always)]
pub const fn dcy (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x0f ; val as u8 } # [inline (always)]
pub fn set_dcy (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x0f << 4usize)) | (((val as u16) & 0x0f) << 4usize) ; } # [inline (always)]
pub const fn alcmode (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_alcmode (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for Alc3 { # [inline (always)]
fn default () -> Alc3 { Alc3 (0) } } impl From < u16 > for Alc3 { fn from (val : u16) -> Alc3 { Alc3 (val) } } impl From < Alc3 > for u16 { fn from (val : Alc3) -> u16 { val . 0 } } # [doc = "Anti-Pop"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AntiPop1 (pub u16) ; impl AntiPop1 { # [inline (always)]
pub const fn hpstby (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_hpstby (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [inline (always)]
pub const fn soft_st (& self) -> bool { let val = (self . 0 >> 2usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_soft_st (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 2usize)) | (((val as u16) & 0x01) << 2usize) ; } # [inline (always)]
pub const fn bufioen (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_bufioen (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [inline (always)]
pub const fn bufdcopen (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_bufdcopen (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [inline (always)]
pub const fn pobctrl (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_pobctrl (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } } impl Default for AntiPop1 { # [inline (always)]
fn default () -> AntiPop1 { AntiPop1 (0) } } impl From < u16 > for AntiPop1 { fn from (val : u16) -> AntiPop1 { AntiPop1 (val) } } impl From < AntiPop1 > for u16 { fn from (val : AntiPop1) -> u16 { val . 0 } } # [doc = "Anti-Pop"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AntiPop2 (pub u16) ; impl AntiPop2 { # [inline (always)]
pub const fn dres (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_dres (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 4usize)) | (((val as u16) & 0x03) << 4usize) ; } # [inline (always)]
pub const fn disop (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_disop (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } } impl Default for AntiPop2 { # [inline (always)]
fn default () -> AntiPop2 { AntiPop2 (0) } } impl From < u16 > for AntiPop2 { fn from (val : u16) -> AntiPop2 { AntiPop2 (val) } } impl From < AntiPop2 > for u16 { fn from (val : AntiPop2) -> u16 { val . 0 } } # [doc = "Audio Interface"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AudIntf1 (pub u16) ; impl AudIntf1 { # [doc = "Audio Format"]
# [inline (always)]
pub const fn format (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x03 ; val as u8 } # [doc = "Audio Format"]
# [inline (always)]
pub fn set_format (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 0usize)) | (((val as u16) & 0x03) << 0usize) ; } # [doc = "Audio Word Length"]
# [inline (always)]
pub const fn wl (& self) -> u8 { let val = (self . 0 >> 2usize) & 0x03 ; val as u8 } # [doc = "Audio Word Length"]
# [inline (always)]
pub fn set_wl (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 2usize)) | (((val as u16) & 0x03) << 2usize) ; } # [doc = "LR Polarity"]
# [inline (always)]
pub const fn lrp (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [doc = "LR Polarity"]
# [inline (always)]
pub fn set_lrp (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [doc = "Left/Right DAC Channel Swap"]
# [inline (always)]
pub const fn dlrswap (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [doc = "Left/Right DAC Channel Swap"]
# [inline (always)]
pub fn set_dlrswap (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } # [doc = "Master/Slave Mode"]
# [inline (always)]
pub const fn ms (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [doc = "Master/Slave Mode"]
# [inline (always)]
pub fn set_ms (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } # [doc = "BCLK Invert Bit"]
# [inline (always)]
pub const fn bclkinv (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "BCLK Invert Bit"]
# [inline (always)]
pub fn set_bclkinv (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } # [doc = "Left/Right ADC Channel Swap"]
# [inline (always)]
pub const fn alrswap (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [doc = "Left/Right ADC Channel Swap"]
# [inline (always)]
pub fn set_alrswap (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for AudIntf1 { # [inline (always)]
fn default () -> AudIntf1 { AudIntf1 (0) } } impl From < u16 > for AudIntf1 { fn from (val : u16) -> AudIntf1 { AudIntf1 (val) } } impl From < AudIntf1 > for u16 { fn from (val : AudIntf1) -> u16 { val . 0 } } # [doc = "Audio Interface"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct AudIntf2 (pub u16) ; impl AudIntf2 { # [inline (always)]
pub const fn loopback (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_loopback (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [inline (always)]
pub const fn adccomp (& self) -> u8 { let val = (self . 0 >> 1usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_adccomp (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 1usize)) | (((val as u16) & 0x03) << 1usize) ; } # [inline (always)]
pub const fn daccomp (& self) -> u8 { let val = (self . 0 >> 3usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_daccomp (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 3usize)) | (((val as u16) & 0x03) << 3usize) ; } # [inline (always)]
pub const fn wl8 (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_wl8 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [inline (always)]
pub const fn alrcgpio (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_alrcgpio (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } } impl Default for AudIntf2 { # [inline (always)]
fn default () -> AudIntf2 { AudIntf2 (0) } } impl From < u16 > for AudIntf2 { fn from (val : u16) -> AudIntf2 { AudIntf2 (val) } } impl From < AudIntf2 > for u16 { fn from (val : AudIntf2) -> u16 { val . 0 } } # [doc = "Clocking Control 1"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct Clocking1 (pub u16) ; impl Clocking1 { # [doc = "SYSCLK Selection 0b0 = MCLK, 0b1 = PLL"]
# [inline (always)]
pub const fn clksel (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [doc = "SYSCLK Selection 0b0 = MCLK, 0b1 = PLL"]
# [inline (always)]
pub fn set_clksel (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [doc = "SYSCLK pre-divider, 0b00 = 1, 0b10 = 2"]
# [inline (always)]
pub const fn sysclkdiv (& self) -> u8 { let val = (self . 0 >> 1usize) & 0x03 ; val as u8 } # [doc = "SYSCLK pre-divider, 0b00 = 1, 0b10 = 2"]
# [inline (always)]
pub fn set_sysclkdiv (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 1usize)) | (((val as u16) & 0x03) << 1usize) ; } # [doc = "DAC Sample rate divider, 0b000 = 1, 0b111 = 6, 0.5 per step"]
# [inline (always)]
pub const fn dacdiv (& self) -> u8 { let val = (self . 0 >> 3usize) & 0x07 ; val as u8 } # [doc = "DAC Sample rate divider, 0b000 = 1, 0b111 = 6, 0.5 per step"]
# [inline (always)]
pub fn set_dacdiv (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 3usize)) | (((val as u16) & 0x07) << 3usize) ; } # [doc = "ADC Sample rate divider, 0b000 = 1, 0b111 = 6, 0.5 per step"]
# [inline (always)]
pub const fn adcdiv (& self) -> u8 { let val = (self . 0 >> 5usize) & 0x07 ; val as u8 } # [doc = "ADC Sample rate divider, 0b000 = 1, 0b111 = 6, 0.5 per step"]
# [inline (always)]
pub fn set_adcdiv (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 5usize)) | (((val as u16) & 0x07) << 5usize) ; } } impl Default for Clocking1 { # [inline (always)]
fn default () -> Clocking1 { Clocking1 (0) } } impl From < u16 > for Clocking1 { fn from (val : u16) -> Clocking1 { Clocking1 (val) } } impl From < Clocking1 > for u16 { fn from (val : Clocking1) -> u16 { val . 0 } } # [doc = "Clocking"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct Clocking2 (pub u16) ; impl Clocking2 { # [doc = "BCLK Divider"]
# [inline (always)]
pub const fn bclkdiv (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x07 ; val as u8 } # [doc = "BCLK Divider"]
# [inline (always)]
pub fn set_bclkdiv (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 0usize)) | (((val as u16) & 0x07) << 0usize) ; } # [doc = "Class D Switching Clock Divider"]
# [inline (always)]
pub const fn dclkdiv (& self) -> u8 { let val = (self . 0 >> 5usize) & 0x07 ; val as u8 } # [doc = "Class D Switching Clock Divider"]
# [inline (always)]
pub fn set_dclkdiv (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 5usize)) | (((val as u16) & 0x07) << 5usize) ; } } impl Default for Clocking2 { # [inline (always)]
fn default () -> Clocking2 { Clocking2 (0) } } impl From < u16 > for Clocking2 { fn from (val : u16) -> Clocking2 { Clocking2 (val) } } impl From < Clocking2 > for u16 { fn from (val : Clocking2) -> u16 { val . 0 } } # [doc = "Input Boost Mixer"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct InBoostMix (pub u16) ; impl InBoostMix { # [doc = "L/R Input 2 Boost Mixer Gain"]
# [inline (always)]
pub const fn in2boost (& self) -> u8 { let val = (self . 0 >> 1usize) & 0x07 ; val as u8 } # [doc = "L/R Input 2 Boost Mixer Gain"]
# [inline (always)]
pub fn set_in2boost (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 1usize)) | (((val as u16) & 0x07) << 1usize) ; } # [doc = "L/R Input 3 Boost Mixer Gain"]
# [inline (always)]
pub const fn in3boost (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x07 ; val as u8 } # [doc = "L/R Input 3 Boost Mixer Gain"]
# [inline (always)]
pub fn set_in3boost (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 4usize)) | (((val as u16) & 0x07) << 4usize) ; } } impl Default for InBoostMix { # [inline (always)]
fn default () -> InBoostMix { InBoostMix (0) } } impl From < u16 > for InBoostMix { fn from (val : u16) -> InBoostMix { InBoostMix (val) } } impl From < InBoostMix > for u16 { fn from (val : InBoostMix) -> u16 { val . 0 } } # [doc = "L/R Input Boost Bypass"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct InBypass (pub u16) ; impl InBypass { # [doc = "Boost to Output Volume"]
# [inline (always)]
pub const fn b2ovol (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x07 ; val as u8 } # [doc = "Boost to Output Volume"]
# [inline (always)]
pub fn set_b2ovol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 4usize)) | (((val as u16) & 0x07) << 4usize) ; } # [doc = "Boost to Output Bypass"]
# [inline (always)]
pub const fn b2o (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "Boost to Output Bypass"]
# [inline (always)]
pub fn set_b2o (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } } impl Default for InBypass { # [inline (always)]
fn default () -> InBypass { InBypass (0) } } impl From < u16 > for InBypass { fn from (val : u16) -> InBypass { InBypass (val) } } impl From < InBypass > for u16 { fn from (val : InBypass) -> u16 { val . 0 } } # [doc = "Input Volume Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct InVol (pub u16) ; impl InVol { # [doc = "Input Volume Control, 0b111111 = +30dB, 0b000000 = -17.25 dB, 0.75dB per step"]
# [inline (always)]
pub const fn vol (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x3f ; val as u8 } # [doc = "Input Volume Control, 0b111111 = +30dB, 0b000000 = -17.25 dB, 0.75dB per step"]
# [inline (always)]
pub fn set_vol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x3f << 0usize)) | (((val as u16) & 0x3f) << 0usize) ; } # [doc = "Input Zero Cross Detector, 0b1 change gain on zero cross, 0b0 change immediately"]
# [inline (always)]
pub const fn zc (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [doc = "Input Zero Cross Detector, 0b1 change gain on zero cross, 0b0 change immediately"]
# [inline (always)]
pub fn set_zc (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } # [doc = "Input Analogue Mute"]
# [inline (always)]
pub const fn mute (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "Input Analogue Mute"]
# [inline (always)]
pub fn set_mute (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } # [doc = "Input Volume Update, 0b1 to update left/right channels simultaneously"]
# [inline (always)]
pub const fn vu (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [doc = "Input Volume Update, 0b1 to update left/right channels simultaneously"]
# [inline (always)]
pub fn set_vu (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for InVol { # [inline (always)]
fn default () -> InVol { InVol (0) } } impl From < u16 > for InVol { fn from (val : u16) -> InVol { InVol (val) } } impl From < InVol > for u16 { fn from (val : InVol) -> u16 { val . 0 } } # [doc = "Left/Right Output Mix"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct LroutMix (pub u16) ; impl LroutMix { # [doc = "Input 3 Output Mixer Volume"]
# [inline (always)]
pub const fn i2ovol (& self) -> u8 { let val = (self . 0 >> 4usize) & 0x07 ; val as u8 } # [doc = "Input 3 Output Mixer Volume"]
# [inline (always)]
pub fn set_i2ovol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x07 << 4usize)) | (((val as u16) & 0x07) << 4usize) ; } # [doc = "Input 3 to Output"]
# [inline (always)]
pub const fn i2o (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "Input 3 to Output"]
# [inline (always)]
pub fn set_i2o (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } # [doc = "DAC to Output"]
# [inline (always)]
pub const fn d2o (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [doc = "DAC to Output"]
# [inline (always)]
pub fn set_d2o (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for LroutMix { # [inline (always)]
fn default () -> LroutMix { LroutMix (0) } } impl From < u16 > for LroutMix { fn from (val : u16) -> LroutMix { LroutMix (val) } } impl From < LroutMix > for u16 { fn from (val : LroutMix) -> u16 { val . 0 } } # [doc = "Mono Output Mix"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct MoutMix1 (pub u16) ; impl MoutMix1 { # [doc = "Left Output to Mono Output"]
# [inline (always)]
pub const fn l2mo (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "Left Output to Mono Output"]
# [inline (always)]
pub fn set_l2mo (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } } impl Default for MoutMix1 { # [inline (always)]
fn default () -> MoutMix1 { MoutMix1 (0) } } impl From < u16 > for MoutMix1 { fn from (val : u16) -> MoutMix1 { MoutMix1 (val) } } impl From < MoutMix1 > for u16 { fn from (val : MoutMix1) -> u16 { val . 0 } } # [doc = "Mono Output Mix"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct MoutMix2 (pub u16) ; impl MoutMix2 { # [doc = "Right Output to Mono Output"]
# [inline (always)]
pub const fn r2mo (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "Right Output to Mono Output"]
# [inline (always)]
pub fn set_r2mo (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } } impl Default for MoutMix2 { # [inline (always)]
fn default () -> MoutMix2 { MoutMix2 (0) } } impl From < u16 > for MoutMix2 { fn from (val : u16) -> MoutMix2 { MoutMix2 (val) } } impl From < MoutMix2 > for u16 { fn from (val : MoutMix2) -> u16 { val . 0 } } # [doc = "Mono Output Volume"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct MoutVol (pub u16) ; impl MoutVol { # [doc = "-6dB Mono Output Mixer Volume Control"]
# [inline (always)]
pub const fn moutvol (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [doc = "-6dB Mono Output Mixer Volume Control"]
# [inline (always)]
pub fn set_moutvol (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } } impl Default for MoutVol { # [inline (always)]
fn default () -> MoutVol { MoutVol (0) } } impl From < u16 > for MoutVol { fn from (val : u16) -> MoutVol { MoutVol (val) } } impl From < MoutVol > for u16 { fn from (val : MoutVol) -> u16 { val . 0 } } # [doc = "Noise Gate"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct NoiseGate (pub u16) ; impl NoiseGate { # [inline (always)]
pub const fn ngat (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_ngat (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [inline (always)]
pub const fn ngth (& self) -> u8 { let val = (self . 0 >> 3usize) & 0x1f ; val as u8 } # [inline (always)]
pub fn set_ngth (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x1f << 3usize)) | (((val as u16) & 0x1f) << 3usize) ; } } impl Default for NoiseGate { # [inline (always)]
fn default () -> NoiseGate { NoiseGate (0) } } impl From < u16 > for NoiseGate { fn from (val : u16) -> NoiseGate { NoiseGate (val) } } impl From < NoiseGate > for u16 { fn from (val : NoiseGate) -> u16 { val . 0 } } # [doc = "Output Volume Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct OutVol (pub u16) ; impl OutVol { # [doc = "Output Volume Control, 0b1111111 = +6dB, 0b110000 = -73dB, 0b101111 to 0b0000000 = mute, 1dB per step"]
# [inline (always)]
pub const fn vol (& self) -> u8 { let val = (self . 0 >> 0usize) & 0x7f ; val as u8 } # [doc = "Output Volume Control, 0b1111111 = +6dB, 0b110000 = -73dB, 0b101111 to 0b0000000 = mute, 1dB per step"]
# [inline (always)]
pub fn set_vol (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x7f << 0usize)) | (((val as u16) & 0x7f) << 0usize) ; } # [doc = "Output Zero Cross Detector, 0b1 change gain on zero cross, 0b0 change immediately"]
# [inline (always)]
pub const fn zc (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [doc = "Output Zero Cross Detector, 0b1 change gain on zero cross, 0b0 change immediately"]
# [inline (always)]
pub fn set_zc (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } # [doc = "Output Volume Update, 0b1 to update left/right channels simultaneously"]
# [inline (always)]
pub const fn vu (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [doc = "Output Volume Update, 0b1 to update left/right channels simultaneously"]
# [inline (always)]
pub fn set_vu (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for OutVol { # [inline (always)]
fn default () -> OutVol { OutVol (0) } } impl From < u16 > for OutVol { fn from (val : u16) -> OutVol { OutVol (val) } } impl From < OutVol > for u16 { fn from (val : OutVol) -> u16 { val . 0 } } # [doc = "Power Management"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct PwrMgmt1 (pub u16) ; impl PwrMgmt1 { # [inline (always)]
pub const fn digenb (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_digenb (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [inline (always)]
pub const fn micb (& self) -> bool { let val = (self . 0 >> 1usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_micb (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 1usize)) | (((val as u16) & 0x01) << 1usize) ; } # [inline (always)]
pub const fn adcr (& self) -> bool { let val = (self . 0 >> 2usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_adcr (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 2usize)) | (((val as u16) & 0x01) << 2usize) ; } # [inline (always)]
pub const fn adcl (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_adcl (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [inline (always)]
pub const fn ainr (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_ainr (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [inline (always)]
pub const fn ainl (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_ainl (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } # [inline (always)]
pub const fn vref (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_vref (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } # [inline (always)]
pub const fn vmidsel (& self) -> u8 { let val = (self . 0 >> 7usize) & 0x03 ; val as u8 } # [inline (always)]
pub fn set_vmidsel (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x03 << 7usize)) | (((val as u16) & 0x03) << 7usize) ; } } impl Default for PwrMgmt1 { # [inline (always)]
fn default () -> PwrMgmt1 { PwrMgmt1 (0) } } impl From < u16 > for PwrMgmt1 { fn from (val : u16) -> PwrMgmt1 { PwrMgmt1 (val) } } impl From < PwrMgmt1 > for u16 { fn from (val : PwrMgmt1) -> u16 { val . 0 } } # [doc = "Power Management"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct PwrMgmt2 (pub u16) ; impl PwrMgmt2 { # [inline (always)]
pub const fn pll_en (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_pll_en (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [inline (always)]
pub const fn out3 (& self) -> bool { let val = (self . 0 >> 1usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_out3 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 1usize)) | (((val as u16) & 0x01) << 1usize) ; } # [inline (always)]
pub const fn spkr (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_spkr (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [inline (always)]
pub const fn spkl (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_spkl (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [inline (always)]
pub const fn rout1 (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_rout1 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } # [inline (always)]
pub const fn lout1 (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_lout1 (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } # [inline (always)]
pub const fn dacr (& self) -> bool { let val = (self . 0 >> 7usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_dacr (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 7usize)) | (((val as u16) & 0x01) << 7usize) ; } # [inline (always)]
pub const fn dacl (& self) -> bool { let val = (self . 0 >> 8usize) & 0x01 ; val != 0 } # [inline (always)]
pub fn set_dacl (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 8usize)) | (((val as u16) & 0x01) << 8usize) ; } } impl Default for PwrMgmt2 { # [inline (always)]
fn default () -> PwrMgmt2 { PwrMgmt2 (0) } } impl From < u16 > for PwrMgmt2 { fn from (val : u16) -> PwrMgmt2 { PwrMgmt2 (val) } } impl From < PwrMgmt2 > for u16 { fn from (val : PwrMgmt2) -> u16 { val . 0 } } # [doc = "Power Management"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct PwrMgmt3 (pub u16) ; impl PwrMgmt3 { # [doc = "Right Output Mixer Enable"]
# [inline (always)]
pub const fn romix (& self) -> bool { let val = (self . 0 >> 2usize) & 0x01 ; val != 0 } # [doc = "Right Output Mixer Enable"]
# [inline (always)]
pub fn set_romix (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 2usize)) | (((val as u16) & 0x01) << 2usize) ; } # [doc = "Left Output Mixer Enable"]
# [inline (always)]
pub const fn lomix (& self) -> bool { let val = (self . 0 >> 3usize) & 0x01 ; val != 0 } # [doc = "Left Output Mixer Enable"]
# [inline (always)]
pub fn set_lomix (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 3usize)) | (((val as u16) & 0x01) << 3usize) ; } # [doc = "Right Mic Input Enable"]
# [inline (always)]
pub const fn rmic (& self) -> bool { let val = (self . 0 >> 4usize) & 0x01 ; val != 0 } # [doc = "Right Mic Input Enable"]
# [inline (always)]
pub fn set_rmic (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 4usize)) | (((val as u16) & 0x01) << 4usize) ; } # [doc = "Left Mic Input Enable"]
# [inline (always)]
pub const fn lmic (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [doc = "Left Mic Input Enable"]
# [inline (always)]
pub fn set_lmic (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } } impl Default for PwrMgmt3 { # [inline (always)]
fn default () -> PwrMgmt3 { PwrMgmt3 (0) } } impl From < u16 > for PwrMgmt3 { fn from (val : u16) -> PwrMgmt3 { PwrMgmt3 (val) } } impl From < PwrMgmt3 > for u16 { fn from (val : PwrMgmt3) -> u16 { val . 0 } } # [doc = "3D Control"]
# [repr (transparent)]
# [derive (Copy , Clone , Eq , PartialEq)]
pub struct X3dCtl (pub u16) ; impl X3dCtl { # [doc = "3D Stereo Enhancement Enable"]
# [inline (always)]
pub const fn x3den (& self) -> bool { let val = (self . 0 >> 0usize) & 0x01 ; val != 0 } # [doc = "3D Stereo Enhancement Enable"]
# [inline (always)]
pub fn set_x3den (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 0usize)) | (((val as u16) & 0x01) << 0usize) ; } # [doc = "3D Stereo Depth"]
# [inline (always)]
pub const fn x3ddepth (& self) -> u8 { let val = (self . 0 >> 1usize) & 0x0f ; val as u8 } # [doc = "3D Stereo Depth"]
# [inline (always)]
pub fn set_x3ddepth (& mut self , val : u8) { self . 0 = (self . 0 & ! (0x0f << 1usize)) | (((val as u16) & 0x0f) << 1usize) ; } # [doc = "Lower Cut-Off Frequency"]
# [inline (always)]
pub const fn x3dlc (& self) -> bool { let val = (self . 0 >> 5usize) & 0x01 ; val != 0 } # [doc = "Lower Cut-Off Frequency"]
# [inline (always)]
pub fn set_x3dlc (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 5usize)) | (((val as u16) & 0x01) << 5usize) ; } # [doc = "Upper Cut-Off Frequency"]
# [inline (always)]
pub const fn x3duc (& self) -> bool { let val = (self . 0 >> 6usize) & 0x01 ; val != 0 } # [doc = "Upper Cut-Off Frequency"]
# [inline (always)]
pub fn set_x3duc (& mut self , val : bool) { self . 0 = (self . 0 & ! (0x01 << 6usize)) | (((val as u16) & 0x01) << 6usize) ; } } impl Default for X3dCtl { # [inline (always)]
fn default () -> X3dCtl { X3dCtl (0) } } impl From < u16 > for X3dCtl { fn from (val : u16) -> X3dCtl { X3dCtl (val) } } impl From < X3dCtl > for u16 { fn from (val : X3dCtl) -> u16 { val . 0 } }