xref: /netbsd-src/sys/dev/qbus/dlreg.h (revision 95e1ffb15694e54f29f8baaa4232152b703c2a5a)
1*95e1ffb1Schristos /*	$NetBSD: dlreg.h,v 1.6 2005/12/11 12:23:29 christos Exp $	*/
2e9a34e14Sragge /*
3e6f1ac08Sbjh21  * Ben Harris, 1997
4e9a34e14Sragge  *
5e6f1ac08Sbjh21  * This file is in the Public Domain.
6e9a34e14Sragge  */
7e9a34e14Sragge /*
8e9a34e14Sragge  * dlreg.h -- Definitions for the DL11 and DLV11 serial cards.
9e9a34e14Sragge  *
10e9a34e14Sragge  * Style in imitation of dzreg.h.
11e9a34e14Sragge  */
12e9a34e14Sragge 
13e9a34e14Sragge #ifdef notdef
14e9a34e14Sragge union w_b
15e9a34e14Sragge {
16e9a34e14Sragge 	u_short word;
17e9a34e14Sragge 	struct {
18e9a34e14Sragge 		u_char byte_lo;
19e9a34e14Sragge 		u_char byte_hi;
20e9a34e14Sragge 	} bytes;
21e9a34e14Sragge };
22e9a34e14Sragge 
23e9a34e14Sragge struct DLregs
24e9a34e14Sragge {
25e9a34e14Sragge 	volatile u_short dl_rcsr; /* Receive Control/Status Register (R/W) */
26e9a34e14Sragge 	volatile u_short dl_rbuf; /* Receive Buffer (R) */
27e9a34e14Sragge 	volatile u_short dl_xcsr; /* Transmit Control/Status Register (R/W) */
28e9a34e14Sragge 	volatile union w_b u_xbuf; /* Transmit Buffer (W) */
29e9a34e14Sragge #define dl_xbuf u_xbuf.bytes.byte_lo
30e9a34e14Sragge };
31e9a34e14Sragge 
32e9a34e14Sragge typedef struct DLregs dlregs;
33e9a34e14Sragge #endif
34e9a34e14Sragge 
35e9a34e14Sragge #define	DL_UBA_RCSR	0
36e9a34e14Sragge #define	DL_UBA_RBUF	2
37e9a34e14Sragge #define	DL_UBA_XCSR	4
38e9a34e14Sragge #define	DL_UBA_XBUFL	6
39e9a34e14Sragge 
40e9a34e14Sragge /* RCSR bits */
41e9a34e14Sragge 
42e9a34e14Sragge #define DL_RCSR_RX_DONE		0x0080 /* Receiver Done (R) */
43e9a34e14Sragge #define DL_RCSR_RXIE		0x0040 /* Receiver Interrupt Enable (R/W) */
44e9a34e14Sragge #define DL_RCSR_READER_ENABLE	0x0001 /* [paper-tape] Reader Enable (W) */
45e9a34e14Sragge #define DL_RCSR_BITS		"\20\1READER_ENABLE\7RXIE\10RX_DONE\n"
46e9a34e14Sragge 
47e9a34e14Sragge /* RBUF bits */
48e9a34e14Sragge 
49e9a34e14Sragge #define DL_RBUF_ERR		0x8000 /* Error (R) */
50e9a34e14Sragge #define DL_RBUF_OVERRUN_ERR	0x4000 /* Overrun Error (R) */
51e9a34e14Sragge #define DL_RBUF_FRAMING_ERR	0x2000 /* Framing Error (R) */
52e9a34e14Sragge #define DL_RBUF_PARITY_ERR	0x1000 /* Parity Error (R) */
53e9a34e14Sragge #define DL_RBUF_DATA_MASK	0x00FF /* Receive Data (R) */
54e9a34e14Sragge #define DL_RBUF_BITS	"\20\15PARITY_ERR\16FRAMING_ERR\17OVERRUN_ERR\20ERR\n"
55e9a34e14Sragge 
56e9a34e14Sragge /* XCSR bits */
57e9a34e14Sragge 
58e9a34e14Sragge #define DL_XCSR_TX_READY	0x0080 /* Transmitter Ready (R) */
59e9a34e14Sragge #define DL_XCSR_TXIE		0x0040 /* Transmit Interrupt Enable (R/W) */
60e9a34e14Sragge #define DL_XCSR_TX_BREAK	0x0001 /* Transmit Break (R/W) */
61e9a34e14Sragge #define DL_XCSR_BITS		"\20\1TX_BREAK\7TXIE\10TX_READY\n"
62e9a34e14Sragge 
63e9a34e14Sragge /* XBUF is just data byte right justified. */
64