altos/stmf0: Add 'ao_serial_shutdown'
authorKeith Packard <keithp@keithp.com>
Tue, 16 Jul 2019 18:04:16 +0000 (11:04 -0700)
committerKeith Packard <keithp@keithp.com>
Tue, 16 Jul 2019 18:04:16 +0000 (11:04 -0700)
This powers down the UART logic on request.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/kernel/ao_serial.h
src/stmf0/ao_serial_stm.c

index 440b562..3500a09 100644 (file)
@@ -117,6 +117,9 @@ void
 ao_serial3_set_speed(uint8_t speed);
 #endif
 
+void
+ao_serial_shutdown(void);
+
 void
 ao_serial_init(void);
 
index 5097041..ef35394 100644 (file)
@@ -375,6 +375,17 @@ ao_serial_set_sw_rts_cts(struct ao_stm_usart *usart,
 }
 #endif
 
+void
+ao_serial_shutdown(void)
+{
+#if HAS_SERIAL_1
+       stm_rcc.apb2enr &= ~(1 << STM_RCC_APB2ENR_USART1EN);
+#endif
+#if HAS_SERIAL_2
+       stm_rcc.apb1enr &= ~(1 << STM_RCC_APB1ENR_USART2EN);
+#endif
+}
+
 void
 ao_serial_init(void)
 {