summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chip/stm32/registers.h2
-rw-r--r--chip/stm32/uart.c12
-rw-r--r--include/config.h4
3 files changed, 16 insertions, 2 deletions
diff --git a/chip/stm32/registers.h b/chip/stm32/registers.h
index c5ac5a9852..24109454f1 100644
--- a/chip/stm32/registers.h
+++ b/chip/stm32/registers.h
@@ -1209,6 +1209,8 @@ enum dma_channel {
STM32_DMAC_I2C2_RX = STM32_DMAC_CH5,
STM32_DMAC_USART1_TX = STM32_DMAC_CH4,
STM32_DMAC_USART1_RX = STM32_DMAC_CH5,
+ STM32_DMAC_USART2_RX = STM32_DMAC_CH6,
+ STM32_DMAC_USART2_TX = STM32_DMAC_CH7,
STM32_DMAC_I2C1_TX = STM32_DMAC_CH6,
STM32_DMAC_I2C1_RX = STM32_DMAC_CH7,
STM32_DMAC_PMSE_ROW = STM32_DMAC_CH6,
diff --git a/chip/stm32/uart.c b/chip/stm32/uart.c
index 67b405fe65..f98b9138ff 100644
--- a/chip/stm32/uart.c
+++ b/chip/stm32/uart.c
@@ -23,9 +23,13 @@
#ifdef CONFIG_UART_TX_DMA
#define UART_TX_INT_ENABLE STM32_USART_CR1_TCIE
+#ifndef CONFIG_UART_TX_DMA_CH
+#define CONFIG_UART_TX_DMA_CH STM32_DMAC_USART1_TX
+#endif
+
/* DMA channel options; assumes UART1 */
static const struct dma_option dma_tx_option = {
- STM32_DMAC_USART1_TX, (void *)&STM32_USART_TDR(UARTN_BASE),
+ CONFIG_UART_TX_DMA_CH, (void *)&STM32_USART_TDR(UARTN_BASE),
STM32_DMA_CCR_MSIZE_8_BIT | STM32_DMA_CCR_PSIZE_8_BIT
};
@@ -34,9 +38,13 @@ static const struct dma_option dma_tx_option = {
#endif
#ifdef CONFIG_UART_RX_DMA
+
+#ifndef CONFIG_UART_RX_DMA_CH
+#define CONFIG_UART_RX_DMA_CH STM32_DMAC_USART1_RX
+#endif
/* DMA channel options; assumes UART1 */
static const struct dma_option dma_rx_option = {
- STM32_DMAC_USART1_RX, (void *)&STM32_USART_RDR(UARTN_BASE),
+ CONFIG_UART_RX_DMA_CH, (void *)&STM32_USART_RDR(UARTN_BASE),
STM32_DMA_CCR_MSIZE_8_BIT | STM32_DMA_CCR_PSIZE_8_BIT |
STM32_DMA_CCR_CIRC
};
diff --git a/include/config.h b/include/config.h
index ba9efeb4c7..23f799f8a6 100644
--- a/include/config.h
+++ b/include/config.h
@@ -1023,6 +1023,10 @@
/* Use DMA for UART output */
#undef CONFIG_UART_TX_DMA
+/* The DMA channel for UART. If not defined, default to UART1. */
+#undef CONFIG_UART_TX_DMA_CH
+#undef CONFIG_UART_RX_DMA_CH
+
/*****************************************************************************/
/* USB PD config */