mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-02 11:12:59 +00:00
In stm32 clock_control driver, Kconfig symbol CLOCK_STM32_PLL_PREDIV1 in stm32f3 series was set as conditional on the activation of some specific STM32F3 SoCs that are not supported yet in Zephyr. Remove this flag. In order not to loose a rather studious part of code, comment it out and set a TODO to specify how to re-enable it once it will be required. Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
89 lines
2.2 KiB
C
89 lines
2.2 KiB
C
/*
|
|
*
|
|
* Copyright (c) 2017 Linaro Limited.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
|
|
#include <soc.h>
|
|
#include <soc_registers.h>
|
|
#include <clock_control.h>
|
|
#include <misc/util.h>
|
|
#include <clock_control/stm32_clock_control.h>
|
|
#include "stm32_ll_clock.h"
|
|
|
|
|
|
#ifdef CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL
|
|
|
|
/**
|
|
* @brief fill in pll configuration structure
|
|
*/
|
|
void config_pll_init(LL_UTILS_PLLInitTypeDef *pllinit)
|
|
{
|
|
/*
|
|
* PLL MUL
|
|
* 2 -> LL_RCC_PLL_MUL_2 -> 0x00000000
|
|
* 3 -> LL_RCC_PLL_MUL_3 -> 0x00040000
|
|
* 4 -> LL_RCC_PLL_MUL_4 -> 0x00080000
|
|
* ...
|
|
* 16 -> LL_RCC_PLL_MUL_16 -> 0x00380000
|
|
*/
|
|
pllinit->PLLMul = ((CONFIG_CLOCK_STM32_PLL_MULTIPLIER - 2)
|
|
<< RCC_CFGR_PLLMUL_Pos);
|
|
#if defined(RCC_PLLSRC_PREDIV1_SUPPORT)
|
|
/* PREDIV support is a specific RCC configuration present on */
|
|
/* following SoCs: STM32F302XE, STM32F303xE and STM32F398xx */
|
|
/* cf Reference manual for more details */
|
|
#if defined(CONFIG_CLOCK_STM32_PLL_SRC_HSI)
|
|
pllinit->PLLDiv = LL_RCC_PLLSOURCE_HSI;
|
|
#else
|
|
/*
|
|
* PLL DIV
|
|
* 1 -> LL_RCC_PLLSOURCE_HSE_DIV_1 -> 0x00010000
|
|
* 2 -> LL_RCC_PLLSOURCE_HSE_DIV_2 -> 0x00010001
|
|
* 3 -> LL_RCC_PLLSOURCE_HSE_DIV_3 -> 0x00010002
|
|
* ...
|
|
* 16 -> LL_RCC_PLLSOURCE_HSE_DIV_16 -> 0x0001000F
|
|
*/
|
|
/*
|
|
* TODO: Enable this code and matching CONFIG symbol once one of
|
|
* the following SoC is introduced:
|
|
* STM32F02XE, STM32F303XE, STM32F398XX
|
|
* Kconfig symbol CLOCK_STM32_PLL_PREDIV1 should be set as
|
|
* conditional on the activation of one of these SoC.
|
|
* pllinit->PLLDiv = (RCC_CFGR_PLLSRC_HSE_PREDIV |
|
|
* (CONFIG_CLOCK_STM32_PLL_PREDIV1 - 1));
|
|
*/
|
|
#endif /* CONFIG_CLOCK_STM32_PLL_SRC_HSI */
|
|
#else
|
|
/*
|
|
* PLL Prediv
|
|
* 1 -> LL_RCC_PREDIV_DIV_1 -> 0x00000000
|
|
* 2 -> LL_RCC_PREDIV_DIV_2 -> 0x00000001
|
|
* 3 -> LL_RCC_PREDIV_DIV_3 -> 0x00000002
|
|
* ...
|
|
* 16 -> LL_RCC_PREDIV_DIV_16 -> 0x0000000F
|
|
*/
|
|
pllinit->Prediv = CONFIG_CLOCK_STM32_PLL_PREDIV - 1;
|
|
#endif /* RCC_PLLSRC_PREDIV1_SUPPORT */
|
|
}
|
|
|
|
#endif /* CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL */
|
|
|
|
/**
|
|
* @brief Activate default clocks
|
|
*/
|
|
void config_enable_default_clocks(void)
|
|
{
|
|
/* Nothing for now */
|
|
}
|
|
|
|
/**
|
|
* @brief Function kept for driver genericity
|
|
*/
|
|
void LL_RCC_MSI_Disable(void)
|
|
{
|
|
/* Do nothing */
|
|
}
|