From b36db747e0d5d48912ad280deaa4f3a595150469 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20L=C3=B6ffel?= Date: Mon, 10 May 2021 10:10:08 +0200 Subject: [PATCH 1/2] dts/arm: stm32h7: quadspi added MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit quadspi added to device tree of stm32h7 family. validated with samples/subsys/fs/littlefs Signed-off-by: Raphael Löffel --- drivers/flash/Kconfig.stm32_qspi | 2 ++ drivers/flash/flash_stm32_qspi.c | 6 ++++++ dts/arm/st/h7/stm32h7.dtsi | 11 +++++++++++ dts/bindings/qspi/st,stm32-qspi.yaml | 3 ++- 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/flash/Kconfig.stm32_qspi b/drivers/flash/Kconfig.stm32_qspi index 892b9758f0425..b079d8bd79da3 100644 --- a/drivers/flash/Kconfig.stm32_qspi +++ b/drivers/flash/Kconfig.stm32_qspi @@ -18,5 +18,7 @@ config FLASH_STM32_QSPI select FLASH_HAS_PAGE_LAYOUT select DMA if $(DT_STM32_QUADSPI_HAS_DMA) select USE_STM32_HAL_DMA if $(DT_STM32_QUADSPI_HAS_DMA) + select USE_STM32_HAL_MDMA if !$(DT_STM32_QUADSPI_HAS_DMA) help Enable QSPI-NOR support on the STM32 family of processors. + For STM32H7 devices DMA is not yet supported. diff --git a/drivers/flash/flash_stm32_qspi.c b/drivers/flash/flash_stm32_qspi.c index a8447a77682f5..1f1cadf4c29ba 100644 --- a/drivers/flash/flash_stm32_qspi.c +++ b/drivers/flash/flash_stm32_qspi.c @@ -29,6 +29,12 @@ #include LOG_MODULE_REGISTER(flash_stm32_qspi, CONFIG_FLASH_LOG_LEVEL); +#ifdef CONFIG_SOC_SERIES_STM32H7X +#if DT_NODE_HAS_PROP(DT_NODELABEL(quadspi),dmas) +#error "STM32H7 QSPI flash driver do not support DMA" +#endif +#endif + #define STM32_QSPI_FIFO_THRESHOLD 8 #define STM32_QSPI_CLOCK_PRESCALER_MAX 255 diff --git a/dts/arm/st/h7/stm32h7.dtsi b/dts/arm/st/h7/stm32h7.dtsi index 2fb09e1336604..ba8828f2952b2 100644 --- a/dts/arm/st/h7/stm32h7.dtsi +++ b/dts/arm/st/h7/stm32h7.dtsi @@ -378,6 +378,17 @@ label = "I2C_4"; }; + quadspi: quadspi@52005000 { + compatible = "st,stm32-qspi"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x52005000 0x400>; + interrupts = <92 0>; + clocks = <&rcc STM32_CLOCK_BUS_AHB3 0x00004000>; + status = "disabled"; + label = "QUADSPI"; + }; + spi1: spi@40013000 { compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>; diff --git a/dts/bindings/qspi/st,stm32-qspi.yaml b/dts/bindings/qspi/st,stm32-qspi.yaml index 8281cfb9e8d1e..05b914cef6387 100644 --- a/dts/bindings/qspi/st,stm32-qspi.yaml +++ b/dts/bindings/qspi/st,stm32-qspi.yaml @@ -33,7 +33,8 @@ properties: description: | Optional DMA channel specifier. If DMA should be used, specifier should hold a phandle reference to the dma controller, the channel number, - the slot number, channel configuration and finally features. + the slot number, channel configuration and finally features. For STM32H7 + devices DMA is not yet supported. For example dmas for TX/RX on QSPI dmas = <&dma1 5 5 0x0000 0x03>; From 75639953074faa3585de6c279671ce22bcf1d252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20L=C3=B6ffel?= Date: Tue, 11 May 2021 08:18:38 +0200 Subject: [PATCH 2/2] dts/arm: stm32h7: whitespace issue fixed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit whitespace issue fixed to pass compliance checks. Signed-off-by: Raphael Löffel --- drivers/flash/flash_stm32_qspi.c | 2 +- dts/arm/st/h7/stm32h7.dtsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/flash/flash_stm32_qspi.c b/drivers/flash/flash_stm32_qspi.c index 1f1cadf4c29ba..9723313944da2 100644 --- a/drivers/flash/flash_stm32_qspi.c +++ b/drivers/flash/flash_stm32_qspi.c @@ -30,7 +30,7 @@ LOG_MODULE_REGISTER(flash_stm32_qspi, CONFIG_FLASH_LOG_LEVEL); #ifdef CONFIG_SOC_SERIES_STM32H7X -#if DT_NODE_HAS_PROP(DT_NODELABEL(quadspi),dmas) +#if DT_NODE_HAS_PROP(DT_NODELABEL(quadspi), dmas) #error "STM32H7 QSPI flash driver do not support DMA" #endif #endif diff --git a/dts/arm/st/h7/stm32h7.dtsi b/dts/arm/st/h7/stm32h7.dtsi index ba8828f2952b2..988465040e5d5 100644 --- a/dts/arm/st/h7/stm32h7.dtsi +++ b/dts/arm/st/h7/stm32h7.dtsi @@ -388,7 +388,7 @@ status = "disabled"; label = "QUADSPI"; }; - + spi1: spi@40013000 { compatible = "st,stm32-spi-fifo", "st,stm32-spi"; #address-cells = <1>;