diff --git a/radio/src/serial.cpp b/radio/src/serial.cpp index b4382af1865..d17a586597a 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 d5829c230ad..f34a6e8016b 100644 --- a/radio/src/targets/common/arm/stm32/pwr_driver.cpp +++ b/radio/src/targets/common/arm/stm32/pwr_driver.cpp @@ -81,6 +81,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()