summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chip/ish/uart.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/chip/ish/uart.c b/chip/ish/uart.c
index 27539dc009..b810c0eb52 100644
--- a/chip/ish/uart.c
+++ b/chip/ish/uart.c
@@ -63,6 +63,9 @@ void uart_tx_start(void)
if ( REG8(IER(id) & IER_TDRQ) )
return;
+ /* Do not allow deep sleep while transmit in progress */
+ disable_sleep(SLEEP_MASK_UART);
+
/* TODO: disable low power mode while transmit */
REG8(IER(id)) |= IER_TDRQ;
@@ -76,6 +79,9 @@ void uart_tx_stop(void)
#if !defined(CONFIG_POLLING_UART)
enum UART_PORT id = UART_PORT_1; /* UART1 for ISH */
+ /* Re-allow deep sleep */
+ enable_sleep(SLEEP_MASK_UART);
+
REG8(IER(id)) &= ~IER_TDRQ;
/* TODO: re-enable low power mode */