mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-04 17:04:19 +00:00
RCC device could be common to various STM32 series. Until now, PLL handling code was set in series specific files, even if it was driving the same device than another series. Minimize code duplication by factorizing code between series when possible. With this change, some series get additional features by getting access to code developed for other series. Additionally, while renaming the files, remove the non informative 'x' to minimize file name length Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
46 lines
1.0 KiB
C
46 lines
1.0 KiB
C
/*
|
|
*
|
|
* Copyright (c) 2018 Ilya Tagunov
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
|
|
#include <soc.h>
|
|
#include <clock_control.h>
|
|
#include <misc/util.h>
|
|
#include <clock_control/stm32_clock_control.h>
|
|
#include "clock_stm32_ll_common.h"
|
|
|
|
|
|
#ifdef CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL
|
|
|
|
/* Macros to fill up multiplication and division factors values */
|
|
#define z_pll_mul(v) LL_RCC_PLL_MUL_ ## v
|
|
#define pll_mul(v) z_pll_mul(v)
|
|
|
|
#define z_pll_div(v) LL_RCC_PLL_DIV_ ## v
|
|
#define pll_div(v) z_pll_div(v)
|
|
|
|
/**
|
|
* @brief Fill PLL configuration structure
|
|
*/
|
|
void config_pll_init(LL_UTILS_PLLInitTypeDef *pllinit)
|
|
{
|
|
pllinit->PLLMul = pll_mul(CONFIG_CLOCK_STM32_PLL_MULTIPLIER);
|
|
pllinit->PLLDiv = pll_div(CONFIG_CLOCK_STM32_PLL_DIVISOR);
|
|
}
|
|
|
|
#endif /* CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL */
|
|
|
|
/**
|
|
* @brief Activate default clocks
|
|
*/
|
|
void config_enable_default_clocks(void)
|
|
{
|
|
#if defined(CONFIG_EXTI_STM32) || defined(CONFIG_USB_DC_STM32)
|
|
/* Enable System Configuration Controller clock. */
|
|
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SYSCFG);
|
|
#endif
|
|
}
|