Add more RCC related API functions and their prototypes.

This includes:
 - rcc_set_sysclk_source()
 - rcc_set_pll_multiplication_factor()
 - rcc_set_pll_source()
 - rcc_set_pllxtpre()
This commit is contained in:
Uwe Hermann 2009-07-22 03:25:14 +02:00
parent 0f0ef60378
commit 9fd3064cb2
2 changed files with 39 additions and 0 deletions

View File

@ -378,5 +378,9 @@ void rcc_osc_bypass_enable(osc_t osc);
void rcc_osc_bypass_disable(osc_t osc);
void rcc_enable_peripheral_clock(volatile u32 *reg, u32 peripheral_en);
void rcc_disable_peripheral_clock(volatile u32 *reg, u32 peripheral_en);
void rcc_set_sysclk_source(u32 clk);
void rcc_set_pll_multiplication_factor(u32 mul);
void rcc_set_pll_source(u32 pllsrc);
void rcc_set_pllxtpre(u32 pllxtpre);
#endif

View File

@ -234,3 +234,38 @@ void rcc_disable_peripheral_clock(volatile u32 *reg, u32 peripheral_en)
*reg &= ~peripheral_en;
}
void rcc_set_sysclk_source(u32 clk)
{
u32 reg32;
reg32 = RCC_CFGR;
reg32 &= ~((1 << 1) | (1 << 0));
RCC_CFGR = (reg32 | clk);
}
void rcc_set_pll_multiplication_factor(u32 mul)
{
u32 reg32;
reg32 = RCC_CFGR;
reg32 &= ~((1 << 21) | (1 << 20) | (1 << 19) | (1 << 18));
RCC_CFGR = (reg32 | (mul << 18));
}
void rcc_set_pll_source(u32 pllsrc)
{
u32 reg32;
reg32 = RCC_CFGR;
reg32 &= ~(1 << 16);
RCC_CFGR = (reg32 | (pllsrc << 16));
}
void rcc_set_pllxtpre(u32 pllxtpre)
{
u32 reg32;
reg32 = RCC_CFGR;
reg32 &= ~(1 << 17);
RCC_CFGR = (reg32 | (pllxtpre << 17));
}