tests/drivers/clock_control: stm32_common: Test HCLCK instead of SYSCLK
Rework test_*_freq to test HCLK freq instead of SYSCLK one, as it is not correct to compare CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC with SYSCLK. Additionally, add a test to verify use of AHB prescaler. Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
This commit is contained in:
parent
f6c665bac3
commit
531c484958
3 changed files with 48 additions and 7 deletions
|
@ -0,0 +1,30 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2022 STMicroelectronics
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Warning: This overlay performs configuration from clean sheet.
|
||||||
|
* It is assumed that it is applied after clear_clocks.overlay file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
&clk_hsi {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&pll {
|
||||||
|
div-m = <8>;
|
||||||
|
mul-n = <200>;
|
||||||
|
div-p = <4>;
|
||||||
|
clocks = <&clk_hsi>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&rcc {
|
||||||
|
clocks = <&pll>;
|
||||||
|
ahb-prescaler = <2>;
|
||||||
|
clock-frequency = <DT_FREQ_M(50)>; /* Pll Output (100) / AHB prescaler */
|
||||||
|
apb1-prescaler = <2>;
|
||||||
|
apb2-prescaler = <2>;
|
||||||
|
};
|
|
@ -8,19 +8,27 @@
|
||||||
#include <soc.h>
|
#include <soc.h>
|
||||||
#include <drivers/clock_control.h>
|
#include <drivers/clock_control.h>
|
||||||
#include <drivers/clock_control/stm32_clock_control.h>
|
#include <drivers/clock_control/stm32_clock_control.h>
|
||||||
|
#include <stm32_ll_rcc.h>
|
||||||
#include <logging/log.h>
|
#include <logging/log.h>
|
||||||
LOG_MODULE_REGISTER(test);
|
LOG_MODULE_REGISTER(test);
|
||||||
|
|
||||||
|
#if defined(CONFIG_SOC_SERIES_STM32WBX) || \
|
||||||
|
defined(CONFIG_SOC_SERIES_STM32WLX)
|
||||||
|
#define CALC_HCLK_FREQ __LL_RCC_CALC_HCLK1_FREQ
|
||||||
|
#else
|
||||||
|
#define CALC_HCLK_FREQ __LL_RCC_CALC_HCLK_FREQ
|
||||||
|
#endif
|
||||||
|
|
||||||
static void test_sysclk_freq(void)
|
static void test_hclk_freq(void)
|
||||||
{
|
{
|
||||||
uint32_t soc_sys_clk_freq;
|
uint32_t soc_hclk_freq;
|
||||||
|
|
||||||
soc_sys_clk_freq = HAL_RCC_GetSysClockFreq();
|
soc_hclk_freq = CALC_HCLK_FREQ(HAL_RCC_GetSysClockFreq(),
|
||||||
|
LL_RCC_GetAHBPrescaler());
|
||||||
|
|
||||||
zassert_equal(CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC, soc_sys_clk_freq,
|
zassert_equal(CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC, soc_hclk_freq,
|
||||||
"Expected sysclockfreq: %d. Actual sysclockfreq: %d",
|
"Expected hclck_freq: %d. Actual hclck_freq: %d",
|
||||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC, soc_sys_clk_freq);
|
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC, soc_hclk_freq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_sysclk_src(void)
|
static void test_sysclk_src(void)
|
||||||
|
@ -102,7 +110,7 @@ void test_main(void)
|
||||||
{
|
{
|
||||||
printk("testing clock config on %s\n", CONFIG_BOARD);
|
printk("testing clock config on %s\n", CONFIG_BOARD);
|
||||||
ztest_test_suite(test_stm32_syclck_config,
|
ztest_test_suite(test_stm32_syclck_config,
|
||||||
ztest_unit_test(test_sysclk_freq),
|
ztest_unit_test(test_hclk_freq),
|
||||||
ztest_unit_test(test_sysclk_src),
|
ztest_unit_test(test_sysclk_src),
|
||||||
ztest_unit_test(test_pll_src)
|
ztest_unit_test(test_pll_src)
|
||||||
);
|
);
|
||||||
|
|
|
@ -115,3 +115,6 @@ tests:
|
||||||
drivers.stm32_clock_configuration.common.f2_f4_f7.sysclksrc_pll_64_hse_8:
|
drivers.stm32_clock_configuration.common.f2_f4_f7.sysclksrc_pll_64_hse_8:
|
||||||
extra_args: DTC_OVERLAY_FILE="boards/clear_f2_f4_f7_clocks.overlay;boards/f2_f4_f7_pll_64_hse_8.overlay"
|
extra_args: DTC_OVERLAY_FILE="boards/clear_f2_f4_f7_clocks.overlay;boards/f2_f4_f7_pll_64_hse_8.overlay"
|
||||||
platform_allow: nucleo_f207zg nucleo_f429zi nucleo_f446re nucleo_f746zg
|
platform_allow: nucleo_f207zg nucleo_f429zi nucleo_f446re nucleo_f746zg
|
||||||
|
drivers.stm32_clock_configuration.common.f2_f4_f7.sysclksrc_pll_100_hsi_16_ahb2:
|
||||||
|
extra_args: DTC_OVERLAY_FILE="boards/clear_f2_f4_f7_clocks.overlay;boards/f2_f4_f7_pll_100_hsi_16_ahb_2.overlay"
|
||||||
|
platform_allow: nucleo_f207zg nucleo_f429zi nucleo_f446re nucleo_f746zg
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue