stm32/f0: RTC clock helpers
Add three more RTC clock helper functions: - rcc_set_rtc_clock_source RTC on stm32/f0 can be clocked from the following three sources: LSI, LSE (32.768Hz), HSE/32. - rcc_enable_rtc_clock - rcc_disable_rtc_clock enable/disable clocking RTC module using selected clock source Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
This commit is contained in:
parent
d2540e5fc6
commit
43736cf03f
@ -509,6 +509,9 @@ void rcc_css_int_clear(void);
|
||||
int rcc_css_int_flag(void);
|
||||
void rcc_set_sysclk_source(enum rcc_osc clk);
|
||||
void rcc_set_usbclk_source(enum rcc_osc clk);
|
||||
void rcc_set_rtc_clock_source(enum rcc_osc clk);
|
||||
void rcc_enable_rtc_clock(void);
|
||||
void rcc_disable_rtc_clock(void);
|
||||
void rcc_set_pll_multiplication_factor(uint32_t mul);
|
||||
void rcc_set_ppre(uint32_t ppre);
|
||||
void rcc_set_hpre(uint32_t hpre);
|
||||
|
@ -438,6 +438,50 @@ void rcc_set_usbclk_source(enum rcc_osc clk)
|
||||
}
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/** @brief RCC Enable the RTC clock
|
||||
|
||||
*/
|
||||
|
||||
void rcc_enable_rtc_clock(void)
|
||||
{
|
||||
RCC_BDCR |= RCC_BDCR_RTCEN;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/** @brief RCC Disable the RTC clock
|
||||
|
||||
*/
|
||||
|
||||
void rcc_disable_rtc_clock(void)
|
||||
{
|
||||
RCC_BDCR &= ~RCC_BDCR_RTCEN;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/** @brief RCC Set the Source for the RTC clock
|
||||
|
||||
@param[in] clock_source ::rcc_osc. RTC clock source. Only HSE/32, LSE and LSI.
|
||||
*/
|
||||
|
||||
void rcc_set_rtc_clock_source(enum rcc_osc clk)
|
||||
{
|
||||
switch (clk) {
|
||||
case RCC_HSE:
|
||||
RCC_BDCR = (RCC_BDCR & ~RCC_BDCR_RTCSEL) | RCC_BDCR_RTCSEL_HSE;
|
||||
break;
|
||||
case RCC_LSE:
|
||||
RCC_BDCR = (RCC_BDCR & ~RCC_BDCR_RTCSEL) | RCC_BDCR_RTCSEL_LSE;
|
||||
break;
|
||||
case RCC_LSI:
|
||||
RCC_BDCR = (RCC_BDCR & ~RCC_BDCR_RTCSEL) | RCC_BDCR_RTCSEL_LSI;
|
||||
break;
|
||||
default:
|
||||
/* do nothing */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/** @brief RCC Set the PLL Multiplication Factor.
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user