summaryrefslogtreecommitdiff
path: root/board/MAI/AmigaOneG3SE/serial.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/MAI/AmigaOneG3SE/serial.c')
-rw-r--r--board/MAI/AmigaOneG3SE/serial.c245
1 files changed, 0 insertions, 245 deletions
diff --git a/board/MAI/AmigaOneG3SE/serial.c b/board/MAI/AmigaOneG3SE/serial.c
deleted file mode 100644
index 84a913e..0000000
--- a/board/MAI/AmigaOneG3SE/serial.c
+++ /dev/null
@@ -1,245 +0,0 @@
-#include <common.h>
-#include <ns16550.h>
-#include "short_types.h"
-#include "memio.h"
-#include "articiaS.h"
-
-DECLARE_GLOBAL_DATA_PTR;
-
-#ifndef CONFIG_SYS_NS16550
-static uint32 ComPort1;
-
-uint16 SerialEcho = 1;
-
-
-#define RECEIVER_HOLDING 0
-#define TRANSMITTER_HOLDING 0
-#define INTERRUPT_ENABLE 1
-#define INTERRUPT_STATUS 2
-#define FIFO_CONTROL 2
-#define LINE_CONTROL 3
-#define MODEM_CONTROL 4
-#define LINE_STATUS 5
-#define MODEM_STATUS 6
-#define SCRATCH_PAD 7
-
-#define DIVISOR_LATCH_LSB 0
-#define DIVISOR_LATCH_MSB 1
-#define PRESCALER_DIVISION 5
-
-#define COM_WRITE_BYTE(reg, byte) out_byte((ComPort1+reg), byte)
-#define COM_READ_BYTE(reg) in_byte((ComPort1+reg))
-
-static int serial_init_done = 0;
-
-void serial_init (void)
-{
-#if 0
- uint32 clock_divisor = 115200 / baudrate;
- uint8 cfg;
- uint8 a;
- uint16 devfn = 7 << 3;
-
- if (serial_init_done)
- return;
-
- /* Enter configuration mode */
- cfg = pci_read_cfg_byte (0, devfn, 0x85);
- pci_write_cfg_byte (0, devfn, 0x85, cfg | 0x02);
-
- /* Set serial port COM1 as 3F8 */
- out_byte (0x3F0, 0xE7);
- out_byte (0x3f1, 0xfe);
-
- /* Set serial port COM2 as 2F8 */
- out_byte (0x3f0, 0xe8);
- out_byte (0x3f1, 0xeb);
-
- /* Enable */
- out_byte (0x3f0, 0xe2);
- a = in_byte (0x3f1);
- a |= 0xc;
- out_byte (0x3f0, 0xe2);
- out_byte (0x3f1, a);
-
- /* Reset the configuration mode */
- pci_write_cfg_byte (0, devfn, 0x85, cfg);
-#endif
-
- ComPort1 = 0x3F8;
-
- /* Disable interrupts */
- COM_WRITE_BYTE (INTERRUPT_ENABLE, 0x00);
-
- /* Set baud rate */
- /* COM_WRITE_BYTE(LINE_CONTROL, 0x83); */
- /* COM_WRITE_BYTE(DIVISOR_LATCH_LSB, (uint8)(clock_divisor & 0xFF)); */
- /* COM_WRITE_BYTE(DIVISOR_LATCH_MSB, (uint8)(clock_divisor >> 8)); */
- /* __asm__("eieio"); */
-
- /* Set 8-N-1 */
- COM_WRITE_BYTE (LINE_CONTROL, 0x03);
- __asm__ ("eieio");
-
- /* Disable FIFO */
- COM_WRITE_BYTE (MODEM_CONTROL, 0x03);
- COM_WRITE_BYTE (FIFO_CONTROL, 0x07);
-
- __asm__ ("eieio");
- serial_init_done = 1;
-}
-
-extern int console_changed;
-
-void serial_putc (const char sendme)
-{
- if (sendme == '\n') {
- while ((in_byte (0x3FD) & 0x40) == 0);
- out_byte (0x3f8, 0x0D);
- }
-
- while ((in_byte (0x3FD) & 0x40) == 0);
- out_byte (0x3f8, sendme);
-}
-
-int serial_getc (void)
-{
-#if 0
- uint8 c;
-
- for (;;) {
- uint8 x = in_byte (0x3FD);
-
- if (x & 0x01)
- break;
-
- if (x & 0x0C)
- out_byte (0x3fd, 0x0c);
- }
-
- c = in_byte (0x3F8);
-
- return c;
-#else
- while ((in_byte (0x3FD) & 0x01) == 0) {
- if (console_changed != 0) {
- printf ("Console changed\n");
- console_changed = 0;
- return 0;
- }
- }
- return in_byte (0x3F8);
-#endif
-}
-
-int serial_tstc (void)
-{
- return (in_byte (0x03FD) & 0x01) != 0;
-}
-
-void serial_debug_putc (int c)
-{
- serial_puts ("DBG");
- serial_putc (c);
- serial_putc (0x0d);
- serial_putc (0x0A);
-}
-
-#else
-
-const NS16550_t Com0 = (NS16550_t) CONFIG_SYS_NS16550_COM1;
-const NS16550_t Com1 = (NS16550_t) CONFIG_SYS_NS16550_COM2;
-
-int serial_init (void)
-{
- uint32 clock_divisor = 115200 / gd->baudrate;
-
- NS16550_init (Com0, clock_divisor);
- /* NS16550_reinit(Com1, clock_divisor); */
- /* serial_puts("COM1: 3F8h initalized"); */
-
- return (0);
-}
-
-#if 0
-void serial_putc (const char c)
-{
- NS16550_putc (Com0, c);
- if (c == '\n')
- NS16550_putc (Com0, 0x0D);
-}
-
-int serial_getc (void)
-{
- return (int) NS16550_getc (Com0);
-}
-
-int serial_tstc (void)
-{
- return NS16550_tstc (Com0);
-}
-#else
-void serial_putc (const char sendme)
-{
- if (sendme == '\n') {
- while ((in_byte (0x3FD) & 0x40) == 0);
- out_byte (0x3f8, 0x0D);
- }
-
- while ((in_byte (0x3FD) & 0x40) == 0);
- out_byte (0x3f8, sendme);
-}
-
-
-extern int console_changed;
-
-int serial_getc (void)
-{
-#if 0
- uint8 c;
-
- for (;;) {
- uint8 x = in_byte (0x3FD);
-
- if (x & 0x01)
- break;
-
- if (x & 0x0C)
- out_byte (0x3fd, 0x0c);
- }
-
- c = in_byte (0x3F8);
-
- return c;
-#else
- while ((in_byte (0x3FD) & 0x01) == 0) {
- if (console_changed != 0) {
- console_changed = 0;
- return 0;
- }
- }
-
- return in_byte (0x3F8);
-#endif
-}
-
-int serial_tstc (void)
-{
- return (in_byte (0x03FD) & 0x01) != 0;
-}
-#endif
-
-#endif
-
-void serial_puts (const char *string)
-{
- while (*string)
- serial_putc (*string++);
-}
-
-void serial_setbrg (void)
-{
- uint32 clock_divisor = 115200 / gd->baudrate;
-
- NS16550_init (Com0, clock_divisor);
-}