|
@@ -925,3 +925,64 @@
|
|
|
#define URX_RXDATA_SHIFT 0
|
|
|
#define URX_PARITY_ERROR 0x0100 /* Parity Error */
|
|
|
#define URX_BREAK 0x0200 /* Break Detected */
|
|
|
+#define URX_FRAME_ERROR 0x0400 /* Framing Error */
|
|
|
+#define URX_OVRUN 0x0800 /* Serial Overrun */
|
|
|
+#define URX_DATA_READY 0x2000 /* Data Ready (FIFO not empty) */
|
|
|
+#define URX_FIFO_HALF 0x4000 /* FIFO is Half-Full */
|
|
|
+#define URX_FIFO_FULL 0x8000 /* FIFO is Full */
|
|
|
+
|
|
|
+/*
|
|
|
+ * UART Transmitter Register
|
|
|
+ */
|
|
|
+#define UTX_ADDR 0xfffff906
|
|
|
+#define UTX WORD_REF(UTX_ADDR)
|
|
|
+
|
|
|
+#define UTX_TXDATA_ADDR 0xfffff907
|
|
|
+#define UTX_TXDATA BYTE_REF(UTX_TXDATA_ADDR)
|
|
|
+
|
|
|
+#define UTX_TXDATA_MASK 0x00ff /* Data to be transmitted */
|
|
|
+#define UTX_TXDATA_SHIFT 0
|
|
|
+#define UTX_CTS_DELTA 0x0100 /* CTS changed */
|
|
|
+#define UTX_CTS_STATUS 0x0200 /* CTS State */
|
|
|
+#define UTX_IGNORE_CTS 0x0800 /* Ignore CTS */
|
|
|
+#define UTX_SEND_BREAK 0x1000 /* Send a BREAK */
|
|
|
+#define UTX_TX_AVAIL 0x2000 /* Transmit FIFO has a slot available */
|
|
|
+#define UTX_FIFO_HALF 0x4000 /* Transmit FIFO is half empty */
|
|
|
+#define UTX_FIFO_EMPTY 0x8000 /* Transmit FIFO is empty */
|
|
|
+
|
|
|
+/* 'EZ328-compatible definitions */
|
|
|
+#define UTX_CTS_STAT UTX_CTS_STATUS
|
|
|
+#define UTX_NOCTS UTX_IGNORE_CTS
|
|
|
+
|
|
|
+/*
|
|
|
+ * UART Miscellaneous Register
|
|
|
+ */
|
|
|
+#define UMISC_ADDR 0xfffff908
|
|
|
+#define UMISC WORD_REF(UMISC_ADDR)
|
|
|
+
|
|
|
+#define UMISC_TX_POL 0x0004 /* Transmit Polarity */
|
|
|
+#define UMISC_RX_POL 0x0008 /* Receive Polarity */
|
|
|
+#define UMISC_IRDA_LOOP 0x0010 /* IrDA Loopback Enable */
|
|
|
+#define UMISC_IRDA_EN 0x0020 /* Infra-Red Enable */
|
|
|
+#define UMISC_RTS 0x0040 /* Set RTS status */
|
|
|
+#define UMISC_RTSCONT 0x0080 /* Choose RTS control */
|
|
|
+#define UMISC_LOOP 0x1000 /* Serial Loopback Enable */
|
|
|
+#define UMISC_FORCE_PERR 0x2000 /* Force Parity Error */
|
|
|
+#define UMISC_CLKSRC 0x4000 /* Clock Source */
|
|
|
+
|
|
|
+
|
|
|
+/* generalization of uart control registers to support multiple ports: */
|
|
|
+typedef volatile struct {
|
|
|
+ volatile unsigned short int ustcnt;
|
|
|
+ volatile unsigned short int ubaud;
|
|
|
+ union {
|
|
|
+ volatile unsigned short int w;
|
|
|
+ struct {
|
|
|
+ volatile unsigned char status;
|
|
|
+ volatile unsigned char rxdata;
|
|
|
+ } b;
|
|
|
+ } urx;
|
|
|
+ union {
|
|
|
+ volatile unsigned short int w;
|
|
|
+ struct {
|
|
|
+ volatile unsigned char status;
|