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 /c/src/lib/libbsp/arm/edb7312/console/uart.c | |
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 'c/src/lib/libbsp/arm/edb7312/console/uart.c')
-rw-r--r-- | c/src/lib/libbsp/arm/edb7312/console/uart.c | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/c/src/lib/libbsp/arm/edb7312/console/uart.c b/c/src/lib/libbsp/arm/edb7312/console/uart.c deleted file mode 100644 index 4ba71c8cc2..0000000000 --- a/c/src/lib/libbsp/arm/edb7312/console/uart.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Cirrus EP7312 Console Driver - * - * Copyright (c) 2002 by Jay Monkman <jtm@smoothsmoothie.com> - * - * 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> /* Must be before libio.h */ -#include <rtems/libio.h> -#include <termios.h> -#include <rtems/bspIo.h> - -#include <ep7312.h> -#include <libchip/serial.h> -#include <libchip/sersupp.h> - -#define NUM_DEVS 1 -int uart_poll_read(int minor); - -static int uart_first_open(int major, int minor, void *arg); -static int uart_last_close(int major, int minor, void *arg); -static int uart_read(int minor); -static ssize_t uart_write(int minor, const char *buf, size_t len); -static void uart_init(int minor); -static void uart_write_polled(int minor, char c); -static int uart_set_attributes(int minor, const struct termios *t); - -unsigned long Console_Configuration_Count = NUM_DEVS; - -const console_fns uart_fns = -{ - libchip_serial_default_probe, - uart_first_open, - uart_last_close, - uart_read, - uart_write, - uart_init, - uart_write_polled, - uart_set_attributes, - FALSE -}; -console_tbl Console_Configuration_Ports[] = { - { - "/dev/com0", /* sDeviceName */ - SERIAL_CUSTOM, /* deviceType */ - &uart_fns, /* pDeviceFns */ - NULL, /* deviceProbe */ - NULL, /* pDeviceFlow */ - 16, /* ulMargin */ - 8, /* ulHysteresis */ - NULL, /* pDeviceParams */ - (uint32_t)EP7312_UARTCR1, /* ulCtrlPort1 */ - (uint32_t)EP7312_SYSFLG1, /* ulCtrlPort2 */ - (uint32_t)EP7312_UARTDR1, /* ulDataPort */ - 0, /* getRegister */ - 0, /* setRegister */ - 0, /* getData */ - 0, /* setData */ - 0, /* ulClock */ - 0 /* ulIntVector */ - }}; - -static int uart_first_open(int major, int minor, void *arg) {return 0;} -static int uart_last_close(int major, int minor, void *arg) {return 0;} -static int uart_read(int minor) -{ - return uart_poll_read(minor); -} - -static void uart_write_polled(int minor, char c) -{ - uart_write(minor, &c, 1); -} - -static int uart_set_attributes(int minor, const struct termios *t) -{ - return 0; -} - -int uart_poll_read(int minor) -{ - volatile uint32_t *data_reg; - volatile uint32_t *ctrl_reg2; - char c; - int err; - - data_reg = (uint32_t *)Console_Port_Tbl[minor]->ulDataPort; - ctrl_reg2 = (uint32_t *)Console_Port_Tbl[minor]->ulCtrlPort2; - - if ((*ctrl_reg2 & EP7312_UART_URXFE1) != 0) { - return -1; - } - - err = *data_reg; - c = err & 0xff; - err &= (EP7312_UART_FRMERR | EP7312_UART_PARERR | EP7312_UART_OVERR); - - return c; -} - -static ssize_t uart_do_write( - volatile uint32_t *uartdr, - const char *buf, - size_t len, - volatile uint32_t *sysflg -) -{ - size_t i; - - for (i = 0; i < len; i++) { - /* Wait for fifo to have room */ - while ((*sysflg & EP7312_UART_UTXFF1) != 0) { - continue; - } - - *uartdr = buf[i]; - } - - return len; -} - -static ssize_t uart_write(int minor, const char *buf, size_t len) -{ - volatile uint32_t *data_reg; - volatile uint32_t *ctrl_reg2; - - data_reg = (uint32_t *)Console_Port_Tbl[minor]->ulDataPort; - ctrl_reg2 = (uint32_t *)Console_Port_Tbl[minor]->ulCtrlPort2; - - return uart_do_write(data_reg, buf, len, ctrl_reg2); -} - -static void uart_init(int minor) -{ - volatile uint32_t *ctrl_reg1; - - ctrl_reg1 = (uint32_t *)Console_Port_Tbl[minor]->ulCtrlPort1; - - /* *ctrl_reg = (BSP_UART_DATA8 | - BSP_UART_STOP1 | - BSP_UART_PARITY_NONE | - EP7312_UART_FIFOEN | - BSP_UART_BAUD_9600); - */ - *ctrl_reg1 = (EP7312_UART_WRDLEN8 | - EP7312_UART_FIFOEN | - 0x17); /* 9600 baud */ - -} - -/* - * Debug IO support - */ -static void _BSP_null_char(char c) -{ - uart_do_write(EP7312_UARTDR1, &c, 1, EP7312_SYSFLG1); -} - -static int _BSP_get_char(void) -{ - return uart_poll_read(0); -} - -BSP_output_char_function_type BSP_output_char = _BSP_null_char; - -BSP_polling_getchar_function_type BSP_poll_char = _BSP_get_char; |