va108xx_hal/clock.rs
1//! # API for clock related functionality
2//!
3//! This also includes functionality to enable the peripheral clocks
4pub use vorago_shared_hal::gpio::FilterClockSelect;
5pub use vorago_shared_hal::sysconfig::{disable_peripheral_clock, enable_peripheral_clock};
6
7pub fn set_clk_div_register(syscfg: &mut va108xx::Sysconfig, clk_sel: FilterClockSelect, div: u32) {
8 match clk_sel {
9 FilterClockSelect::SysClk => (),
10 FilterClockSelect::Clk1 => {
11 syscfg.ioconfig_clkdiv1().write(|w| unsafe { w.bits(div) });
12 }
13 FilterClockSelect::Clk2 => {
14 syscfg.ioconfig_clkdiv2().write(|w| unsafe { w.bits(div) });
15 }
16 FilterClockSelect::Clk3 => {
17 syscfg.ioconfig_clkdiv3().write(|w| unsafe { w.bits(div) });
18 }
19 FilterClockSelect::Clk4 => {
20 syscfg.ioconfig_clkdiv4().write(|w| unsafe { w.bits(div) });
21 }
22 FilterClockSelect::Clk5 => {
23 syscfg.ioconfig_clkdiv5().write(|w| unsafe { w.bits(div) });
24 }
25 FilterClockSelect::Clk6 => {
26 syscfg.ioconfig_clkdiv6().write(|w| unsafe { w.bits(div) });
27 }
28 FilterClockSelect::Clk7 => {
29 syscfg.ioconfig_clkdiv7().write(|w| unsafe { w.bits(div) });
30 }
31 }
32}