diff options
Diffstat (limited to 'chip/g/uartn.h')
-rw-r--r-- | chip/g/uartn.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/chip/g/uartn.h b/chip/g/uartn.h new file mode 100644 index 0000000000..12d0f53bff --- /dev/null +++ b/chip/g/uartn.h @@ -0,0 +1,77 @@ +/* Copyright 2016 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef __CROS_EC_UARTN_H +#define __CROS_EC_UARTN_H + +#include "common.h" +#include "gpio.h" + +/** + * Initialize the UART module. + */ +void uartn_init(int uart); + +/** + * Flush the transmit FIFO. + */ +void uartn_tx_flush(int uart); + +/** + * Return non-zero if there is room to transmit a character immediately. + */ +int uartn_tx_ready(int uart); + +/** + * Return non-zero if a transmit is in progress. + */ +int uartn_tx_in_progress(int uart); + +/* + * Return non-zero if the UART has a character available to read. + */ +int uartn_rx_available(int uart); + +/** + * Send a character to the UART data register. + * + * If the transmit FIFO is full, blocks until there is space. + * + * @param c Character to send. + */ +void uartn_write_char(int uart, char c); + +/** + * Read one char from the UART data register. + * + * @return The character read. + */ +int uartn_read_char(int uart); + +/** + * Disable all UART related IRQs. + * + * Used to avoid concurrent accesses on UART management variables. + */ +void uartn_disable_interrupt(int uart); + +/** + * Re-enable UART IRQs. + */ +void uartn_enable_interrupt(int uart); + +/** + * Re-enable the UART transmit interrupt. + * + * This also forces triggering a UART interrupt, if the transmit interrupt was + * disabled. + */ +void uartn_tx_start(int uart); + +/** + * Disable the UART transmit interrupt. + */ +void uartn_tx_stop(int uart); +#endif /* __CROS_EC_UARTN_H */ |