|
|
1.1 root 1: /*
2: * Mach Operating System
3: * Copyright (c) 1991,1990 Carnegie Mellon University
4: * All Rights Reserved.
5: *
6: * Permission to use, copy, modify and distribute this software and its
7: * documentation is hereby granted, provided that both the copyright
8: * notice and this permission notice appear in all copies of the
9: * software, derivative works or modified versions, and any portions
10: * thereof, and that both notices appear in supporting documentation.
11: *
12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15: *
16: * Carnegie Mellon requests users of this software to return to
17: *
18: * Software Distribution Coordinator or [email protected]
19: * School of Computer Science
20: * Carnegie Mellon University
21: * Pittsburgh PA 15213-3890
22: *
23: * any improvements or extensions that they make and grant Carnegie Mellon
24: * the rights to redistribute these changes.
25: */
26: /*
27: * Olivetti serial port driver v1.0
28: * Copyright Ing. C. Olivetti & C. S.p.A. 1988, 1989
29: * All rights reserved.
30: *
31: */
32: /*
33: Copyright 1988, 1989 by Olivetti Advanced Technology Center, Inc.,
34: Cupertino, California.
35:
36: All Rights Reserved
37:
38: Permission to use, copy, modify, and distribute this software and
39: its documentation for any purpose and without fee is hereby
40: granted, provided that the above copyright notice appears in all
41: copies and that both the copyright notice and this permission notice
42: appear in supporting documentation, and that the name of Olivetti
43: not be used in advertising or publicity pertaining to distribution
44: of the software without specific, written prior permission.
45:
46: OLIVETTI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
47: INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
48: IN NO EVENT SHALL OLIVETTI BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
49: CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
50: LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
51: NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUR OF OR IN CONNECTION
52: WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
53: */
54:
55: #define TXRX(addr) (addr + 0)
56: #define BAUD_LSB(addr) (addr + 0)
57: #define BAUD_MSB(addr) (addr + 1)
58: #define INTR_ENAB(addr) (addr + 1)
59: #define INTR_ID(addr) (addr + 2)
60: #define FIFO_CTL(addr) (addr + 2)
61: #define LINE_CTL(addr) (addr + 3)
62: #define MODEM_CTL(addr) (addr + 4)
63: #define LINE_STAT(addr) (addr + 5)
64: #define MODEM_STAT(addr)(addr + 6)
65: #define SCR(addr) (addr + 7)
66:
67: #define MODi 0
68: #define TRAi 2
69: #define RECi 4
70: #define LINi 6
71: #define CTIi 0xc
72: #define MASKi 0xf
73:
74: /* line control register */
75: #define iWLS0 0x01 /*word length select bit 0 */
76: #define iWLS1 0x02 /*word length select bit 2 */
77: #define iSTB 0x04 /* number of stop bits */
78: #define iPEN 0x08 /* parity enable */
79: #define iEPS 0x10 /* even parity select */
80: #define iSP 0x20 /* stick parity */
81: #define iSETBREAK 0x40 /* break key */
82: #define iDLAB 0x80 /* divisor latch access bit */
83: #define i5BITS 0x00 /* 5 bits per char */
84: #define i6BITS 0x01 /* 6 bits per char */
85: #define i7BITS 0x02 /* 7 bits per char */
86: #define i8BITS 0x03 /* 8 bits per char */
87:
88: /* line status register */
89: #define iDR 0x01 /* data ready */
90: #define iOR 0x02 /* overrun error */
91: #define iPE 0x04 /* parity error */
92: #define iFE 0x08 /* framing error */
93: #define iBRKINTR 0x10 /* a break has arrived */
94: #define iTHRE 0x20 /* tx hold reg is now empty */
95: #define iTSRE 0x40 /* tx shift reg is now empty */
96:
97: /* interrupt id regisger */
98: #define iMODEM_INTR 0x01
99: #define iTX_INTR 0x02
100: #define iRX_INTR 0x04
101: #define iERROR_INTR 0x08
102:
103: /* interrupt enable register */
104: #define iRX_ENAB 0x01
105: #define iTX_ENAB 0x02
106: #define iERROR_ENAB 0x04
107: #define iMODEM_ENAB 0x08
108:
109: /* modem control register */
110: #define iDTR 0x01 /* data terminal ready */
111: #define iRTS 0x02 /* request to send */
112: #define iOUT1 0x04 /* COM aux line -not used */
113: #define iOUT2 0x08 /* turns intr to 386 on/off */
114: #define iLOOP 0x10 /* loopback for diagnostics */
115:
116: /* modem status register */
117: #define iDCTS 0x01 /* delta clear to send */
118: #define iDDSR 0x02 /* delta data set ready */
119: #define iTERI 0x04 /* trail edge ring indicator */
120: #define iDRLSD 0x08 /* delta rx line sig detect */
121: #define iCTS 0x10 /* clear to send */
122: #define iDSR 0x20 /* data set ready */
123: #define iRI 0x40 /* ring indicator */
124: #define iRLSD 0x80 /* rx line sig detect */
125:
126: /* fifo control register (only in 16550) */
127: #define iFIFOENA 0x01 /* Enable fifos */
128: #define iCLRRCVRFIFO 0x02 /* Clear receive fifo */
129: #define iCLRXMITFIFO 0x04 /* Clear transmit fifo */
130: #define iDMAMODE 0x08 /* DMA transfer enable */
131: #define iFIFO1CH 0x00 /* Receive fifo trigger level 1 char */
132: #define iFIFO4CH 0x40 /* Receive fifo trigger level 4 chars*/
133: #define iFIFO8CH 0x80 /* Receive fifo trigger level 8 chars*/
134: #define iFIFO14CH 0xc0 /* Receive fifo trigger level 14 chars*/
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.