Skip to content

Commit 3546e73

Browse files
mathieuchopstmaescolar
authored andcommitted
drivers: flash: stm32_ospi: cleanup STM32H5-related quirks
STM32H5 series now uses the dedicated `flash_stm32_xspi` driver instead. Remove all quirks related to H5 in the STM32 OSPI driver. Signed-off-by: Mathieu Choplain <[email protected]>
1 parent 8422e7e commit 3546e73

File tree

3 files changed

+2
-140
lines changed

3 files changed

+2
-140
lines changed

drivers/flash/Kconfig.stm32_ospi

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@ config FLASH_STM32_OSPI
99
bool "STM32 Octo SPI Flash driver"
1010
default y
1111
depends on DT_HAS_ST_STM32_OSPI_NOR_ENABLED
12-
select USE_STM32_HAL_OSPI if !SOC_SERIES_STM32H5X
13-
select USE_STM32_HAL_XSPI if SOC_SERIES_STM32H5X
14-
select USE_STM32_LL_DLYB if (SOC_SERIES_STM32H5X || SOC_SERIES_STM32U5X)
12+
select USE_STM32_HAL_OSPI
13+
select USE_STM32_LL_DLYB if SOC_SERIES_STM32U5X
1514
select USE_STM32_HAL_MDMA if SOC_SERIES_STM32H7X
1615
select FLASH_HAS_DRIVER_ENABLED
1716
select FLASH_JESD216

drivers/flash/flash_stm32_ospi.c

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
#include "spi_nor.h"
2626
#include "jesd216.h"
2727

28-
#include "flash_stm32_ospi.h"
29-
3028
#include <zephyr/logging/log.h>
3129
LOG_MODULE_REGISTER(flash_stm32_ospi, CONFIG_FLASH_LOG_LEVEL);
3230

@@ -57,17 +55,10 @@ LOG_MODULE_REGISTER(flash_stm32_ospi, CONFIG_FLASH_LOG_LEVEL);
5755

5856
#define STM32_OSPI_FIFO_THRESHOLD 4
5957

60-
#if defined(CONFIG_SOC_SERIES_STM32H5X)
61-
/* Valid range is [0, 255] */
62-
#define STM32_OSPI_CLOCK_PRESCALER_MIN 0U
63-
#define STM32_OSPI_CLOCK_PRESCALER_MAX 255U
64-
#define STM32_OSPI_CLOCK_COMPUTE(bus_freq, prescaler) ((bus_freq) / ((prescaler) + 1U))
65-
#else
6658
/* Valid range is [1, 256] */
6759
#define STM32_OSPI_CLOCK_PRESCALER_MIN 1U
6860
#define STM32_OSPI_CLOCK_PRESCALER_MAX 256U
6961
#define STM32_OSPI_CLOCK_COMPUTE(bus_freq, prescaler) ((bus_freq) / (prescaler))
70-
#endif
7162

7263
/* Max Time value during reset or erase operation */
7364
#define STM32_OSPI_RESET_MAX_TIME 100U
@@ -2355,13 +2346,8 @@ static int flash_stm32_ospi_init(const struct device *dev)
23552346
/* Initialize OSPI HAL structure completely */
23562347
dev_data->hospi.Init.FifoThreshold = 4;
23572348
dev_data->hospi.Init.ClockPrescaler = prescaler;
2358-
#if defined(CONFIG_SOC_SERIES_STM32H5X)
2359-
/* The stm32h5xx_hal_xspi does not reduce DEVSIZE before writing the DCR1 */
2360-
dev_data->hospi.Init.DeviceSize = find_lsb_set(dev_cfg->flash_size) - 2;
2361-
#else
23622349
/* Give a bit position from 0 to 31 to the HAL init for the DCR1 reg */
23632350
dev_data->hospi.Init.DeviceSize = find_lsb_set(dev_cfg->flash_size) - 1;
2364-
#endif /* CONFIG_SOC_SERIES_STM32U5X */
23652351
dev_data->hospi.Init.DualQuad = HAL_OSPI_DUALQUAD_DISABLE;
23662352
dev_data->hospi.Init.ChipSelectHighTime = 2;
23672353
dev_data->hospi.Init.FreeRunningClock = HAL_OSPI_FREERUNCLK_DISABLE;
@@ -2437,23 +2423,6 @@ static int flash_stm32_ospi_init(const struct device *dev)
24372423

24382424
#endif /* OCTOSPIM */
24392425

2440-
#if defined(CONFIG_SOC_SERIES_STM32H5X)
2441-
/* OCTOSPI1 delay block init Function */
2442-
HAL_XSPI_DLYB_CfgTypeDef xspi_delay_block_cfg = {0};
2443-
2444-
(void)HAL_XSPI_DLYB_GetClockPeriod(&dev_data->hospi, &xspi_delay_block_cfg);
2445-
/* with DTR, set the PhaseSel/4 (empiric value from stm32Cube) */
2446-
xspi_delay_block_cfg.PhaseSel /= 4;
2447-
2448-
if (HAL_XSPI_DLYB_SetConfig(&dev_data->hospi, &xspi_delay_block_cfg) != HAL_OK) {
2449-
LOG_ERR("XSPI DelayBlock failed");
2450-
return -EIO;
2451-
}
2452-
2453-
LOG_DBG("Delay Block Init");
2454-
2455-
#endif /* CONFIG_SOC_SERIES_STM32H5X */
2456-
24572426
/* Initialize semaphores */
24582427
k_sem_init(&dev_data->sem, 1, 1);
24592428
k_sem_init(&dev_data->sync, 0, 1);

drivers/flash/flash_stm32_ospi.h

Lines changed: 0 additions & 106 deletions
This file was deleted.

0 commit comments

Comments
 (0)