diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-19 06:28:01 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-20 13:08:32 +0200 |
commit | d7d66d7d4523b904c8ccc6aea3709dc0d5aa5bdc (patch) | |
tree | caa54b4229e86a68c84ab5961af34e087dce5302 /bsps/mips/csb350 | |
parent | bsps/powerpc: Move shared btimer support (diff) | |
download | rtems-d7d66d7d4523b904c8ccc6aea3709dc0d5aa5bdc.tar.bz2 |
bsps: Move console drivers to bsps
This patch is a part of the BSP source reorganization.
Update #3285.
Diffstat (limited to 'bsps/mips/csb350')
-rw-r--r-- | bsps/mips/csb350/console/console-io.c | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/bsps/mips/csb350/console/console-io.c b/bsps/mips/csb350/console/console-io.c new file mode 100644 index 0000000000..e1beff8460 --- /dev/null +++ b/bsps/mips/csb350/console/console-io.c @@ -0,0 +1,85 @@ +/* + * This file contains the hardware specific portions of the TTY driver + * for the serial ports on the csb350. + */ + +/* + * COPYRIGHT (c) 1989-2000. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#include <bsp.h> +#include <bsp/console-polled.h> +#include <rtems/libio.h> +#include <libcpu/au1x00.h> + +/* + * console_initialize_hardware + * + * This routine initializes the console hardware. + * + */ +void console_initialize_hardware(void) +{ + uart0->fifoctrl = 0xf1; /* enable fifo, max sizes */ + au_sync(); +} + + +/* + * console_outbyte_polled + * + * This routine transmits a character using polling. + */ +void console_outbyte_polled( + int port, + char ch +) +{ + /* wait for the fifo to make room */ + while ((uart0->linestat & 0x20) == 0) { + continue; + } + + uart0->txdata = ch; + au_sync(); +} +/* + * console_inbyte_nonblocking + * + * This routine polls for a character. + */ + +int console_inbyte_nonblocking( + int port +) +{ + unsigned char c; + + if (uart0->linestat & 1) { + c = (char)uart0->rxdata; + return c; + } else { + return -1; + } +} + +#include <rtems/bspIo.h> + +static void csb250_output_char(char c) +{ + console_outbyte_polled( 0, c ); +} + +static int csb250_get_char(void) +{ + return console_inbyte_nonblocking(0); +} + +BSP_output_char_function_type BSP_output_char = csb250_output_char; +BSP_polling_getchar_function_type BSP_poll_char = csb250_get_char; + |