66 .ahb_frequency = 84000000,
67 .apb1_frequency = 42000000,
68 .apb2_frequency = 84000000,
82 .ahb_frequency = 96000000,
83 .apb1_frequency = 48000000,
84 .apb2_frequency = 96000000
99 .ahb_frequency = 168000000,
100 .apb1_frequency = 42000000,
101 .apb2_frequency = 84000000,
116 .ahb_frequency = 180000000,
117 .apb1_frequency = 45000000,
118 .apb2_frequency = 90000000,
136 .ahb_frequency = 84000000,
137 .apb1_frequency = 42000000,
138 .apb2_frequency = 84000000,
152 .ahb_frequency = 96000000,
153 .apb1_frequency = 48000000,
154 .apb2_frequency = 96000000
169 .ahb_frequency = 168000000,
170 .apb1_frequency = 42000000,
171 .apb2_frequency = 84000000,
186 .ahb_frequency = 180000000,
187 .apb1_frequency = 45000000,
188 .apb2_frequency = 90000000,
206 .ahb_frequency = 84000000,
207 .apb1_frequency = 42000000,
208 .apb2_frequency = 84000000,
222 .ahb_frequency = 96000000,
223 .apb1_frequency = 48000000,
224 .apb2_frequency = 96000000
239 .ahb_frequency = 168000000,
240 .apb1_frequency = 42000000,
241 .apb2_frequency = 84000000,
256 .ahb_frequency = 180000000,
257 .apb1_frequency = 45000000,
258 .apb2_frequency = 90000000,
276 .ahb_frequency = 84000000,
277 .apb1_frequency = 42000000,
278 .apb2_frequency = 84000000,
292 .ahb_frequency = 96000000,
293 .apb1_frequency = 48000000,
294 .apb2_frequency = 96000000
309 .ahb_frequency = 168000000,
310 .apb1_frequency = 42000000,
311 .apb2_frequency = 84000000,
326 .ahb_frequency = 180000000,
327 .apb1_frequency = 45000000,
328 .apb2_frequency = 90000000,
346 .ahb_frequency = 84000000,
347 .apb1_frequency = 42000000,
348 .apb2_frequency = 84000000,
362 .ahb_frequency = 96000000,
363 .apb1_frequency = 48000000,
364 .apb2_frequency = 96000000
379 .ahb_frequency = 168000000,
380 .apb1_frequency = 42000000,
381 .apb2_frequency = 84000000,
396 .ahb_frequency = 180000000,
397 .apb1_frequency = 45000000,
398 .apb2_frequency = 90000000,
475 RCC_CIR &= ~RCC_CIR_PLLSAIRDYIE;
478 RCC_CIR &= ~RCC_CIR_PLLI2SRDYIE;
607 RCC_CR &= ~RCC_CR_PLLSAION;
610 RCC_CR &= ~RCC_CR_PLLI2SON;
678 reg32 &= ~((1 << 1) | (1 << 0));
696 reg32 &= ~((1 << 13) | (1 << 14) | (1 << 15));
705 reg32 &= ~((1 << 10) | (1 << 11) | (1 << 12));
714 reg32 &= ~((1 << 4) | (1 << 5) | (1 << 6) | (1 << 7));
723 reg32 &= ~((1 << 16) | (1 << 17) | (1 << 18) | (1 << 19) | (1 << 20));
724 RCC_CFGR = (reg32 | (rtcpre << 16));
void flash_icache_disable(void)
Disable the Instruction Cache.
void flash_icache_enable(void)
Enable the Instruction Cache.
void flash_dcache_disable(void)
Disable the data cache.
void flash_dcache_enable(void)
Enable the data cache.
void flash_set_ws(uint32_t ws)
Set the Number of Wait States.
#define FLASH_ACR_LATENCY_3WS
#define FLASH_ACR_LATENCY_5WS
#define FLASH_ACR_LATENCY_2WS
void pwr_set_vos_scale(enum pwr_vos_scale scale)
#define RCC_CFGR_HPRE_NODIV
#define RCC_CFGR_PPRE_DIV2
#define RCC_CFGR_PPRE_NODIV
#define RCC_CFGR_PPRE_DIV4
#define RCC_CFGR_HPRE_DIV_NONE
#define RCC_CFGR_PPRE_DIV_NONE
#define RCC_CFGR_PPRE_DIV_2
#define RCC_CFGR_PLLSRC_HSI_CLK
#define RCC_CFGR_PPRE1_MASK
#define RCC_CFGR_PPRE2_SHIFT
#define RCC_CFGR_PLLSRC_HSE_CLK
#define RCC_CFGR_PPRE2_MASK
#define RCC_CFGR_SWS_MASK
#define RCC_CFGR_SWS_SHIFT
#define RCC_CFGR_PPRE1_SHIFT
#define RCC_CIR_PLLI2SRDYIE
#define RCC_CIR_PLLSAIRDYF
#define RCC_CIR_PLLSAIRDYC
#define RCC_CIR_PLLI2SRDYC
#define RCC_CIR_PLLI2SRDYF
#define RCC_CIR_PLLSAIRDYIE
void rcc_periph_clock_enable(enum rcc_periph_clken clken)
Enable Peripheral Clock in running mode.
int rcc_osc_ready_int_flag(enum rcc_osc osc)
void rcc_clock_setup_hse_3v3(const struct rcc_clock_scale *clock)
Setup clocks with the HSE.
int rcc_css_int_flag(void)
void rcc_osc_ready_int_clear(enum rcc_osc osc)
void rcc_wait_for_osc_ready(enum rcc_osc osc)
Wait for Oscillator Ready.
void rcc_css_disable(void)
bool rcc_is_osc_ready(enum rcc_osc osc)
Is the given oscillator ready?
uint32_t rcc_get_spi_clk_freq(uint32_t spi)
Get the peripheral clock speed for the SPI device at base specified.
void rcc_set_sysclk_source(uint32_t clk)
void rcc_pllsai_postscalers(uint8_t q, uint8_t r)
Set the dedicated dividers after the PLLSAI configuration.
uint32_t rcc_apb2_frequency
void rcc_set_pll_source(uint32_t pllsrc)
uint32_t rcc_get_timer_clk_freq(uint32_t timer)
Get the peripheral clock speed for the Timer at base specified.
uint32_t rcc_system_clock_source(void)
const struct rcc_clock_scale rcc_hse_8mhz_3v3[RCC_CLOCK_3V3_END]
void rcc_plli2s_config(uint16_t n, uint8_t r)
Set the dividers for the PLLI2S clock outputs.
uint32_t rcc_get_usart_clk_freq(uint32_t usart)
Get the peripheral clock speed for the USART at base specified.
const struct rcc_clock_scale rcc_hsi_configs[RCC_CLOCK_3V3_END]
void rcc_clock_setup_pll(const struct rcc_clock_scale *clock)
Setup clocks to run from PLL.
const struct rcc_clock_scale rcc_hse_12mhz_3v3[RCC_CLOCK_3V3_END]
void rcc_set_rtcpre(uint32_t rtcpre)
const struct rcc_clock_scale rcc_hse_25mhz_3v3[RCC_CLOCK_3V3_END]
void rcc_osc_ready_int_enable(enum rcc_osc osc)
void rcc_osc_ready_int_disable(enum rcc_osc osc)
void rcc_osc_on(enum rcc_osc osc)
uint32_t rcc_ahb_frequency
void rcc_osc_off(enum rcc_osc osc)
void rcc_set_main_pll_hse(uint32_t pllm, uint32_t plln, uint32_t pllp, uint32_t pllq, uint32_t pllr)
Reconfigures the main PLL for a HSE source.
uint32_t rcc_get_i2c_clk_freq(uint32_t i2c)
Get the peripheral clock speed for the I2C device at base specified.
uint32_t rcc_apb1_frequency
void rcc_wait_for_sysclk_status(enum rcc_osc osc)
void rcc_set_ppre1(uint32_t ppre1)
void rcc_css_int_clear(void)
void rcc_pllsai_config(uint16_t n, uint16_t p, uint16_t q, uint16_t r)
Set the dividers for the PLLSAI clock outputs divider p is only available on F4x9 parts,...
void rcc_set_ppre2(uint32_t ppre2)
void rcc_set_main_pll_hsi(uint32_t pllm, uint32_t plln, uint32_t pllp, uint32_t pllq, uint32_t pllr)
Reconfigures the main PLL for a HSI source.
void rcc_css_enable(void)
void rcc_set_hpre(uint32_t hpre)
const struct rcc_clock_scale rcc_hse_16mhz_3v3[RCC_CLOCK_3V3_END]
#define RCC_PLLCFGR_PLLN_SHIFT
#define RCC_PLLCFGR_PLLR_MASK
#define RCC_PLLCFGR_PLLP_MASK
#define RCC_PLLCFGR_PLLN_MASK
#define RCC_PLLCFGR_PLLSRC
#define RCC_PLLCFGR_PLLR_SHIFT
#define RCC_PLLCFGR_PLLQ_SHIFT
#define RCC_PLLCFGR_PLLQ_MASK
#define RCC_PLLCFGR_PLLM_SHIFT
#define RCC_PLLCFGR_PLLP_SHIFT
#define RCC_PLLCFGR_PLLM_MASK
#define RCC_PLLSAICFGR_PLLSAIR_SHIFT
#define RCC_PLLI2SCFGR_PLLI2SN_SHIFT
#define RCC_PLLSAICFGR_PLLSAIQ_SHIFT
#define RCC_PLLSAICFGR_PLLSAIQ_MASK
#define RCC_DCKCFGR_PLLSAIDIVR_MASK
#define RCC_PLLSAICFGR_PLLSAIR_MASK
#define RCC_PLLI2SCFGR_PLLI2SR_SHIFT
#define RCC_PLLSAICFGR_PLLSAIP_SHIFT
#define RCC_PLLSAICFGR_PLLSAIP_MASK
#define RCC_PLLSAICFGR_PLLSAIN_SHIFT
#define RCC_PLLSAICFGR_PLLSAIN_MASK
#define RCC_DCKCFGR_PLLSAIDIVQ_MASK
#define RCC_DCKCFGR_PLLSAIDIVR_SHIFT
#define RCC_PLLI2SCFGR_PLLI2SN_MASK
#define RCC_PLLI2SCFGR_PLLI2SR_MASK
#define RCC_DCKCFGR_PLLSAIDIVQ_SHIFT
#define RCC_CIR
Clock interrupt register.
#define RCC_CR
Clock control register.
#define RCC_PLLSAICFGR
PLLSAI configuration register.
#define RCC_CSR
Clock control and status register.
#define RCC_PLLI2SCFGR
PLLI2S configuration register.
#define RCC_PLLCFGR
PLL Configuration register.
#define RCC_CFGR
Clock Configuration register.
#define RCC_BDCR
Backup Domain control register.
#define RCC_DCKCFGR
Dedicated clocks configuration register.
enum pwr_vos_scale voltage_scale