From d2ac49358435d46c74eb4fd56025ee5ed0e27990 Mon Sep 17 00:00:00 2001 From: Thomas Stranger Date: Wed, 28 Apr 2021 01:19:44 +0200 Subject: [PATCH 1/3] dts/arm: STM32: Adding flash clock settings in dtsi for stm32h7 series. This commit adds flash clock settings in device tree for stm32h7 series such that the stm32h7 flash driver can get the clock settings from this dtsi file. Signed-off-by: Thomas Stranger --- dts/arm/st/h7/stm32h7.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/dts/arm/st/h7/stm32h7.dtsi b/dts/arm/st/h7/stm32h7.dtsi index bcf112758e882..aa2ac2ac3670a 100644 --- a/dts/arm/st/h7/stm32h7.dtsi +++ b/dts/arm/st/h7/stm32h7.dtsi @@ -44,6 +44,7 @@ label = "FLASH_CTRL"; reg = <0x52002000 0x400>; interrupts = <4 0>; + clocks = <&rcc STM32_CLOCK_BUS_AHB3 0x00000100>; #address-cells = <1>; #size-cells = <1>; From 77d05a693f15fc1de8d117dc1745db9bca3a1eb3 Mon Sep 17 00:00:00 2001 From: Thomas Stranger Date: Wed, 28 Apr 2021 01:25:11 +0200 Subject: [PATCH 2/3] drivers/flash: STM32: Fix flash_stm32_priv definition for h7 series This commit fixes missing pclken member if used for h7 series. Additionally to the check if instance 0 of compatible st_stm32_flash_controller has defined a clock, this needs to be checked for compatible st_stm32h7_flash_controller. Signed-off-by: Thomas Stranger --- drivers/flash/flash_stm32.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/flash/flash_stm32.h b/drivers/flash/flash_stm32.h index 3f2ca85b25d67..3eb7cea494a09 100644 --- a/drivers/flash/flash_stm32.h +++ b/drivers/flash/flash_stm32.h @@ -8,14 +8,16 @@ #ifndef ZEPHYR_DRIVERS_FLASH_FLASH_STM32_H_ #define ZEPHYR_DRIVERS_FLASH_FLASH_STM32_H_ -#if DT_NODE_HAS_PROP(DT_INST(0, st_stm32_flash_controller), clocks) +#if DT_NODE_HAS_PROP(DT_INST(0, st_stm32_flash_controller), clocks) || \ + DT_NODE_HAS_PROP(DT_INST(0, st_stm32h7_flash_controller), clocks) #include #include #endif struct flash_stm32_priv { FLASH_TypeDef *regs; -#if DT_NODE_HAS_PROP(DT_INST(0, st_stm32_flash_controller), clocks) +#if DT_NODE_HAS_PROP(DT_INST(0, st_stm32_flash_controller), clocks) || \ + DT_NODE_HAS_PROP(DT_INST(0, st_stm32h7_flash_controller), clocks) /* clock subsystem driving this peripheral */ struct stm32_pclken pclken; #endif From 02fbb39c1b5830f6cf6ddfa91fd6612a7464a65d Mon Sep 17 00:00:00 2001 From: Thomas Stranger Date: Wed, 28 Apr 2021 01:34:18 +0200 Subject: [PATCH 3/3] drivers/flash: STM32: use clk dt definitions in h7 flash driver This commit replaces driver hard coded clk bus and enr definitions with definitions from device tree. Signed-off-by: Thomas Stranger --- drivers/flash/flash_stm32h7x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/flash/flash_stm32h7x.c b/drivers/flash/flash_stm32h7x.c index 6ea0bff18adfe..d163ad832f5b8 100644 --- a/drivers/flash/flash_stm32h7x.c +++ b/drivers/flash/flash_stm32h7x.c @@ -605,8 +605,8 @@ void flash_stm32_page_layout(const struct device *dev, static struct flash_stm32_priv flash_data = { .regs = (FLASH_TypeDef *) DT_INST_REG_ADDR(0), - .pclken = { .bus = STM32_CLOCK_BUS_AHB3, - .enr = LL_AHB3_GRP1_PERIPH_FLASH }, + .pclken = { .bus = DT_INST_CLOCKS_CELL(0, bus), + .enr = DT_INST_CLOCKS_CELL(0, bits)}, }; static const struct flash_driver_api flash_stm32h7_api = {