This is an automated email from the ASF dual-hosted git repository.

gustavonihei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit c7e6366e915cb891f1da4d21a54df92e62b80af0
Author: raiden00pl <raide...@railab.me>
AuthorDate: Fri Jul 15 11:51:02 2022 +0200

    stm32f0l0g0/SPI: enable SPI for STM32G0
---
 arch/arm/src/stm32f0l0g0/hardware/stm32_dma_v1.h |  3 +++
 arch/arm/src/stm32f0l0g0/hardware/stm32_spi.h    |  2 +-
 arch/arm/src/stm32f0l0g0/stm32_spi.c             | 16 ++++++++++++++--
 3 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/arch/arm/src/stm32f0l0g0/hardware/stm32_dma_v1.h 
b/arch/arm/src/stm32f0l0g0/hardware/stm32_dma_v1.h
index 412695495f..97fc968f33 100644
--- a/arch/arm/src/stm32f0l0g0/hardware/stm32_dma_v1.h
+++ b/arch/arm/src/stm32f0l0g0/hardware/stm32_dma_v1.h
@@ -536,6 +536,9 @@
 #  define DMACHAN_USART5_TX_1     DMACHAN_SETTING(STM32_DMA1_CHAN7, 13)
 #  define DMACHAN_USART5_TX_2     DMACHAN_SETTING(STM32_DMA1_CHAN3, 13)
 
+#elif defined(CONFIG_ARCH_CHIP_STM32G0)
+/* This family uses a DMAMUX */
+
 #else
 #  error "Unknown DMA channel assignments"
 #endif
diff --git a/arch/arm/src/stm32f0l0g0/hardware/stm32_spi.h 
b/arch/arm/src/stm32f0l0g0/hardware/stm32_spi.h
index 4eb3c65e4a..96e4d2d4c9 100644
--- a/arch/arm/src/stm32f0l0g0/hardware/stm32_spi.h
+++ b/arch/arm/src/stm32f0l0g0/hardware/stm32_spi.h
@@ -30,7 +30,7 @@
 
 /* Select STM32 SPI IP core */
 
-#if defined(CONFIG_STM32F0L0G0_STM32F0)
+#if defined(CONFIG_STM32F0L0G0_STM32F0) || defined(CONFIG_STM32F0L0G0_STM32G0)
 #  define HAVE_IP_SPI_V2
 #elif defined(CONFIG_STM32F0L0G0_STM32L0)
 #  define HAVE_IP_SPI_V1
diff --git a/arch/arm/src/stm32f0l0g0/stm32_spi.c 
b/arch/arm/src/stm32f0l0g0/stm32_spi.c
index a8a7542e37..510792ab3a 100644
--- a/arch/arm/src/stm32f0l0g0/stm32_spi.c
+++ b/arch/arm/src/stm32f0l0g0/stm32_spi.c
@@ -126,6 +126,18 @@
 #define SPI_TXDMA16NULL_CONFIG    (SPI_DMA_PRIO|DMA_CCR_MSIZE_8BITS 
|DMA_CCR_PSIZE_16BITS             |DMA_CCR_DIR)
 #define SPI_TXDMA8NULL_CONFIG     (SPI_DMA_PRIO|DMA_CCR_MSIZE_8BITS 
|DMA_CCR_PSIZE_8BITS              |DMA_CCR_DIR)
 
+/* SPI clocks */
+
+#if defined(CONFIG_STM32F0L0G0_STM32F0) || defined(CONFIG_STM32F0L0G0_STM32L0)
+#  define SPI1_PCLK_FREQUENCY STM32_PCLK2_FREQUENCY
+#  define SPI2_PCLK_FREQUENCY STM32_PCLK1_FREQUENCY
+#elif defined(CONFIG_STM32F0L0G0_STM32G0)
+#  define SPI1_PCLK_FREQUENCY STM32_PCLK1_FREQUENCY
+#  define SPI2_PCLK_FREQUENCY STM32_PCLK1_FREQUENCY
+#else
+#  error Unsupported family
+#endif
+
 /****************************************************************************
  * Private Types
  ****************************************************************************/
@@ -281,7 +293,7 @@ static struct stm32_spidev_s g_spi1dev =
       &g_spi1ops
     },
   .spibase  = STM32_SPI1_BASE,
-  .spiclock = STM32_PCLK2_FREQUENCY,
+  .spiclock = SPI1_PCLK_FREQUENCY,
 #ifdef CONFIG_STM32F0L0G0_SPI_INTERRUPTS
   .spiirq   = STM32_IRQ_SPI1,
 #endif
@@ -336,7 +348,7 @@ static struct stm32_spidev_s g_spi2dev =
       &g_spi2ops
     },
   .spibase  = STM32_SPI2_BASE,
-  .spiclock = STM32_PCLK1_FREQUENCY,
+  .spiclock = SPI1_PCLK_FREQUENCY,
 #ifdef CONFIG_STM32F0L0G0_SPI_INTERRUPTS
   .spiirq   = STM32_IRQ_SPI2,
 #endif

Reply via email to