Skip to content

Commit 4bb618c

Browse files
FRASTMkartben
authored andcommitted
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 e13722b commit 4bb618c

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
@@ -351,6 +351,16 @@ int enabled_clock(uint32_t src_clk)
351351
((src_clk == STM32_SRC_PLL2_R) && IS_ENABLED(STM32_PLL2_R_ENABLED)) ||
352352
((src_clk == STM32_SRC_PLL3_P) && IS_ENABLED(STM32_PLL3_P_ENABLED)) ||
353353
((src_clk == STM32_SRC_PLL3_Q) && IS_ENABLED(STM32_PLL3_Q_ENABLED)) ||
354+
#if defined(CONFIG_SOC_SERIES_STM32H7RSX)
355+
(src_clk == STM32_SRC_HCLK1) ||
356+
(src_clk == STM32_SRC_HCLK2) ||
357+
(src_clk == STM32_SRC_HCLK3) ||
358+
(src_clk == STM32_SRC_HCLK4) ||
359+
(src_clk == STM32_SRC_HCLK5) ||
360+
((src_clk == STM32_SRC_PLL2_S) && IS_ENABLED(STM32_PLL2_S_ENABLED)) ||
361+
((src_clk == STM32_SRC_PLL2_T) && IS_ENABLED(STM32_PLL2_T_ENABLED)) ||
362+
((src_clk == STM32_SRC_PLL3_S) && IS_ENABLED(STM32_PLL3_S_ENABLED)) ||
363+
#endif
354364
((src_clk == STM32_SRC_PLL3_R) && IS_ENABLED(STM32_PLL3_R_ENABLED))) {
355365
return 0;
356366
}
@@ -474,6 +484,14 @@ static int stm32_clock_control_get_subsys_rate(const struct device *clock,
474484
case STM32_CLOCK_BUS_AHB2:
475485
case STM32_CLOCK_BUS_AHB3:
476486
case STM32_CLOCK_BUS_AHB4:
487+
#if defined(CONFIG_SOC_SERIES_STM32H7RSX)
488+
/* HCLKn is a possible source clock for some peripherals */
489+
case STM32_SRC_HCLK1:
490+
case STM32_SRC_HCLK2:
491+
case STM32_SRC_HCLK3:
492+
case STM32_SRC_HCLK4:
493+
case STM32_SRC_HCLK5:
494+
#endif /* CONFIG_SOC_SERIES_STM32H7RSX */
477495
*rate = ahb_clock;
478496
break;
479497
case STM32_CLOCK_BUS_APB1:
@@ -558,7 +576,7 @@ static int stm32_clock_control_get_subsys_rate(const struct device *clock,
558576
STM32_PLL_N_MULTIPLIER,
559577
STM32_PLL_S_DIVISOR);
560578
break;
561-
/* PLL 1 has no T-divider */
579+
/* PLL 1 has no T-divider */
562580
#endif /* CONFIG_SOC_SERIES_STM32H7RSX */
563581
#endif /* STM32_PLL_ENABLED */
564582
#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)