summaryrefslogtreecommitdiffstats
path: root/c/src
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-06-22 09:56:09 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-06-22 09:56:09 +0000
commitaa0da6b2c25f6301f0a741b586620cf69af77110 (patch)
tree955784b0dec5cac4852870bfe4a4d82e721e3137 /c/src
parentInitial version of these files. (diff)
downloadrtems-aa0da6b2c25f6301f0a741b586620cf69af77110.tar.bz2
Added a comment and cleaned up spacing
Diffstat (limited to 'c/src')
-rw-r--r--c/src/lib/libchip/serial/ns16550.c5
-rw-r--r--c/src/lib/libchip/serial/ns16550_p.h108
-rw-r--r--c/src/libchip/serial/ns16550.c5
-rw-r--r--c/src/libchip/serial/ns16550_p.h108
4 files changed, 126 insertions, 100 deletions
diff --git a/c/src/lib/libchip/serial/ns16550.c b/c/src/lib/libchip/serial/ns16550.c
index 2edd685aaf..a975dbb736 100644
--- a/c/src/lib/libchip/serial/ns16550.c
+++ b/c/src/lib/libchip/serial/ns16550.c
@@ -1,5 +1,8 @@
/*
- * This file contains the TTY driver for the NS16550
+ * This file contains the TTY driver for the National Semiconductor NS16550.
+ *
+ * This part is widely cloned and second sourced. It is found in a number
+ * of "Super IO" controllers.
*
* COPYRIGHT (c) 1998 by Radstone Technology
*
diff --git a/c/src/lib/libchip/serial/ns16550_p.h b/c/src/lib/libchip/serial/ns16550_p.h
index 9e610119e0..f1baca9fe0 100644
--- a/c/src/lib/libchip/serial/ns16550_p.h
+++ b/c/src/lib/libchip/serial/ns16550_p.h
@@ -12,6 +12,7 @@
* and disclaimer, appears in all copies. Radstone Technology will provide
* no support for this code.
*
+ * $Id$
*/
#ifndef _NS16550_P_H_
@@ -20,6 +21,7 @@
#ifdef __cplusplus
extern "C" {
#endif
+
/*
* Define serial port read registers structure.
*/
@@ -44,6 +46,7 @@ typedef volatile struct _SP_READ_REGISTERS {
#define NS16550_LINE_STATUS 5
#define NS16550_MODEM_STATUS 6
#define NS16550_SCRATCH_PAD 7
+
/*
* Define serial port write registers structure.
*/
@@ -66,10 +69,10 @@ typedef volatile struct _SP_WRITE_REGISTERS {
* Define serial port interrupt enable register structure.
*/
-#define SP_INT_RX_ENABLE 0x01
-#define SP_INT_TX_ENABLE 0x02
-#define SP_INT_LS_ENABLE 0x04
-#define SP_INT_MS_ENABLE 0x08
+#define SP_INT_RX_ENABLE 0x01
+#define SP_INT_TX_ENABLE 0x02
+#define SP_INT_LS_ENABLE 0x04
+#define SP_INT_MS_ENABLE 0x08
/*
* Define serial port interrupt id register structure.
@@ -85,26 +88,29 @@ typedef struct _SP_INTERRUPT_ID {
/*
* Define serial port fifo control register structure.
*/
-#define SP_FIFO_ENABLE 0x01
-#define SP_FIFO_RXRST 0x02
-#define SP_FIFO_TXRST 0x04
-#define SP_FIFO_DMA 0x08
-#define SP_FIFO_RXLEVEL 0xc0
+
+#define SP_FIFO_ENABLE 0x01
+#define SP_FIFO_RXRST 0x02
+#define SP_FIFO_TXRST 0x04
+#define SP_FIFO_DMA 0x08
+#define SP_FIFO_RXLEVEL 0xc0
/*
* Define serial port line control register structure.
*/
-#define SP_LINE_SIZE 0x03
-#define SP_LINE_STOP 0x04
-#define SP_LINE_PAR 0x08
-#define SP_LINE_ODD 0x10
-#define SP_LINE_STICK 0x20
-#define SP_LINE_BREAK 0x40
-#define SP_LINE_DLAB 0x80
+
+#define SP_LINE_SIZE 0x03
+#define SP_LINE_STOP 0x04
+#define SP_LINE_PAR 0x08
+#define SP_LINE_ODD 0x10
+#define SP_LINE_STICK 0x20
+#define SP_LINE_BREAK 0x40
+#define SP_LINE_DLAB 0x80
/*
* Line status register character size definitions.
*/
+
#define FIVE_BITS 0x0 /* five bits per character */
#define SIX_BITS 0x1 /* six bits per character */
#define SEVEN_BITS 0x2 /* seven bits per character */
@@ -113,28 +119,31 @@ typedef struct _SP_INTERRUPT_ID {
/*
* Line speed divisor definition.
*/
+
#define NS16550_Baud(baud_rate) (115200/baud_rate)
/*
* Define serial port modem control register structure.
*/
-#define SP_MODEM_DTR 0x01
-#define SP_MODEM_RTS 0x02
-#define SP_MODEM_IRQ 0x08
-#define SP_MODEM_LOOP 0x10
-#define SP_MODEM_DIV4 0x80
+
+#define SP_MODEM_DTR 0x01
+#define SP_MODEM_RTS 0x02
+#define SP_MODEM_IRQ 0x08
+#define SP_MODEM_LOOP 0x10
+#define SP_MODEM_DIV4 0x80
/*
* Define serial port line status register structure.
*/
-#define SP_LSR_RDY 0x01
-#define SP_LSR_EOVRUN 0x02
-#define SP_LSR_EPAR 0x04
-#define SP_LSR_EFRAME 0x08
-#define SP_LSR_BREAK 0x10
-#define SP_LSR_THOLD 0x20
-#define SP_LSR_TX 0x40
-#define SP_LSR_EFIFO 0x80
+
+#define SP_LSR_RDY 0x01
+#define SP_LSR_EOVRUN 0x02
+#define SP_LSR_EPAR 0x04
+#define SP_LSR_EFRAME 0x08
+#define SP_LSR_BREAK 0x10
+#define SP_LSR_THOLD 0x20
+#define SP_LSR_TX 0x40
+#define SP_LSR_EFIFO 0x80
typedef struct _ns16550_context
{
@@ -144,41 +153,42 @@ typedef struct _ns16550_context
/*
* Driver functions
*/
+
static boolean ns16550_probe(int minor);
static void ns16550_init(int minor);
static int ns16550_open(
- int major,
- int minor,
- void * arg
+ int major,
+ int minor,
+ void * arg
);
static int ns16550_close(
- int major,
- int minor,
- void * arg
+ int major,
+ int minor,
+ void * arg
);
static void ns16550_write_polled(
- int minor,
- char cChar
+ int minor,
+ char cChar
);
static int ns16550_assert_RTS(
- int minor
+ int minor
);
static int ns16550_negate_RTS(
- int minor
+ int minor
);
static int ns16550_assert_DTR(
- int minor
+ int minor
);
static int ns16550_negate_DTR(
- int minor
+ int minor
);
static void ns16550_initialize_interrupts(int minor);
@@ -186,19 +196,19 @@ static void ns16550_initialize_interrupts(int minor);
static int ns16550_flush(int major, int minor, void *arg);
static int ns16550_write_support_int(
- int minor,
- const char *buf,
- int len
+ int minor,
+ const char *buf,
+ int len
);
static int ns16550_write_support_polled(
- int minor,
- const char *buf,
- int len
- );
+ int minor,
+ const char *buf,
+ int len
+ );
static int ns16550_inbyte_nonblocking_polled(
- int minor
+ int minor
);
#ifdef __cplusplus
diff --git a/c/src/libchip/serial/ns16550.c b/c/src/libchip/serial/ns16550.c
index 2edd685aaf..a975dbb736 100644
--- a/c/src/libchip/serial/ns16550.c
+++ b/c/src/libchip/serial/ns16550.c
@@ -1,5 +1,8 @@
/*
- * This file contains the TTY driver for the NS16550
+ * This file contains the TTY driver for the National Semiconductor NS16550.
+ *
+ * This part is widely cloned and second sourced. It is found in a number
+ * of "Super IO" controllers.
*
* COPYRIGHT (c) 1998 by Radstone Technology
*
diff --git a/c/src/libchip/serial/ns16550_p.h b/c/src/libchip/serial/ns16550_p.h
index 9e610119e0..f1baca9fe0 100644
--- a/c/src/libchip/serial/ns16550_p.h
+++ b/c/src/libchip/serial/ns16550_p.h
@@ -12,6 +12,7 @@
* and disclaimer, appears in all copies. Radstone Technology will provide
* no support for this code.
*
+ * $Id$
*/
#ifndef _NS16550_P_H_
@@ -20,6 +21,7 @@
#ifdef __cplusplus
extern "C" {
#endif
+
/*
* Define serial port read registers structure.
*/
@@ -44,6 +46,7 @@ typedef volatile struct _SP_READ_REGISTERS {
#define NS16550_LINE_STATUS 5
#define NS16550_MODEM_STATUS 6
#define NS16550_SCRATCH_PAD 7
+
/*
* Define serial port write registers structure.
*/
@@ -66,10 +69,10 @@ typedef volatile struct _SP_WRITE_REGISTERS {
* Define serial port interrupt enable register structure.
*/
-#define SP_INT_RX_ENABLE 0x01
-#define SP_INT_TX_ENABLE 0x02
-#define SP_INT_LS_ENABLE 0x04
-#define SP_INT_MS_ENABLE 0x08
+#define SP_INT_RX_ENABLE 0x01
+#define SP_INT_TX_ENABLE 0x02
+#define SP_INT_LS_ENABLE 0x04
+#define SP_INT_MS_ENABLE 0x08
/*
* Define serial port interrupt id register structure.
@@ -85,26 +88,29 @@ typedef struct _SP_INTERRUPT_ID {
/*
* Define serial port fifo control register structure.
*/
-#define SP_FIFO_ENABLE 0x01
-#define SP_FIFO_RXRST 0x02
-#define SP_FIFO_TXRST 0x04
-#define SP_FIFO_DMA 0x08
-#define SP_FIFO_RXLEVEL 0xc0
+
+#define SP_FIFO_ENABLE 0x01
+#define SP_FIFO_RXRST 0x02
+#define SP_FIFO_TXRST 0x04
+#define SP_FIFO_DMA 0x08
+#define SP_FIFO_RXLEVEL 0xc0
/*
* Define serial port line control register structure.
*/
-#define SP_LINE_SIZE 0x03
-#define SP_LINE_STOP 0x04
-#define SP_LINE_PAR 0x08
-#define SP_LINE_ODD 0x10
-#define SP_LINE_STICK 0x20
-#define SP_LINE_BREAK 0x40
-#define SP_LINE_DLAB 0x80
+
+#define SP_LINE_SIZE 0x03
+#define SP_LINE_STOP 0x04
+#define SP_LINE_PAR 0x08
+#define SP_LINE_ODD 0x10
+#define SP_LINE_STICK 0x20
+#define SP_LINE_BREAK 0x40
+#define SP_LINE_DLAB 0x80
/*
* Line status register character size definitions.
*/
+
#define FIVE_BITS 0x0 /* five bits per character */
#define SIX_BITS 0x1 /* six bits per character */
#define SEVEN_BITS 0x2 /* seven bits per character */
@@ -113,28 +119,31 @@ typedef struct _SP_INTERRUPT_ID {
/*
* Line speed divisor definition.
*/
+
#define NS16550_Baud(baud_rate) (115200/baud_rate)
/*
* Define serial port modem control register structure.
*/
-#define SP_MODEM_DTR 0x01
-#define SP_MODEM_RTS 0x02
-#define SP_MODEM_IRQ 0x08
-#define SP_MODEM_LOOP 0x10
-#define SP_MODEM_DIV4 0x80
+
+#define SP_MODEM_DTR 0x01
+#define SP_MODEM_RTS 0x02
+#define SP_MODEM_IRQ 0x08
+#define SP_MODEM_LOOP 0x10
+#define SP_MODEM_DIV4 0x80
/*
* Define serial port line status register structure.
*/
-#define SP_LSR_RDY 0x01
-#define SP_LSR_EOVRUN 0x02
-#define SP_LSR_EPAR 0x04
-#define SP_LSR_EFRAME 0x08
-#define SP_LSR_BREAK 0x10
-#define SP_LSR_THOLD 0x20
-#define SP_LSR_TX 0x40
-#define SP_LSR_EFIFO 0x80
+
+#define SP_LSR_RDY 0x01
+#define SP_LSR_EOVRUN 0x02
+#define SP_LSR_EPAR 0x04
+#define SP_LSR_EFRAME 0x08
+#define SP_LSR_BREAK 0x10
+#define SP_LSR_THOLD 0x20
+#define SP_LSR_TX 0x40
+#define SP_LSR_EFIFO 0x80
typedef struct _ns16550_context
{
@@ -144,41 +153,42 @@ typedef struct _ns16550_context
/*
* Driver functions
*/
+
static boolean ns16550_probe(int minor);
static void ns16550_init(int minor);
static int ns16550_open(
- int major,
- int minor,
- void * arg
+ int major,
+ int minor,
+ void * arg
);
static int ns16550_close(
- int major,
- int minor,
- void * arg
+ int major,
+ int minor,
+ void * arg
);
static void ns16550_write_polled(
- int minor,
- char cChar
+ int minor,
+ char cChar
);
static int ns16550_assert_RTS(
- int minor
+ int minor
);
static int ns16550_negate_RTS(
- int minor
+ int minor
);
static int ns16550_assert_DTR(
- int minor
+ int minor
);
static int ns16550_negate_DTR(
- int minor
+ int minor
);
static void ns16550_initialize_interrupts(int minor);
@@ -186,19 +196,19 @@ static void ns16550_initialize_interrupts(int minor);
static int ns16550_flush(int major, int minor, void *arg);
static int ns16550_write_support_int(
- int minor,
- const char *buf,
- int len
+ int minor,
+ const char *buf,
+ int len
);
static int ns16550_write_support_polled(
- int minor,
- const char *buf,
- int len
- );
+ int minor,
+ const char *buf,
+ int len
+ );
static int ns16550_inbyte_nonblocking_polled(
- int minor
+ int minor
);
#ifdef __cplusplus