use crate::{
clock::ll::{ClockTree, SpiFunctionClockConfig, SpiInstance},
peripherals::HP_SYS_CLKRST,
};
impl SpiInstance {
pub(crate) fn enable_function_clock_impl(self, _clocks: &mut ClockTree, _enable: bool) {
}
pub(crate) fn configure_function_clock_impl(
self,
_clocks: &mut ClockTree,
_old_config: Option<SpiFunctionClockConfig>,
new_config: SpiFunctionClockConfig,
) {
let source = match new_config {
SpiFunctionClockConfig::Xtal => 0,
SpiFunctionClockConfig::RcFast => 1,
SpiFunctionClockConfig::Bbpll => 2,
};
let div_num = match new_config {
SpiFunctionClockConfig::Xtal => 0,
SpiFunctionClockConfig::RcFast => 0,
SpiFunctionClockConfig::Bbpll => 2,
};
match self {
SpiInstance::Spi2 => {
HP_SYS_CLKRST::regs().gpspi2_ctrl0().modify(|_, w| unsafe {
w.clk_src_sel().bits(source);
w.hs_clk_div_num().bits(div_num)
});
}
SpiInstance::Spi3 => {
HP_SYS_CLKRST::regs().gpspi3_ctrl0().modify(|_, w| unsafe {
w.clk_src_sel().bits(source);
w.hs_clk_div_num().bits(div_num)
});
}
}
}
}