From 66c0a2769f7e8fb33d8a2c5a8974e16fd236bfee Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 17 Jun 2024 01:13:21 +0200 Subject: [PATCH] fix: serial power port handling (#5190) --- radio/src/serial.cpp | 9 +++++++-- radio/src/targets/common/arm/stm32/pwr_driver.cpp | 8 ++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/radio/src/serial.cpp b/radio/src/serial.cpp index f1330ccfa..fda2c4546 100644 --- a/radio/src/serial.cpp +++ b/radio/src/serial.cpp @@ -455,8 +455,13 @@ void serialInit(uint8_t port_nr, int mode) serialSetupPort(mode, params); - if (mode == UART_MODE_NONE || - !port || params.baudrate == 0 || + if (mode == UART_MODE_NONE ) { + // Even if port has no mode, port power needs to be set + serialSetPowerState(port_nr); + return; + } + + if (!port || params.baudrate == 0 || !port->uart || !port->uart->init) return; diff --git a/radio/src/targets/common/arm/stm32/pwr_driver.cpp b/radio/src/targets/common/arm/stm32/pwr_driver.cpp index 9e1abe628..5056491b2 100644 --- a/radio/src/targets/common/arm/stm32/pwr_driver.cpp +++ b/radio/src/targets/common/arm/stm32/pwr_driver.cpp @@ -75,6 +75,14 @@ void pwrInit() hardwareOptions.pcbrev = PCBREV_VALUE(); #endif + + // Aux serial port power +#if defined(AUX_SERIAL_PWR_GPIO) + gpio_init(AUX_SERIAL_PWR_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW); +#endif +#if defined(AUX2_SERIAL_PWR_GPIO) + gpio_init(AUX2_SERIAL_PWR_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW); +#endif } void pwrOn()