Annotation of sys/arch/aviion/dev/dartreg.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: dartreg.h,v 1.1.1.1 2006/05/09 18:24:15 miod Exp $ */
2:
3: #define MAXPORTS 2 /* max count of PORTS/DUART */
4:
5: #define A_PORT 0 /* flag for port a */
6: #define B_PORT 1 /* flag for port b */
7:
8: /* the access to the same command register must be delayed,
9: because the chip has some hardware problems in this case */
10: #define DELAY_CR do { volatile int i; for (i = 0; i < 250; ++i); } while (0)
11:
12: /*********************** MC68681 DEFINITIONS ************************/
13:
14: /* mode register 1: MR1x operations */
15: #define RXRTS 0x80 /* enable receiver RTS */
16: #define PAREN 0x00 /* with parity */
17: #define PARDIS 0x10 /* no parity */
18: #define EVENPAR 0x00 /* even parity */
19: #define ODDPAR 0x04 /* odd parity */
20: #define CL5 0x00 /* 5 bits per char */
21: #define CL6 0x01 /* 6 bits per char */
22: #define CL7 0x02 /* 7 bits per char */
23: #define CL8 0x03 /* 8 bits per char */
24: #define PARMODEMASK 0x18 /* parity mode mask */
25: #define PARTYPEMASK 0x04 /* parity type mask */
26: #define CLMASK 0x03 /* character length mask */
27:
28: /* mode register 2: MR2x operations */
29: #define TXRTS 0x20 /* enable transmitter RTS */
30: #define TXCTS 0x10 /* enable transmitter CTS */
31: #define SB2 0x0f /* 2 stop bits */
32: #define SB1 0x07 /* 1 stop bit */
33: #define SB1L5 0x00 /* 1 stop bit at 5 bits per character */
34:
35: #define SBMASK 0x0f /* stop bit mask */
36:
37: /* clock-select register: CSRx operations */
38: #define NOBAUD -1 /* 50 and 200 baud are not possible */
39: /* they are not in Baud register set 2 */
40: #define BD75 0x00 /* 75 baud */
41: #define BD110 0x11 /* 110 baud */
42: #define BD134 0x22 /* 134.5 baud */
43: #define BD150 0x33 /* 150 baud */
44: #define BD300 0x44 /* 300 baud */
45: #define BD600 0x55 /* 600 baud */
46: #define BD1200 0x66 /* 1200 baud */
47: #define BD1800 0xaa /* 1800 baud */
48: #define BD2400 0x88 /* 2400 baud */
49: #define BD4800 0x99 /* 4800 baud */
50: #define BD9600 0xbb /* 9600 baud */
51: #define BD19200 0xcc /* 19200 baud */
52:
53: #define DEFBAUD BD9600 /* default value if baudrate is not possible */
54:
55:
56: /* channel command register: CRx operations */
57: #define MRRESET 0x10 /* reset mr pointer to mr1 */
58: #define RXRESET 0x20 /* reset receiver */
59: #define TXRESET 0x30 /* reset transmitter */
60: #define ERRRESET 0x40 /* reset error status */
61: #define BRKINTRESET 0x50 /* reset channel's break interrupt */
62: #define BRKSTART 0x60 /* start break */
63: #define BRKSTOP 0x70 /* stop break */
64: #define TXDIS 0x08 /* disable transmitter */
65: #define TXEN 0x04 /* enable transmitter */
66: #define RXDIS 0x02 /* disable receiver */
67: #define RXEN 0x01 /* enable receiver */
68:
69: /* status register: SRx status */
70: #define RBRK 0x80 /* received break */
71: #define FRERR 0x40 /* frame error */
72: #define PERR 0x20 /* parity error */
73: #define ROVRN 0x10 /* receiver overrun error */
74: #define TXEMT 0x08 /* transmitter empty */
75: #define TXRDY 0x04 /* transmitter ready */
76: #define FFULL 0x02 /* receiver FIFO full */
77: #define RXRDY 0x01 /* receiver ready */
78:
79: /* output port configuration register: OPCR operations */
80: #define OPSET 0x00 /* set all op lines to op function */
81: #define OPSETTO 0x04 /* use OP3 for timer output */
82:
83: /* output port register: OP operations */
84: #define OPDTRB 0x20 /* DTR line output b on the VME188, 181, 141 */
85: #define OPDTRA 0x04 /* DTR line output a */
86: #define OPRTSB 0x02 /* RTS line output b */
87: #define OPRTSA 0x01 /* RTS line output a */
88:
89: /* auxiliary control register: ACR operations */
90: #define BDSET1 0x00 /* baudrate generator set 1 */
91: #define BDSET2 0x80 /* baudrate generator set 2 */
92: #define CCLK1 0x60 /* timer clock: external rate. TA */
93: #define CCLK16 0x30 /* counter clock: x1 clk divided by 16 */
94: #define SLCTIM 0x7800/* timer count to get 60 Hz time slice (16.6ms ticks) */
95: #define IPDCDIB 0x08 /* IP3 change == DCD input on port B */
96: #define IPDCDIA 0x04 /* IP2 change == DCD input on port A */
97:
98: /* input port change register: IPCR operations */
99: #define IPCRDCDB 0x80 /* IP3 change == DCD change on port B */
100: #define IPCRDCDA 0x40 /* IP2 change == DCD change on port A */
101:
102: /* Defines for mvme335 */
103: #define IPDCDB 0x20 /* DCD line input b */
104: #define IPDCDA 0x10 /* DCD line input a */
105:
106: #define IPDSRB 0x08 /* DSR line input b */
107: #define IPDSRA 0x04 /* DSR line input a */
108: #define IPCTSB 0x02 /* CTS line input b */
109: #define IPCTSA 0x01 /* CTS line input a */
110:
111: /* interrupt status and mask register: ISR status and IMR mask */
112: #define IIPCHG 0x80 /* input port change */
113: #define IBRKB 0x40 /* delta break b */
114: #define IRXRDYB 0x20 /* receiver ready b */
115: #define ITXRDYB 0x10 /* transmitter ready b */
116: #define ITIMER 0x08 /* Enable timer interrupts. */
117: #define IBRKA 0x04 /* delta break a */
118: #define IRXRDYA 0x02 /* receiver ready a */
119: #define ITXRDYA 0x01 /* transmitter ready a */
120:
121: /* interrupts from port a or b */
122: #define AINTPORT ( IRXRDYA | ITXRDYA )
123: #define BINTPORT ( IRXRDYB | ITXRDYB )
124:
125: /* HW write register index for ut_wr_regs[] */
126: #define MR1A 0 /* mode register 1 a */
127: #define CSRA 1 /* clock-select register a*/
128: #define CRA 2 /* command register a */
129: #define TBA 3 /* transmitter buffer a */
130: #define ACR 4 /* auxiliary control register*/
131: #define IMR 5 /* interrupt mask register */
132: #define CTUR 6 /* counter/timer upper reg */
133: #define CTLR 7 /* counter/timer lower reg */
134: #define MR1B 8 /* mode register 1 b */
135: #define CSRB 9 /* clock-select register b*/
136: #define CRB 10 /* command register b */
137: #define TBB 11 /* transmitter buffer b */
138: #define IVR 12 /* interrupt vector register */
139: #define OPCR 13 /* output port config reg */
140: #define OPRSET 14 /* output port: bit set cmd */
141: #define OPRRESET 15 /* output port: bit reset cmd */
142: #define MR2A 16 /* mode register 2 a */
143: #define MR2B 17 /* mode register 2 b */
144: #define MAXREG 18 /* max count of registers */
145:
146: /*
147: * MC68681 hardware registers.
148: */
149:
150: #define DART_MR1A 0x00 /* RW: mode register A */
151: #define DART_MR2A 0x00 /* RW: mode register A */
152: #define DART_SRA 0x01 /* R: status register A */
153: #define DART_CSRA 0x01 /* W: clock select register A */
154: #define DART_CRA 0x02 /* W: command register A */
155: #define DART_RBA 0x03 /* R: receiver buffer A */
156: #define DART_TBA 0x03 /* W: transmit buffer A */
157: #define DART_IPCR 0x04 /* R: input port change register */
158: #define DART_ACR 0x04 /* W: auxiliary control register */
159: #define DART_ISR 0x05 /* R: interrupt status register */
160: #define DART_IMR 0x05 /* W: interrupt mask register */
161: #define DART_CUR 0x06 /* R: count upper register */
162: #define DART_CTUR 0x06 /* W: counter/timer upper register */
163: #define DART_CLR 0x07 /* R: count lower register */
164: #define DART_CTLR 0x07 /* W: counter/timer lower register */
165: #define DART_MR1B 0x08 /* RW: mode register B */
166: #define DART_MR2B 0x08 /* RW: mode register B */
167: #define DART_SRB 0x09 /* R: status register B */
168: #define DART_CSRB 0x09 /* W: clock select register B */
169: #define DART_CRB 0x0a /* W: command register B */
170: #define DART_RBB 0x0b /* R: receiver buffer B */
171: #define DART_TBB 0x0b /* W: transmit buffer B */
172: #define DART_IVR 0x0c /* RW: interrupt vector register */
173: #define DART_IP 0x0d /* R: input port (unlatched) */
174: #define DART_OPCR 0x0d /* W: output port configuration register */
175: #define DART_CTSTART 0x0e /* R: start counter command */
176: #define DART_OPRS 0x0e /* W: output port bit set */
177: #define DART_CTSTOP 0x0f /* R: stop counter command */
178: #define DART_OPRR 0x0f /* W: output port bit reset */
179:
180: #define DART_A_BASE 0x00
181: #define DART_B_BASE 0x08
CVSweb