Skip to content

Commit 4283f30

Browse files
committed
tests: drivers: clock control stm32 adc device clock setting
Tests the ADC clock domain on the stm32g0 serie Possible ADC clock sources are SYStem clock (default) or PLL_P. No clock source HSI for the ADC tested here. Signed-off-by: Francois Ramu <[email protected]>
1 parent 1a5ae37 commit 4283f30

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

tests/drivers/clock_control/stm32_clock_configuration/stm32_common_devices/boards/g0_i2c1_sysclk_lptim1_lsi.overlay

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,6 @@
7777
};
7878

7979
&adc1 {
80-
/* Basic test only. Don't configure domain clock. */
80+
/* Basic test only. ADC1 domain clock is set by the board DTS : SYSCLK */
8181
status = "okay";
8282
};

tests/drivers/clock_control/stm32_clock_configuration/stm32_common_devices/src/test_stm32_clock_configuration_adc.c

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,17 @@
2525
#define PERIPHCLK_ADC RCC_PERIPHCLK_ADC12
2626
#define ADC_IS_CLK_ENABLED __HAL_RCC_ADC12_IS_CLK_ENABLED
2727
#define GET_ADC_SOURCE __HAL_RCC_GET_ADC12_SOURCE
28-
#define ADC_SOURCE_SYSCLK RCC_ADC12CLKSOURCE_SYSCLK
2928
#elif defined(__HAL_RCC_GET_ADC_SOURCE)
3029
#define PERIPHCLK_ADC RCC_PERIPHCLK_ADC
3130
#define ADC_IS_CLK_ENABLED __HAL_RCC_ADC_IS_CLK_ENABLED
3231
#define GET_ADC_SOURCE __HAL_RCC_GET_ADC_SOURCE
33-
#define ADC_SOURCE_SYSCLK RCC_ADCCLKSOURCE_SYSCLK
3432
#else
3533
#define PERIPHCLK_ADC (-1)
3634
#define ADC_IS_CLK_ENABLED __HAL_RCC_ADC1_IS_CLK_ENABLED
3735
#define GET_ADC_SOURCE() (-1);
3836
#endif
3937

38+
/* Not all the stm32 series have all the clock sources */
4039
#if defined(RCC_ADC12CLKSOURCE_PLL)
4140
#define ADC_SOURCE_PLL RCC_ADC12CLKSOURCE_PLL
4241
#elif defined(RCC_ADCCLKSOURCE_PLLADC)
@@ -47,6 +46,14 @@
4746
#define ADC_SOURCE_PLL (-1)
4847
#endif
4948

49+
#if defined(RCC_ADC12CLKSOURCE_SYSCLK)
50+
#define ADC_SOURCE_SYSCLK RCC_ADC12CLKSOURCE_SYSCLK
51+
#elif defined(RCC_ADCCLKSOURCE_SYSCLK)
52+
#define ADC_SOURCE_SYSCLK RCC_ADCCLKSOURCE_SYSCLK
53+
#else
54+
#define ADC_SOURCE_SYSCLK (-1)
55+
#endif
56+
5057
ZTEST(stm32_common_devices_clocks, test_adc_clk_config)
5158
{
5259
static const struct stm32_pclken pclken[] = STM32_DT_CLOCKS(DT_NODELABEL(adc1));
@@ -87,13 +94,20 @@ ZTEST(stm32_common_devices_clocks, test_adc_clk_config)
8794
dev_actual_clk_src = GET_ADC_SOURCE();
8895

8996
switch (pclken[1].bus) {
97+
#if defined(STM32_SRC_SYSCLK)
98+
case STM32_SRC_SYSCLK:
99+
zassert_equal(dev_actual_clk_src, ADC_SOURCE_SYSCLK,
100+
"Expected ADC1 src: SYSCLK (0x%lx). Actual ADC1 src: 0x%x",
101+
ADC_SOURCE_SYSCLK, dev_actual_clk_src);
102+
break;
103+
#endif /* STM32_SRC_SYSCLK */
90104
#if defined(STM32_SRC_PLL_P)
91105
case STM32_SRC_PLL_P:
92106
zassert_equal(dev_actual_clk_src, ADC_SOURCE_PLL,
93107
"Expected ADC1 src: PLL (0x%lx). Actual ADC1 src: 0x%x",
94108
ADC_SOURCE_PLL, dev_actual_clk_src);
95109
break;
96-
#endif
110+
#endif /* STM32_SRC_PLL_P */
97111
default:
98112
zassert_true(0, "Unexpected src clk (%d)", dev_actual_clk_src);
99113
}

0 commit comments

Comments
 (0)