stm32:l4: rcc: Add RTC clock functions
This commit is contained in:
parent
2c1823f7bb
commit
b8424263e8
|
@ -964,6 +964,10 @@ void rcc_set_msi_range(uint32_t msi_range);
|
|||
void rcc_set_msi_range_standby(uint32_t msi_range);
|
||||
void rcc_pll_output_enable(uint32_t pllout);
|
||||
void rcc_set_clock48_source(uint32_t clksel);
|
||||
void rcc_clock_setup_pll(const struct rcc_clock_scale *clock);
|
||||
void rcc_enable_rtc_clock(void);
|
||||
void rcc_disable_rtc_clock(void);
|
||||
void rcc_set_rtc_clock_source(enum rcc_osc clk);
|
||||
|
||||
END_DECLS
|
||||
|
||||
|
|
|
@ -398,4 +398,40 @@ void rcc_set_clock48_source(uint32_t clksel)
|
|||
RCC_CCIPR |= (clksel << RCC_CCIPR_CLK48SEL_SHIFT);
|
||||
}
|
||||
|
||||
|
||||
/** Enable the RTC clock */
|
||||
void rcc_enable_rtc_clock(void)
|
||||
{
|
||||
RCC_BDCR |= RCC_BDCR_RTCEN;
|
||||
}
|
||||
|
||||
/** Disable the RTC clock */
|
||||
void rcc_disable_rtc_clock(void)
|
||||
{
|
||||
RCC_BDCR &= ~RCC_BDCR_RTCEN;
|
||||
}
|
||||
|
||||
/** Set the source for the RTC clock
|
||||
* @param[in] clk ::rcc_osc. RTC clock source. Only HSE/32, LSE and LSI.
|
||||
*/
|
||||
void rcc_set_rtc_clock_source(enum rcc_osc clk)
|
||||
{
|
||||
RCC_BDCR &= ~(RCC_BDCR_RTCSEL_MASK << RCC_BDCR_RTCSEL_SHIFT);
|
||||
|
||||
switch (clk) {
|
||||
case RCC_HSE:
|
||||
RCC_BDCR |= (RCC_BDCR_RTCSEL_HSEDIV32 << RCC_BDCR_RTCSEL_SHIFT);
|
||||
break;
|
||||
case RCC_LSE:
|
||||
RCC_BDCR |= (RCC_BDCR_RTCSEL_LSE << RCC_BDCR_RTCSEL_SHIFT);
|
||||
break;
|
||||
case RCC_LSI:
|
||||
RCC_BDCR |= (RCC_BDCR_RTCSEL_LSI << RCC_BDCR_RTCSEL_SHIFT);
|
||||
break;
|
||||
default:
|
||||
/* none selected */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**@}*/
|
||||
|
|
Loading…
Reference in New Issue