Skip to content

Commit 5a0d4e1

Browse files
mariopajakartben
authored andcommitted
drivers: i2s: stm32_sai: add support for stm32g4xx series
STM32G4xx series shares several DMA configurations with the other platforms. These changes aim to enable platform specific DMA configuration and align them to other platforms. Signed-off-by: Mario Paja <[email protected]>
1 parent 4dced47 commit 5a0d4e1

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

drivers/i2s/i2s_stm32_sai.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,8 @@ static int i2s_stm32_sai_dma_init(const struct device *dev)
286286
hdma->Init.Request = dma_cfg.dma_slot;
287287
hdma->Init.Mode = DMA_NORMAL;
288288

289-
#if defined(CONFIG_SOC_SERIES_STM32H7X) || defined(CONFIG_SOC_SERIES_STM32L4X)
289+
#if defined(CONFIG_SOC_SERIES_STM32H7X) || defined(CONFIG_SOC_SERIES_STM32L4X) || \
290+
defined(CONFIG_SOC_SERIES_STM32G4X)
290291
hdma->Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
291292
hdma->Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
292293
hdma->Init.Priority = DMA_PRIORITY_HIGH;
@@ -310,7 +311,8 @@ static int i2s_stm32_sai_dma_init(const struct device *dev)
310311
if (stream->dma_cfg.channel_direction == (enum dma_channel_direction)MEMORY_TO_PERIPHERAL) {
311312
hdma->Init.Direction = DMA_MEMORY_TO_PERIPH;
312313

313-
#if !defined(CONFIG_SOC_SERIES_STM32H7X) && !defined(CONFIG_SOC_SERIES_STM32L4X)
314+
#if !defined(CONFIG_SOC_SERIES_STM32H7X) && !defined(CONFIG_SOC_SERIES_STM32L4X) && \
315+
!defined(CONFIG_SOC_SERIES_STM32G4X)
314316
hdma->Init.SrcInc = DMA_SINC_INCREMENTED;
315317
hdma->Init.DestInc = DMA_DINC_FIXED;
316318
#endif
@@ -319,7 +321,8 @@ static int i2s_stm32_sai_dma_init(const struct device *dev)
319321
} else {
320322
hdma->Init.Direction = DMA_PERIPH_TO_MEMORY;
321323

322-
#if !defined(CONFIG_SOC_SERIES_STM32H7X) && !defined(CONFIG_SOC_SERIES_STM32L4X)
324+
#if !defined(CONFIG_SOC_SERIES_STM32H7X) && !defined(CONFIG_SOC_SERIES_STM32L4X) && \
325+
!defined(CONFIG_SOC_SERIES_STM32G4X)
323326
hdma->Init.SrcInc = DMA_SINC_FIXED;
324327
hdma->Init.DestInc = DMA_DINC_INCREMENTED;
325328
#endif
@@ -338,7 +341,8 @@ static int i2s_stm32_sai_dma_init(const struct device *dev)
338341
LOG_ERR("HAL_DMA_ConfigChannelAttributes: <Failed>");
339342
return -EIO;
340343
}
341-
#elif !defined(CONFIG_SOC_SERIES_STM32H7X) && !defined(CONFIG_SOC_SERIES_STM32L4X)
344+
#elif !defined(CONFIG_SOC_SERIES_STM32H7X) && !defined(CONFIG_SOC_SERIES_STM32L4X) && \
345+
!defined(CONFIG_SOC_SERIES_STM32G4X)
342346
if (HAL_DMA_ConfigChannelAttributes(&dev_data->hdma, DMA_CHANNEL_NPRIV) != HAL_OK) {
343347
LOG_ERR("HAL_DMA_ConfigChannelAttributes: <Failed>");
344348
return -EIO;

0 commit comments

Comments
 (0)