altos/stm32l0: Big update in functionality
[fw/altos] / src / stm32l0 / ao_serial_stm.c
index 8fead99ebdcf876426178212771ba5a97d50984b..ac745d9709387d7aec07b45ba3cc0d5019487822 100644 (file)
@@ -380,10 +380,24 @@ ao_serial_set_sw_rts_cts(struct ao_stm_usart *usart,
 void
 ao_serial_shutdown(void)
 {
+# if SERIAL_2_PA2_PA3
+       stm_moder_set(&stm_gpioa, 2, STM_MODER_INPUT);
+       stm_moder_set(&stm_gpioa, 3, STM_MODER_INPUT);
+# elif SERIAL_2_PA9_PA10
+       stm_moder_set(&stm_gpioa, 9, STM_MODER_INPUT);
+       stm_moder_set(&stm_gpioa, 10, STM_MODER_INPUT);
+# elif SERIAL_2_PA14_PA15
+       stm_moder_set(&stm_gpioa, 14, STM_MODER_INPUT);
+       stm_moder_set(&stm_gpioa, 15, STM_MODER_INPUT);
+# elif SERIAL_2_PB6_PB7
+       stm_moder_set(&stm_gpiob, 6, STM_MODER_INPUT);
+       stm_moder_set(&stm_gpiob, 7, STM_MODER_INPUT);
+#endif
 #if HAS_SERIAL_1
        stm_rcc.apb2enr &= ~(1 << STM_RCC_APB2ENR_USART1EN);
 #endif
 #if HAS_SERIAL_2
+       stm_nvic_set_disable(STM_ISR_USART2_POS);
        stm_rcc.apb1enr &= ~(1 << STM_RCC_APB1ENR_USART2EN);
 #endif
 }