From aea15250aecc44f0dc977f95e434bccb8744fde4 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Thu, 23 Jan 2020 11:33:11 -0500 Subject: [PATCH] stm32: Only declare alternate usart2 on stm32f0 Also, try to improve the structure of the #if/#else/#endif layout in serial.c. Signed-off-by: Kevin O'Connor --- src/stm32/Kconfig | 8 +++--- src/stm32/serial.c | 50 +++++++++++++++++--------------------- src/stm32/stm32f0_serial.c | 32 ++++++++++++------------ 3 files changed, 41 insertions(+), 49 deletions(-) diff --git a/src/stm32/Kconfig b/src/stm32/Kconfig index 2d9b3c1d..345d859e 100644 --- a/src/stm32/Kconfig +++ b/src/stm32/Kconfig @@ -157,7 +157,7 @@ choice config STM32_SERIAL_USART2 bool "USART2 (on PA3/PA2)" config STM32_SERIAL_USART2_ALT - bool "USART2 (on PA15/PA14)" + bool "USART2 (on PA15/PA14)" if MACH_STM32F0 config STM32_SERIAL_USART3 bool "USART3" config STM32_SERIAL_USART3_ALT @@ -165,10 +165,8 @@ choice endchoice config SERIAL_PORT int - default 103 if STM32_SERIAL_USART3_ALT - default 3 if STM32_SERIAL_USART3 - default 102 if STM32_SERIAL_USART2_ALT - default 2 if STM32_SERIAL_USART2 + default 3 if STM32_SERIAL_USART3 || STM32_SERIAL_USART3_ALT + default 2 if STM32_SERIAL_USART2 || STM32_SERIAL_USART2_ALT default 1 endif diff --git a/src/stm32/serial.c b/src/stm32/serial.c index 0e57a986..b0cb1f55 100644 --- a/src/stm32/serial.c +++ b/src/stm32/serial.c @@ -13,35 +13,29 @@ // Select the configured serial port #if CONFIG_SERIAL_PORT == 1 -DECL_CONSTANT_STR("RESERVE_PINS_serial", "PA10,PA9"); -#define GPIO_Rx GPIO('A', 10) -#define GPIO_Tx GPIO('A', 9) -#define USARTx USART1 -#define USARTx_IRQn USART1_IRQn + DECL_CONSTANT_STR("RESERVE_PINS_serial", "PA10,PA9"); + #define GPIO_Rx GPIO('A', 10) + #define GPIO_Tx GPIO('A', 9) + #define USARTx USART1 + #define USARTx_IRQn USART1_IRQn #elif CONFIG_SERIAL_PORT == 2 -DECL_CONSTANT_STR("RESERVE_PINS_serial", "PA3,PA2"); -#define GPIO_Rx GPIO('A', 3) -#define GPIO_Tx GPIO('A', 2) -#define USARTx USART2 -#define USARTx_IRQn USART2_IRQn -#elif CONFIG_SERIAL_PORT == 102 -DECL_CONSTANT_STR("RESERVE_PINS_serial", "PA14,PA15"); -#define GPIO_Rx GPIO('A', 14) -#define GPIO_Tx GPIO('A', 15) -#define USARTx USART2b -#define USARTx_IRQn USART2_IRQn -#elif CONFIG_SERIAL_PORT == 103 -DECL_CONSTANT_STR("RESERVE_PINS_serial", "PD9,PD8"); -#define GPIO_Rx GPIO('D', 9) -#define GPIO_Tx GPIO('D', 8) -#define USARTx USART3 -#define USARTx_IRQn USART3_IRQn -#else -DECL_CONSTANT_STR("RESERVE_PINS_serial", "PB11,PB10"); -#define GPIO_Rx GPIO('B', 11) -#define GPIO_Tx GPIO('B', 10) -#define USARTx USART3 -#define USARTx_IRQn USART3_IRQn + DECL_CONSTANT_STR("RESERVE_PINS_serial", "PA3,PA2"); + #define GPIO_Rx GPIO('A', 3) + #define GPIO_Tx GPIO('A', 2) + #define USARTx USART2 + #define USARTx_IRQn USART2_IRQn +#elif CONFIG_SERIAL_PORT == 3 + #if STM32_SERIAL_USART3_ALT + DECL_CONSTANT_STR("RESERVE_PINS_serial", "PD9,PD8"); + #define GPIO_Rx GPIO('D', 9) + #define GPIO_Tx GPIO('D', 8) + #else + DECL_CONSTANT_STR("RESERVE_PINS_serial", "PB11,PB10"); + #define GPIO_Rx GPIO('B', 11) + #define GPIO_Tx GPIO('B', 10) + #endif + #define USARTx USART3 + #define USARTx_IRQn USART3_IRQn #endif #define CR1_FLAGS (USART_CR1_UE | USART_CR1_RE | USART_CR1_TE \ diff --git a/src/stm32/stm32f0_serial.c b/src/stm32/stm32f0_serial.c index d478259b..452d66c9 100644 --- a/src/stm32/stm32f0_serial.c +++ b/src/stm32/stm32f0_serial.c @@ -13,23 +13,23 @@ // Select the configured serial port #if CONFIG_SERIAL_PORT == 1 -DECL_CONSTANT_STR("RESERVE_PINS_serial", "PA10,PA9"); -#define GPIO_Rx GPIO('A', 10) -#define GPIO_Tx GPIO('A', 9) -#define USARTx USART1 -#define USARTx_IRQn USART1_IRQn + DECL_CONSTANT_STR("RESERVE_PINS_serial", "PA10,PA9"); + #define GPIO_Rx GPIO('A', 10) + #define GPIO_Tx GPIO('A', 9) + #define USARTx USART1 + #define USARTx_IRQn USART1_IRQn #elif CONFIG_SERIAL_PORT == 2 -DECL_CONSTANT_STR("RESERVE_PINS_serial", "PA3,PA2"); -#define GPIO_Rx GPIO('A', 3) -#define GPIO_Tx GPIO('A', 2) -#define USARTx USART2 -#define USARTx_IRQn USART2_IRQn -#elif CONFIG_SERIAL_PORT == 102 -DECL_CONSTANT_STR("RESERVE_PINS_serial", "PA15,PA14"); -#define GPIO_Rx GPIO('A', 15) -#define GPIO_Tx GPIO('A', 14) -#define USARTx USART2 -#define USARTx_IRQn USART2_IRQn + #if STM32_SERIAL_USART2_ALT + DECL_CONSTANT_STR("RESERVE_PINS_serial", "PA15,PA14"); + #define GPIO_Rx GPIO('A', 15) + #define GPIO_Tx GPIO('A', 14) + #else + DECL_CONSTANT_STR("RESERVE_PINS_serial", "PA3,PA2"); + #define GPIO_Rx GPIO('A', 3) + #define GPIO_Tx GPIO('A', 2) + #endif + #define USARTx USART2 + #define USARTx_IRQn USART2_IRQn #endif #define CR1_FLAGS (USART_CR1_UE | USART_CR1_RE | USART_CR1_TE \