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}