xref: /NextBSD/sys/dev/ic/wd33c93reg.h (revision eb1a5f8de9f7ea602c373a710f531abbf81141c4)
1 /* $FreeBSD$ */
2 /*	$NecBSD: wd33c93reg.h,v 1.21.24.1 2001/06/13 05:52:05 honda Exp $	*/
3 /*	$NetBSD$	*/
4 /*-
5  * [NetBSD for NEC PC-98 series]
6  *  Copyright (c) 1996, 1997, 1998
7  *	NetBSD/pc98 porting staff. All rights reserved.
8  *  Copyright (c) 1996, 1997, 1998
9  *	Naofumi Honda. All rights reserved.
10  *
11  *  Redistribution and use in source and binary forms, with or without
12  *  modification, are permitted provided that the following conditions
13  *  are met:
14  *  1. Redistributions of source code must retain the above copyright
15  *     notice, this list of conditions and the following disclaimer.
16  *  2. Redistributions in binary form must reproduce the above copyright
17  *     notice, this list of conditions and the following disclaimer in the
18  *     documentation and/or other materials provided with the distribution.
19  *  3. The name of the author may not be used to endorse or promote products
20  *     derived from this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
23  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
24  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
26  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
27  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
30  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32  * POSSIBILITY OF SUCH DAMAGE.
33  */
34 
35 #ifndef	_WD33C93REG_H_
36 #define	_WD33C93REG_H_
37 
38 /* wd33c93 register */
39 #define	wd3s_oid		0x00
40 #define	IDR_FS_16_20		0x80
41 #define	IDR_FS_12_15		0x40
42 #define	IDR_FS_8_10		0x00
43 #define	IDR_RAF			0x20
44 #define	IDR_EHP			0x10
45 #define	IDR_EAF			0x08
46 #define	IDR_IDM			0x07
47 
48 #define	wd3s_ctrl		0x01
49 #define	CR_DMA			0x80
50 #define	CR_DMAD			0x40
51 #define	CR_HLT_HOST_PARITY	0x10
52 #define	CR_DIS_INT		0x08
53 #define	CR_IDIS_INT		0x04
54 #define	CR_HLT_ATN		0x02
55 #define	CR_HLT_BUS_PARITY	0x01
56 #define	CR_DEFAULT		(CR_DIS_INT | CR_IDIS_INT)
57 #define	CR_DEFAULT_HP		(CR_DEFAULT | CR_HLT_BUS_PARITY)
58 
59 #define	wd3s_tout		0x02
60 #define	wd3s_cdb		0x03
61 #define	wd3s_lun		0x0f
62 #define	wd3s_cph		0x10
63 #define	wd3s_synch		0x11
64 #define	wd3s_cnt		0x12
65 #define	wd3s_did		0x15
66 #define	DIDR_SCC		0x80
67 #define	DIDR_DPD		0x40
68 
69 #define	wd3s_sid		0x16
70 #define	SIDR_RESEL		0x80
71 #define	SIDR_SEL		0x40
72 #define	SIDR_VALID		0x08
73 #define	SIDR_IDM		0x07
74 
75 #define	wd3s_stat		0x17
76 
77 #define	BSR_CM			0xf0
78 #define	BSR_CMDCPL		0x10
79 #define	BSR_CMDABT		0x20
80 #define	BSR_CMDERR		0x40
81 #define	BSR_CMDREQ		0x80
82 
83 #define	BSR_SM			0x0f
84 #define	BSR_PM			0x07
85 #define	BSR_PHVALID		0x08
86 #define	BSR_IOR			0x01
87 #define	BSR_DATAOUT		0x00
88 #define	BSR_DATAIN		0x01
89 #define	BSR_CMDOUT		0x02
90 #define	BSR_STATIN		0x03
91 #define	BSR_UNSPINFO0		0x04
92 #define	BSR_UNSPINFO1		0x05
93 #define	BSR_MSGOUT		0x06
94 #define	BSR_MSGIN		0x07
95 
96 #define	BSR_RESET		0x00
97 #define	BSR_AFM_RESET		0x01
98 #define	BSR_SELECTED		0x11
99 #define	BSR_SATFIN		0x16
100 #define	BSR_ACKREQ		0x20
101 #define	BSR_SATSDP		0x21
102 #define	BSR_RESEL		0x80
103 #define	BSR_AFM_RESEL		0x81
104 #define	BSR_DISC		0x85
105 
106 #define	wd3s_cmd		0x18
107 #define	wd3s_data		0x19
108 #define	wd3s_qtag		0x1a
109 
110 #define	wd3s_mbank		0x30
111 #define	MBR_RST			0x02
112 #define	MBR_IEN			0x04
113 
114 #define	wd3s_mwin		0x31
115 #define	wd3s_auxc		0x33
116 #define	AUXCR_HIDM		0x07
117 #define	AUXCR_INTM		0x38
118 #define	AUXCR_RRST		0x80
119 
120 /* status port */
121 #define	STR_INT			0x80
122 #define	STR_LCI			0x40
123 #define	STR_BSY			0x20
124 #define	STR_CIP			0x10
125 #define	STR_PE			0x02
126 #define	STR_DBR			0x01
127 #define	STR_BUSY		0xf0
128 
129 /* cmd port */
130 #define	CMDP_DMES		0x01
131 #define	CMDP_DMER		0x02
132 #define	CMDP_TCMS		0x04
133 #define	CMDP_TCMR		0x08
134 #define	CMDP_TCIR		0x10
135 
136 /* wd33c93 chip cmds */
137 #define	WD3S_SBT		0x80
138 #define	WD3S_RESET		0x00
139 #define	WD3S_ABORT		0x01
140 #define	WD3S_ASSERT_ATN		0x02
141 #define	WD3S_NEGATE_ACK		0x03
142 #define	WD3S_DISCONNECT		0x04
143 #define	WD3S_RESELECT		0x05
144 #define	WD3S_SELECT_ATN		0x06
145 #define	WD3S_SELECT_NO_ATN	0x07
146 #define	WD3S_SELECT_ATN_TFR	0x08
147 #define	WD3S_SELECT_NO_ATN_TFR	0x09
148 #define	WD3S_RESELECT_RCV_DATA	0x0a
149 #define	WD3S_RESELECT_SEND_DATA	0x0b
150 #define	WD3S_WAIT_SELECT_RCV	0x0c
151 #define	WD3S_CMD_COMPSEQ	0x0d
152 #define	WD3S_SEND_DISC_MSG	0x0e
153 #define	WD3S_SET_IDI		0x0f
154 #define	WD3S_RCV_CMD		0x10
155 #define	WD3S_RCV_DATA		0x11
156 #define	WD3S_RCV_MSG_OUT	0x12
157 #define	WD3S_RCV_UNSP_INFO_OUT	0x13
158 #define	WD3S_SEND_STATUS	0x14
159 #define	WD3S_SEND_DATA		0x15
160 #define	WD3S_SEND_MSG_IN	0x16
161 #define	WD3S_SEND_UNSP_INFO_IN	0x17
162 #define	WD3S_TRANSLATE_ADDRESS	0x18
163 #define	WD3S_TFR_INFO		0x20
164 
165 #endif	/* !_WD33C93REG_H_ */
166