Skip to content

Commit 09493b9

Browse files
committed
drivers: clock control: stm32H7RS has a PLL2 & 3 or HCLK5 output
Add the definitions of the PLL2 and PLL3 outputs for the stm32H7RS mcus and the HCLK 5 which is clock source for the XSPI instance. and other HCLKn for other peripherals. Signed-off-by: Francois Ramu <[email protected]>
1 parent 15bcfb6 commit 09493b9

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

drivers/clock_control/clock_stm32_ll_h7.c

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,16 @@ int enabled_clock(uint32_t src_clk)
337337
((src_clk == STM32_SRC_PLL2_R) && IS_ENABLED(STM32_PLL2_R_ENABLED)) ||
338338
((src_clk == STM32_SRC_PLL3_P) && IS_ENABLED(STM32_PLL3_P_ENABLED)) ||
339339
((src_clk == STM32_SRC_PLL3_Q) && IS_ENABLED(STM32_PLL3_Q_ENABLED)) ||
340+
#if defined(CONFIG_SOC_SERIES_STM32H7RSX)
341+
(src_clk == STM32_SRC_HCLK1) ||
342+
(src_clk == STM32_SRC_HCLK2) ||
343+
(src_clk == STM32_SRC_HCLK3) ||
344+
(src_clk == STM32_SRC_HCLK4) ||
345+
(src_clk == STM32_SRC_HCLK5) ||
346+
((src_clk == STM32_SRC_PLL2_S) && IS_ENABLED(STM32_PLL2_S_ENABLED)) ||
347+
((src_clk == STM32_SRC_PLL2_T) && IS_ENABLED(STM32_PLL2_T_ENABLED)) ||
348+
((src_clk == STM32_SRC_PLL3_S) && IS_ENABLED(STM32_PLL3_S_ENABLED)) ||
349+
#endif
340350
((src_clk == STM32_SRC_PLL3_R) && IS_ENABLED(STM32_PLL3_R_ENABLED))) {
341351
return 0;
342352
}
@@ -460,6 +470,14 @@ static int stm32_clock_control_get_subsys_rate(const struct device *clock,
460470
case STM32_CLOCK_BUS_AHB2:
461471
case STM32_CLOCK_BUS_AHB3:
462472
case STM32_CLOCK_BUS_AHB4:
473+
#if defined(CONFIG_SOC_SERIES_STM32H7RSX)
474+
/* HCLKn is a possible source clock for some peripherals */
475+
case STM32_SRC_HCLK1:
476+
case STM32_SRC_HCLK2:
477+
case STM32_SRC_HCLK3:
478+
case STM32_SRC_HCLK4:
479+
case STM32_SRC_HCLK5:
480+
#endif /* CONFIG_SOC_SERIES_STM32H7RSX */
463481
*rate = ahb_clock;
464482
break;
465483
case STM32_CLOCK_BUS_APB1:
@@ -544,7 +562,7 @@ static int stm32_clock_control_get_subsys_rate(const struct device *clock,
544562
STM32_PLL_N_MULTIPLIER,
545563
STM32_PLL_S_DIVISOR);
546564
break;
547-
/* PLL 1 has no T-divider */
565+
/* PLL 1 has no T-divider */
548566
#endif /* CONFIG_SOC_SERIES_STM32H7RSX */
549567
#endif /* STM32_PLL_ENABLED */
550568
#if defined(STM32_PLL2_ENABLED)

include/zephyr/dt-bindings/clock/stm32h7rs_clock.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@
3838

3939
/** Clock muxes */
4040
#define STM32_SRC_CKPER (STM32_SRC_PLL3_S + 1)
41+
#define STM32_SRC_HCLK1 (STM32_SRC_CKPER + 1)
42+
#define STM32_SRC_HCLK2 (STM32_SRC_HCLK1 + 1)
43+
#define STM32_SRC_HCLK3 (STM32_SRC_HCLK2 + 1)
44+
#define STM32_SRC_HCLK4 (STM32_SRC_HCLK3 + 1)
45+
#define STM32_SRC_HCLK5 (STM32_SRC_HCLK4 + 1)
4146
/** Others: Not yet supported */
4247

4348
/** Bus clocks */

0 commit comments

Comments
 (0)