diff options
author | Stefan Roese <sr@denx.de> | 2017-07-14 17:25:54 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-07-23 17:04:46 -0400 |
commit | 6822cf3ec7c8768b8727573b8f4b2cb3d870b881 (patch) | |
tree | 5069bd6cc7729d3cced2bc523429c9e3573443bd /include/ns16550.h | |
parent | c3bec5478f604c88191bd29309abe47df0be53cb (diff) | |
download | u-boot-6822cf3ec7c8768b8727573b8f4b2cb3d870b881.tar.gz |
serial: ns16550: Add RX interrupt buffer support
Pasting longer lines into the U-Boot console prompt sometimes leads to
characters missing. One problem here is the small 16-byte FIFO of the
legacy NS16550 UART, e.g. on x86 platforms.
This patch now introduces a Kconfig option to enable RX interrupt
buffer support for NS16550 style UARTs. With this option enabled, I was
able paste really long lines into the U-Boot console, without any
characters missing.
Signed-off-by: Stefan Roese <sr@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
[trini: Guard ns16550_serial_remove with
CONFIG_IS_ENABLED(SERIAL_PRESENT) to match struct assignment]
Signed-off-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'include/ns16550.h')
-rw-r--r-- | include/ns16550.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/ns16550.h b/include/ns16550.h index 5fcbcd2e74..7e9944d0d9 100644 --- a/include/ns16550.h +++ b/include/ns16550.h @@ -51,6 +51,10 @@ * @base: Base register address * @reg_shift: Shift size of registers (0=byte, 1=16bit, 2=32bit...) * @clock: UART base clock speed in Hz + * + * @buf: Pointer to the RX interrupt buffer + * @rd_ptr: Read pointer in the RX interrupt buffer + * @wr_ptr: Write pointer in the RX interrupt buffer */ struct ns16550_platdata { unsigned long base; @@ -58,6 +62,12 @@ struct ns16550_platdata { int clock; int reg_offset; u32 fcr; + + int irq; + + char *buf; + int rd_ptr; + int wr_ptr; }; struct udevice; |