stm32: rcc: extract osc_bypass functions
rcc_osc_bypass_enable and rcc_osc_bypass_disable have been copy/pasted around for the last time! There's a compile bit to check for L0/L1, but otherwise this is just code duplication for no gain.
This commit is contained in:
@@ -50,6 +50,8 @@ void rcc_periph_reset_hold(enum rcc_periph_rst rst);
|
|||||||
void rcc_periph_reset_release(enum rcc_periph_rst rst);
|
void rcc_periph_reset_release(enum rcc_periph_rst rst);
|
||||||
|
|
||||||
void rcc_set_mco(uint32_t mcosrc);
|
void rcc_set_mco(uint32_t mcosrc);
|
||||||
|
void rcc_osc_bypass_enable(enum rcc_osc osc);
|
||||||
|
void rcc_osc_bypass_disable(enum rcc_osc osc);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is the given oscillator ready?
|
* Is the given oscillator ready?
|
||||||
|
|||||||
@@ -509,8 +509,6 @@ void rcc_osc_ready_int_disable(enum rcc_osc osc);
|
|||||||
int rcc_osc_ready_int_flag(enum rcc_osc osc);
|
int rcc_osc_ready_int_flag(enum rcc_osc osc);
|
||||||
void rcc_osc_on(enum rcc_osc osc);
|
void rcc_osc_on(enum rcc_osc osc);
|
||||||
void rcc_osc_off(enum rcc_osc osc);
|
void rcc_osc_off(enum rcc_osc osc);
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc);
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc);
|
|
||||||
void rcc_css_enable(void);
|
void rcc_css_enable(void);
|
||||||
void rcc_css_disable(void);
|
void rcc_css_disable(void);
|
||||||
void rcc_css_int_clear(void);
|
void rcc_css_int_clear(void);
|
||||||
|
|||||||
@@ -691,8 +691,6 @@ void rcc_osc_on(enum rcc_osc osc);
|
|||||||
void rcc_osc_off(enum rcc_osc osc);
|
void rcc_osc_off(enum rcc_osc osc);
|
||||||
void rcc_css_enable(void);
|
void rcc_css_enable(void);
|
||||||
void rcc_css_disable(void);
|
void rcc_css_disable(void);
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc);
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc);
|
|
||||||
void rcc_set_sysclk_source(uint32_t clk);
|
void rcc_set_sysclk_source(uint32_t clk);
|
||||||
void rcc_set_pll_multiplication_factor(uint32_t mul);
|
void rcc_set_pll_multiplication_factor(uint32_t mul);
|
||||||
void rcc_set_pll2_multiplication_factor(uint32_t mul);
|
void rcc_set_pll2_multiplication_factor(uint32_t mul);
|
||||||
|
|||||||
@@ -745,8 +745,6 @@ void rcc_osc_on(enum rcc_osc osc);
|
|||||||
void rcc_osc_off(enum rcc_osc osc);
|
void rcc_osc_off(enum rcc_osc osc);
|
||||||
void rcc_css_enable(void);
|
void rcc_css_enable(void);
|
||||||
void rcc_css_disable(void);
|
void rcc_css_disable(void);
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc);
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc);
|
|
||||||
void rcc_set_sysclk_source(uint32_t clk);
|
void rcc_set_sysclk_source(uint32_t clk);
|
||||||
void rcc_set_pll_source(uint32_t pllsrc);
|
void rcc_set_pll_source(uint32_t pllsrc);
|
||||||
void rcc_set_ppre2(uint32_t ppre2);
|
void rcc_set_ppre2(uint32_t ppre2);
|
||||||
|
|||||||
@@ -596,8 +596,6 @@ void rcc_osc_on(enum rcc_osc osc);
|
|||||||
void rcc_osc_off(enum rcc_osc osc);
|
void rcc_osc_off(enum rcc_osc osc);
|
||||||
void rcc_css_enable(void);
|
void rcc_css_enable(void);
|
||||||
void rcc_css_disable(void);
|
void rcc_css_disable(void);
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc);
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc);
|
|
||||||
void rcc_set_sysclk_source(uint32_t clk);
|
void rcc_set_sysclk_source(uint32_t clk);
|
||||||
void rcc_set_pll_source(uint32_t pllsrc);
|
void rcc_set_pll_source(uint32_t pllsrc);
|
||||||
void rcc_set_ppre2(uint32_t ppre2);
|
void rcc_set_ppre2(uint32_t ppre2);
|
||||||
|
|||||||
@@ -946,8 +946,6 @@ void rcc_osc_on(enum rcc_osc osc);
|
|||||||
void rcc_osc_off(enum rcc_osc osc);
|
void rcc_osc_off(enum rcc_osc osc);
|
||||||
void rcc_css_enable(void);
|
void rcc_css_enable(void);
|
||||||
void rcc_css_disable(void);
|
void rcc_css_disable(void);
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc);
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc);
|
|
||||||
void rcc_pllsai_config(uint16_t n, uint16_t p, uint16_t q, uint16_t r);
|
void rcc_pllsai_config(uint16_t n, uint16_t p, uint16_t q, uint16_t r);
|
||||||
void rcc_pllsai_postscalers(uint8_t q, uint8_t r);
|
void rcc_pllsai_postscalers(uint8_t q, uint8_t r);
|
||||||
void rcc_set_sysclk_source(uint32_t clk);
|
void rcc_set_sysclk_source(uint32_t clk);
|
||||||
|
|||||||
@@ -921,8 +921,6 @@ void rcc_osc_on(enum rcc_osc osc);
|
|||||||
void rcc_osc_off(enum rcc_osc osc);
|
void rcc_osc_off(enum rcc_osc osc);
|
||||||
void rcc_css_enable(void);
|
void rcc_css_enable(void);
|
||||||
void rcc_css_disable(void);
|
void rcc_css_disable(void);
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc);
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc);
|
|
||||||
void rcc_set_sysclk_source(uint32_t clk);
|
void rcc_set_sysclk_source(uint32_t clk);
|
||||||
void rcc_set_pll_source(uint32_t pllsrc);
|
void rcc_set_pll_source(uint32_t pllsrc);
|
||||||
void rcc_set_ppre2(uint32_t ppre2);
|
void rcc_set_ppre2(uint32_t ppre2);
|
||||||
|
|||||||
@@ -660,8 +660,6 @@ BEGIN_DECLS
|
|||||||
|
|
||||||
void rcc_osc_on(enum rcc_osc osc);
|
void rcc_osc_on(enum rcc_osc osc);
|
||||||
void rcc_osc_off(enum rcc_osc osc);
|
void rcc_osc_off(enum rcc_osc osc);
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc);
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc);
|
|
||||||
void rcc_osc_ready_int_clear(enum rcc_osc osc);
|
void rcc_osc_ready_int_clear(enum rcc_osc osc);
|
||||||
void rcc_osc_ready_int_enable(enum rcc_osc osc);
|
void rcc_osc_ready_int_enable(enum rcc_osc osc);
|
||||||
void rcc_osc_ready_int_disable(enum rcc_osc osc);
|
void rcc_osc_ready_int_disable(enum rcc_osc osc);
|
||||||
|
|||||||
@@ -611,8 +611,6 @@ void rcc_osc_on(enum rcc_osc osc);
|
|||||||
void rcc_osc_off(enum rcc_osc osc);
|
void rcc_osc_off(enum rcc_osc osc);
|
||||||
void rcc_css_enable(void);
|
void rcc_css_enable(void);
|
||||||
void rcc_css_disable(void);
|
void rcc_css_disable(void);
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc);
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc);
|
|
||||||
void rcc_set_msi_range(uint32_t range);
|
void rcc_set_msi_range(uint32_t range);
|
||||||
void rcc_set_sysclk_source(uint32_t clk);
|
void rcc_set_sysclk_source(uint32_t clk);
|
||||||
void rcc_set_pll_configuration(uint32_t source, uint32_t multiplier,
|
void rcc_set_pll_configuration(uint32_t source, uint32_t multiplier,
|
||||||
|
|||||||
@@ -938,8 +938,6 @@ void rcc_osc_on(enum rcc_osc osc);
|
|||||||
void rcc_osc_off(enum rcc_osc osc);
|
void rcc_osc_off(enum rcc_osc osc);
|
||||||
void rcc_css_enable(void);
|
void rcc_css_enable(void);
|
||||||
void rcc_css_disable(void);
|
void rcc_css_disable(void);
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc);
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc);
|
|
||||||
void rcc_set_sysclk_source(uint32_t clk);
|
void rcc_set_sysclk_source(uint32_t clk);
|
||||||
void rcc_set_pll_source(uint32_t pllsrc);
|
void rcc_set_pll_source(uint32_t pllsrc);
|
||||||
void rcc_set_ppre2(uint32_t ppre2);
|
void rcc_set_ppre2(uint32_t ppre2);
|
||||||
|
|||||||
@@ -197,6 +197,66 @@ void rcc_set_mco(uint32_t mcosrc)
|
|||||||
(mcosrc << RCC_CFGR_MCO_SHIFT);
|
(mcosrc << RCC_CFGR_MCO_SHIFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* RCC Enable Bypass.
|
||||||
|
* Enable an external clock to bypass the internal clock (high speed and low
|
||||||
|
* speed clocks only). The external clock must be enabled (see @ref rcc_osc_on)
|
||||||
|
* and the internal clock must be disabled (see @ref rcc_osc_off) for this to
|
||||||
|
* have effect.
|
||||||
|
* @note The LSE clock is in the backup domain and cannot be bypassed until the
|
||||||
|
* backup domain write protection has been removed (see @ref
|
||||||
|
* pwr_disable_backup_domain_write_protect).
|
||||||
|
* @param[in] osc Oscillator ID. Only HSE and LSE have effect.
|
||||||
|
*/
|
||||||
|
void rcc_osc_bypass_enable(enum rcc_osc osc)
|
||||||
|
{
|
||||||
|
switch (osc) {
|
||||||
|
case RCC_HSE:
|
||||||
|
RCC_CR |= RCC_CR_HSEBYP;
|
||||||
|
break;
|
||||||
|
case RCC_LSE:
|
||||||
|
#ifdef RCC_CSR_LSEBYP
|
||||||
|
RCC_CSR |= RCC_CSR_LSEBYP;
|
||||||
|
#else
|
||||||
|
RCC_BDCR |= RCC_BDCR_LSEBYP;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
/* Do nothing, only HSE/LSE allowed here. */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* RCC Disable Bypass.
|
||||||
|
* Re-enable the internal clock (high speed and low speed clocks only). The
|
||||||
|
* internal clock must be disabled (see @ref rcc_osc_off) for this to have
|
||||||
|
* effect.
|
||||||
|
* @note The LSE clock is in the backup domain and cannot have bypass removed
|
||||||
|
* until the backup domain write protection has been removed (see @ref
|
||||||
|
* pwr_disable_backup_domain_write_protect) or the backup domain has been reset
|
||||||
|
* (see @ref rcc_backupdomain_reset).
|
||||||
|
* @param[in] osc Oscillator ID. Only HSE and LSE have effect.
|
||||||
|
*/
|
||||||
|
void rcc_osc_bypass_disable(enum rcc_osc osc)
|
||||||
|
{
|
||||||
|
switch (osc) {
|
||||||
|
case RCC_HSE:
|
||||||
|
RCC_CR &= ~RCC_CR_HSEBYP;
|
||||||
|
break;
|
||||||
|
case RCC_LSE:
|
||||||
|
#ifdef RCC_CSR_LSEBYP
|
||||||
|
RCC_CSR &= ~RCC_CSR_LSEBYP;
|
||||||
|
#else
|
||||||
|
RCC_BDCR &= ~RCC_BDCR_LSEBYP;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
/* Do nothing, only HSE/LSE allowed here. */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**@}*/
|
/**@}*/
|
||||||
|
|
||||||
#undef _RCC_REG
|
#undef _RCC_REG
|
||||||
|
|||||||
@@ -323,66 +323,6 @@ void rcc_css_disable(void)
|
|||||||
RCC_CR &= ~RCC_CR_CSSON;
|
RCC_CR &= ~RCC_CR_CSSON;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/** @brief RCC Enable Bypass.
|
|
||||||
*
|
|
||||||
* Enable an external clock to bypass the internal clock (high speed and low
|
|
||||||
* speed clocks only). The external clock must be enabled (see @ref rcc_osc_on)
|
|
||||||
* and the internal clock must be disabled (see @ref rcc_osc_off) for this to
|
|
||||||
* have effect.
|
|
||||||
*
|
|
||||||
* @param[in] osc enum ::osc_t. Oscillator ID. Only HSE and LSE have effect.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR |= RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR |= RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_HSI48:
|
|
||||||
case RCC_HSI14:
|
|
||||||
case RCC_HSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
case RCC_PLL:
|
|
||||||
/* Do nothing */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/** @brief RCC Disable Bypass.
|
|
||||||
*
|
|
||||||
* Re-enable the internal clock (high speed and low speed clocks only). The
|
|
||||||
* internal clock must be disabled (see @ref rcc_osc_off) for this to have
|
|
||||||
* effect.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @param[in] osc enum ::osc_t. Oscillator ID. Only HSE and LSE have effect.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR &= ~RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR &= ~RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_HSI48:
|
|
||||||
case RCC_HSI14:
|
|
||||||
case RCC_PLL:
|
|
||||||
case RCC_HSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
/* Do nothing */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/** @brief RCC Set the Source for the System Clock.
|
/** @brief RCC Set the Source for the System Clock.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -346,72 +346,6 @@ void rcc_css_disable(void)
|
|||||||
RCC_CR &= ~RCC_CR_CSSON;
|
RCC_CR &= ~RCC_CR_CSSON;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/** @brief RCC Enable Bypass.
|
|
||||||
|
|
||||||
Enable an external clock to bypass the internal clock (high speed and low speed
|
|
||||||
clocks only). The external clock must be enabled (see @ref rcc_osc_on) and the
|
|
||||||
internal clock must be disabled (see @ref rcc_osc_off) for this to have effect.
|
|
||||||
|
|
||||||
@note The LSE clock is in the backup domain and cannot be bypassed until the
|
|
||||||
backup domain write protection has been removed (see @ref
|
|
||||||
pwr_disable_backup_domain_write_protect).
|
|
||||||
|
|
||||||
@param[in] osc enum ::osc_t. Oscillator ID. Only HSE and LSE have effect.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR |= RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR |= RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_PLL:
|
|
||||||
case RCC_PLL2:
|
|
||||||
case RCC_PLL3:
|
|
||||||
case RCC_HSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
|
||||||
/** @brief RCC Disable Bypass.
|
|
||||||
|
|
||||||
Re-enable the internal clock (high speed and low speed clocks only). The
|
|
||||||
internal clock must be disabled (see @ref rcc_osc_off) for this to have effect.
|
|
||||||
|
|
||||||
@note The LSE clock is in the backup domain and cannot have bypass removed
|
|
||||||
until the backup domain write protection has been removed (see @ref
|
|
||||||
pwr_disable_backup_domain_write_protect) or the backup domain has been reset
|
|
||||||
(see @ref rcc_backupdomain_reset).
|
|
||||||
|
|
||||||
@param[in] osc enum ::osc_t. Oscillator ID. Only HSE and LSE have effect.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR &= ~RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR &= ~RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_PLL:
|
|
||||||
case RCC_PLL2:
|
|
||||||
case RCC_PLL3:
|
|
||||||
case RCC_HSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/** @brief RCC Set the Source for the System Clock.
|
/** @brief RCC Set the Source for the System Clock.
|
||||||
|
|
||||||
|
|||||||
@@ -255,40 +255,6 @@ void rcc_css_disable(void)
|
|||||||
RCC_CR &= ~RCC_CR_CSSON;
|
RCC_CR &= ~RCC_CR_CSSON;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR |= RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR |= RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_PLL:
|
|
||||||
case RCC_HSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR &= ~RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR &= ~RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_PLL:
|
|
||||||
case RCC_HSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void rcc_set_sysclk_source(uint32_t clk)
|
void rcc_set_sysclk_source(uint32_t clk)
|
||||||
{
|
{
|
||||||
uint32_t reg32;
|
uint32_t reg32;
|
||||||
|
|||||||
@@ -277,40 +277,6 @@ void rcc_css_disable(void)
|
|||||||
RCC_CR &= ~RCC_CR_CSSON;
|
RCC_CR &= ~RCC_CR_CSSON;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR |= RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR |= RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_PLL:
|
|
||||||
case RCC_HSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR &= ~RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR &= ~RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_PLL:
|
|
||||||
case RCC_HSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void rcc_set_sysclk_source(uint32_t clk)
|
void rcc_set_sysclk_source(uint32_t clk)
|
||||||
{
|
{
|
||||||
uint32_t reg32;
|
uint32_t reg32;
|
||||||
|
|||||||
@@ -532,37 +532,6 @@ void rcc_css_disable(void)
|
|||||||
RCC_CR &= ~RCC_CR_CSSON;
|
RCC_CR &= ~RCC_CR_CSSON;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR |= RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR |= RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR &= ~RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR &= ~RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the dividers for the PLLSAI clock outputs
|
* Set the dividers for the PLLSAI clock outputs
|
||||||
* divider p is only available on F4x9 parts, pass 0 for other parts.
|
* divider p is only available on F4x9 parts, pass 0 for other parts.
|
||||||
|
|||||||
@@ -212,42 +212,6 @@ void rcc_css_disable(void)
|
|||||||
RCC_CR &= ~RCC_CR_CSSON;
|
RCC_CR &= ~RCC_CR_CSSON;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR |= RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR |= RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_PLL:
|
|
||||||
case RCC_HSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR &= ~RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR &= ~RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_PLL:
|
|
||||||
case RCC_HSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void rcc_set_sysclk_source(uint32_t clk)
|
void rcc_set_sysclk_source(uint32_t clk)
|
||||||
{
|
{
|
||||||
uint32_t reg32;
|
uint32_t reg32;
|
||||||
|
|||||||
@@ -91,37 +91,6 @@ void rcc_osc_off(enum rcc_osc osc)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO easy target for shared code */
|
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR |= RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_CSR |= RCC_CSR_LSEBYP;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TODO easy target for shared code */
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR &= ~RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_CSR &= ~RCC_CSR_LSEBYP;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/** @brief RCC Clear the Oscillator Ready Interrupt Flag
|
/** @brief RCC Clear the Oscillator Ready Interrupt Flag
|
||||||
|
|||||||
@@ -335,42 +335,6 @@ void rcc_css_disable(void)
|
|||||||
RCC_CR &= ~RCC_CR_CSSON;
|
RCC_CR &= ~RCC_CR_CSSON;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR |= RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_CSR |= RCC_CSR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_PLL:
|
|
||||||
case RCC_HSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
case RCC_MSI:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR &= ~RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_CSR &= ~RCC_CSR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_PLL:
|
|
||||||
case RCC_HSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
case RCC_MSI:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the range of the MSI oscillator
|
* Set the range of the MSI oscillator
|
||||||
* @param range desired range @ref rcc_icscr_msirange
|
* @param range desired range @ref rcc_icscr_msirange
|
||||||
|
|||||||
@@ -258,42 +258,6 @@ void rcc_css_disable(void)
|
|||||||
RCC_CR &= ~RCC_CR_CSSON;
|
RCC_CR &= ~RCC_CR_CSSON;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rcc_osc_bypass_enable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR |= RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR |= RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_PLL:
|
|
||||||
case RCC_HSI16:
|
|
||||||
case RCC_MSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void rcc_osc_bypass_disable(enum rcc_osc osc)
|
|
||||||
{
|
|
||||||
switch (osc) {
|
|
||||||
case RCC_HSE:
|
|
||||||
RCC_CR &= ~RCC_CR_HSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_LSE:
|
|
||||||
RCC_BDCR &= ~RCC_BDCR_LSEBYP;
|
|
||||||
break;
|
|
||||||
case RCC_PLL:
|
|
||||||
case RCC_HSI16:
|
|
||||||
case RCC_MSI:
|
|
||||||
case RCC_LSI:
|
|
||||||
/* Do nothing, only HSE/LSE allowed here. */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void rcc_set_sysclk_source(uint32_t clk)
|
void rcc_set_sysclk_source(uint32_t clk)
|
||||||
{
|
{
|
||||||
uint32_t reg32;
|
uint32_t reg32;
|
||||||
|
|||||||
Reference in New Issue
Block a user