date and time created 92/12/13 03:50:30 by akito
[unix-history] / usr / src / sys / luna68k / stand / sioreg.h
CommitLineData
306c50ff
AF
1/*
2 * Copyright (c) 1992 OMRON Corporation.
3 * Copyright (c) 1992 The Regents of the University of California.
4 * All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * OMRON Corporation.
8 *
9 * %sccs.include.redist.c%
10 *
11 * @(#)sioreg.h 7.1 (Berkeley) %G%
12 */
13
14/* sioreg.h NOV-26-1991 */
15
16struct siodevice {
17 volatile u_char sio_data;
18 u_char sio_pad1;
19 volatile u_char sio_cmd;
20 u_char sio_pad2;
21};
22
23#define sio_stat sio_cmd
24
25#define splsio spl6
26
27
28#define REG(u, r) ( (u << 4) | r )
29#define CHANNEL(r) ( r >> 4 )
30#define REGNO(r) ( r & 0x07 )
31#define isStatusReg(r) ( r & 0x08 )
32
33#define WR0 0x00
34#define WR1 0x01
35#define WR2 0x02
36#define WR3 0x03
37#define WR4 0x04
38#define WR5 0x05
39#define WR6 0x06
40#define WR7 0x07
41
42#define WR2A 0x02
43#define WR2B 0x12
44
45#define RR0 0x08
46#define RR1 0x09
47#define RR2 0x0A
48#define RR3 0x0B
49#define RR4 0x0C
50
51#define RR2A 0x0A
52#define RR2B 0x1A
53
54#define WR0_NOP 0x00 /* No Operation */
55#define WR0_SNDABRT 0x08 /* Send Abort (HDLC) */
56#define WR0_RSTINT 0x10 /* Reset External/Status Interrupt */
57#define WR0_CHANRST 0x18 /* Channel Reset */
58#define WR0_INTNXT 0x20 /* Enable Interrupt on Next Receive Character */
59#define WR0_RSTPEND 0x28 /* Reset Transmitter Interrput/DMA Pending */
60#define WR0_ERRRST 0x30 /* Error Reset */
61#define WR0_ENDINTR 0x38 /* End of Interrupt */
62
63#define WR1_ESENBL 0x01 /* External/Status Interrupt Enable */
64#define WR1_TXENBL 0x02 /* Tx Interrupt/DMA Enable */
65#define WR1_STATVEC 0x04 /* Status Affects Vector (Only Chan-B) */
66#define WR1_RXDSEBL 0x00 /* Rx Interrupt/DMA Disable */
67#define WR1_RXFIRST 0x08 /* Interrupt only First Character Received */
68#define WR1_RXALLS 0x10 /* Interrupt Every Characters Received (with Special Char.) */
69#define WR1_RXALL 0x18 /* Interrupt Every Characters Received (without Special Char.) */
70
71#define WR2_INTR_0 0x00 /* Interrupt Priority: RxA TxA RxB TxB E/SA E/SA */
72#define WR2_INTR_1 0x04 /* Interrupt Priority: RxA RxB TxA TxB E/SA E/SA */
73#define WR2_VEC85_1 0x00 /* 8085 Vectored Mode - 1 */
74#define WR2_VEC85_2 0x08 /* 8085 Vectored Mode - 2 */
75#define WR2_VEC86 0x10 /* 8086 Vectored */
76#define WR2_VEC85_3 0x18 /* 8085 Vectored Mode - 3 */
77
78#define WR3_RXENBL 0x01 /* Rx Enable */
79#define WR3_RXCRC 0x08 /* Rx CRC Check */
80#define WR3_AUTOEBL 0x20 /* Auto Enable (flow control for MODEM) */
81#define WR3_RX5BIT 0x00 /* Rx Bits/Character: 5 Bits */
82#define WR3_RX7BIT 0x40 /* Rx Bits/Character: 7 Bits */
83#define WR3_RX6BIT 0x80 /* Rx Bits/Character: 6 Bits */
84#define WR3_RX8BIT 0xc0 /* Rx Bits/Character: 8 Bits */
85
86#define WR4_NPARITY 0x00 /* No Parity */
87#define WR4_OPARITY 0x01 /* Parity Odd */
88#define WR4_EPARITY 0x02 /* Parity Even */
89#define WR4_STOP1 0x04 /* Stop Bits (1bit) */
90#define WR4_STOP15 0x08 /* Stop Bits (1.5bit) */
91#define WR4_STOP2 0x0c /* Stop Bits (2bit) */
92#define WR4_BAUD96 0x40 /* Clock Rate (9600 BAUD) */
93#define WR4_BAUD48 0x80 /* Clock Rate (4800 BAUD) */
94#define WR4_BAUD24 0xc0 /* Clock Rate (2400 BAUD) */
95
96#define WR5_TXCRC 0x01 /* Tx CRC Check */
97#define WR5_REQSND 0x02 /* Request To Send (LOW) */
98#define WR5_TXENBL 0x08 /* Transmit Enable */
99#define WR5_BREAK 0x10 /* Send Break */
100#define WR5_TX5BIT 0x00 /* Tx Bits/Character: 5 Bits */
101#define WR5_TX7BIT 0x20 /* Tx Bits/Character: 7 Bits */
102#define WR5_TX6BIT 0x40 /* Tx Bits/Character: 6 Bits */
103#define WR5_TX8BIT 0x60 /* Tx Bits/Character: 8 Bits */
104
105#define RR0_RXAVAIL 0x01 /* Rx Character Available */
106#define RR0_INTRPEND 0x02 /* Interrupt Pending (Channel-A Only) */
107#define RR0_TXEMPTY 0x04 /* Tx Buffer Empty */
108#define RR0_BREAK 0x80 /* Break Detected */
109
110#define RR1_PARITY 0x10 /* Parity Error */
111#define RR1_OVERRUN 0x20 /* Data Over Run */
112#define RR1_FRAMING 0x40 /* Framing Error */