summaryrefslogtreecommitdiff
path: root/sys/arch/vax/vsa/dc7085cons.h
blob: 1c5a55b19a357d2f2e88eb41a495df865ec8fd2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
/*	$NetBSD: dc7085cons.h,v 1.1 1996/07/20 18:55:10 ragge Exp $	*/
/*
 * Copyright (c) 1992, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * Ralph Campbell and Rick Macklem.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *	This product includes software developed by the University of
 *	California, Berkeley and its contributors.
 * 4. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)dc7085cons.h	8.1 (Berkeley) 6/10/93
 *
 * dc7085.h --
 *
 *	Definitions for the dc7085 chip.
 *
 *	Copyright (C) 1989 Digital Equipment Corporation.
 *	Permission to use, copy, modify, and distribute this software and
 *	its documentation for any purpose and without fee is hereby granted,
 *	provided that the above copyright notice appears in all copies.
 *	Digital Equipment Corporation makes no representations about the
 *	suitability of this software for any purpose.  It is provided "as is"
 *	without express or implied warranty.
 *
 * from: Header: /sprite/src/kernel/dev/ds3100.md/RCS/dc7085.h,
 *	
 *	v 1.4 89/08/15 19:52:46 rab Exp	 SPRITE (DECWRL)
 */

#ifndef _DC7085
#define _DC7085

typedef volatile struct dc7085regs {
	u_short dc_csr;		/* control and status (R/W) */
	u_short pad0;
	short	dc_rbuf_lpr;	/* receiver data (R), line params (W) */
	u_short pad1;
	u_short dc_tcr;		/* transmitter control (R/W) */
	u_short pad2;
	u_short dc_msr_tdr;	/* modem status (R), transmit data (W) */
} dcregs;
#define dc_rbuf dc_rbuf_lpr
#define dc_lpr	dc_rbuf_lpr
#define dc_msr	dc_msr_tdr
#define dc_tdr	dc_msr_tdr

/*
 * Control status register bits.
 */
#define CSR_TRDY	0x8000
#define CSR_TIE		0x4000		/* not avail on VS2000 */
#define CSR_TX_LINE_NUM 0x0300
#define CSR_RDONE	0x0080
#define CSR_RIE		0x0040		/* not avail on VS2000 */
#define CSR_MSE		0x0020
#define CSR_CLR		0x0010
#define CSR_MAINT	0x0008

/*
 * Receiver buffer register bits.
 */
#define RBUF_DVAL		0x8000
#define RBUF_OERR		0x4000
#define RBUF_FERR		0x2000
#define RBUF_PERR		0x1000
#define RBUF_LINE_NUM		0x0300
#define RBUF_LINE_NUM_SHIFT	8
#define RBUF_CHAR		0x00FF

/*
 * Transmit control register values.
 */
#define TCR_DTR2		0x0400
#define TCR_EN3			0x0008
#define TCR_EN2			0x0004
#define TCR_EN1			0x0002
#define TCR_EN0			0x0001

#define TCR_RTS2		0x0800		/* VS2000: LLBK_2 */
#define TCR_RTS3		0x0200		/* VS2000: DSRS_2 */
#define TCR_DTR3		0x0100		/* VS2000:  RTS_2 */

/*
 * Line parameter register bits.
 */
#define LPR_RXENAB	0x1000
#define LPR_B50		0x0000
#define LPR_B75		0x0100
#define LPR_B110	0x0200
#define LPR_B134	0x0300
#define LPR_B150	0x0400
#define LPR_B300	0x0500
#define LPR_B600	0x0600
#define LPR_B1200	0x0700
#define LPR_B1800	0x0800
#define LPR_B2000	0x0900
#define LPR_B2400	0x0A00
#define LPR_B3600	0x0B00
#define LPR_B4800	0x0C00
#define LPR_B7200	0x0D00
#define LPR_B9600	0x0E00
#define LPR_B19200	0x0F00
#define LPR_B38400	0x0F00
#define LPR_OPAR	0x0080
#define LPR_PARENB	0x0040
#define LPR_2_STOP	0x0020
#define LPR_8_BIT_CHAR	0x0018
#define LPR_7_BIT_CHAR	0x0010
#define LPR_6_BIT_CHAR	0x0008
#define LPR_5_BIT_CHAR	0x0000

/*
 * Modem status register bits.
 */
#define MSR_DSR2	0x0200

#define MSR_RI2		0x0800		/* VS2000: 0x0004 */
#define MSR_CD2		0x0400
#define MSR_CTS2	0x0100
#define MSR_RI3		0x0008		/* VS2000: not used/available */
#define MSR_CD3		0x0004		/* VS2000: RI2 */
#define MSR_DSR3	0x0002		/* VS2000: MBZ */
#define MSR_CTS3	0x0001		/* VS2000: TMI_2 */

/*
 * The four serial ports.
 */
#define DCKBD_PORT	0
#define DCMOUSE_PORT	1
#define DCCOMM_PORT	2
#define DCPRINTER_PORT	3

/* bits in dm lsr, copied from dmreg.h */
#define DML_DSR		0000400		/* data set ready, not a real DM bit */
#define DML_RNG		0000200		/* ring */
#define DML_CAR		0000100		/* carrier detect */
#define DML_CTS		0000040		/* clear to send */
#define DML_SR		0000020		/* secondary receive */
#define DML_ST		0000010		/* secondary transmit */
#define DML_RTS		0000004		/* request to send */
#define DML_DTR		0000002		/* data terminal ready */
#define DML_LE		0000001		/* line enable */

#endif /* _DC7085 */