urukul: add urukul clock config getter
This commit is contained in:
parent
3abc0c3e4e
commit
95443a2283
|
@ -173,6 +173,18 @@ where
|
||||||
self.set_clock_division(division)
|
self.set_clock_division(division)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_clock_source(&mut self) -> Result<ClockSource, Error<E>> {
|
||||||
|
match (
|
||||||
|
self.config_register.get_configuration(CFGMask::CLK_SEL0),
|
||||||
|
self.config_register.get_configuration(CFGMask::CLK_SEL1)
|
||||||
|
) {
|
||||||
|
(0, 0) => Ok(ClockSource::OSC),
|
||||||
|
(0, 1) => Ok(ClockSource::MMCX),
|
||||||
|
(1, _) => Ok(ClockSource::SMA),
|
||||||
|
_ => Err(Error::ConfigRegisterError)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn set_clock_source(&mut self, source: ClockSource) -> Result<(), Error<E>> {
|
pub fn set_clock_source(&mut self, source: ClockSource) -> Result<(), Error<E>> {
|
||||||
// Change clock source through configuration register
|
// Change clock source through configuration register
|
||||||
match source {
|
match source {
|
||||||
|
@ -190,6 +202,10 @@ where
|
||||||
}.map(|_| ())
|
}.map(|_| ())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_clock_frequency(&mut self) -> f64 {
|
||||||
|
self.f_master_clk
|
||||||
|
}
|
||||||
|
|
||||||
pub fn set_clock_frequency(&mut self, frequency: f64) -> Result<(), Error<E>> {
|
pub fn set_clock_frequency(&mut self, frequency: f64) -> Result<(), Error<E>> {
|
||||||
// Update master clock frequency
|
// Update master clock frequency
|
||||||
self.f_master_clk = frequency;
|
self.f_master_clk = frequency;
|
||||||
|
@ -198,6 +214,15 @@ where
|
||||||
self.set_dds_ref_clk()
|
self.set_dds_ref_clk()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_clock_division(&mut self) -> Result<u8, Error<E>> {
|
||||||
|
match self.config_register.get_configuration(CFGMask::DIV) {
|
||||||
|
0| 3 => Ok(4),
|
||||||
|
1 => Ok(1),
|
||||||
|
2 => Ok(2),
|
||||||
|
_ => Err(Error::ConfigRegisterError)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn set_clock_division(&mut self, division: u8) -> Result<(), Error<E>> {
|
pub fn set_clock_division(&mut self, division: u8) -> Result<(), Error<E>> {
|
||||||
match division {
|
match division {
|
||||||
1 => self.config_register.set_configurations(&mut [
|
1 => self.config_register.set_configurations(&mut [
|
||||||
|
|
Loading…
Reference in New Issue