178209Snyan/* $FreeBSD$ */
278209Snyan/*	$NecBSD: wd33c93reg.h,v 1.21.24.1 2001/06/13 05:52:05 honda Exp $	*/
378209Snyan/*	$NetBSD$	*/
4139749Simp/*-
578209Snyan * [NetBSD for NEC PC-98 series]
678209Snyan *  Copyright (c) 1996, 1997, 1998
778209Snyan *	NetBSD/pc98 porting staff. All rights reserved.
878209Snyan *  Copyright (c) 1996, 1997, 1998
978209Snyan *	Naofumi Honda. All rights reserved.
1078209Snyan *
1178209Snyan *  Redistribution and use in source and binary forms, with or without
1278209Snyan *  modification, are permitted provided that the following conditions
1378209Snyan *  are met:
1478209Snyan *  1. Redistributions of source code must retain the above copyright
1578209Snyan *     notice, this list of conditions and the following disclaimer.
1678209Snyan *  2. Redistributions in binary form must reproduce the above copyright
1778209Snyan *     notice, this list of conditions and the following disclaimer in the
1878209Snyan *     documentation and/or other materials provided with the distribution.
1978209Snyan *  3. The name of the author may not be used to endorse or promote products
2078209Snyan *     derived from this software without specific prior written permission.
2178209Snyan *
2278209Snyan * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
2378209Snyan * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
2478209Snyan * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2578209Snyan * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
2678209Snyan * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2778209Snyan * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2878209Snyan * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2978209Snyan * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
3078209Snyan * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
3178209Snyan * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
3278209Snyan * POSSIBILITY OF SUCH DAMAGE.
3378209Snyan */
3478209Snyan
3578209Snyan#ifndef	_WD33C93REG_H_
3678209Snyan#define	_WD33C93REG_H_
3778209Snyan
3878209Snyan/* wd33c93 register */
3978209Snyan#define	wd3s_oid		0x00
4078209Snyan#define	IDR_FS_16_20		0x80
4178209Snyan#define	IDR_FS_12_15		0x40
4278209Snyan#define	IDR_FS_8_10		0x00
4378209Snyan#define	IDR_RAF			0x20
4478209Snyan#define	IDR_EHP			0x10
4578209Snyan#define	IDR_EAF			0x08
4678209Snyan#define	IDR_IDM			0x07
4778209Snyan
4878209Snyan#define	wd3s_ctrl		0x01
4978209Snyan#define	CR_DMA			0x80
5078209Snyan#define	CR_DMAD			0x40
5178209Snyan#define	CR_HLT_HOST_PARITY	0x10
5278209Snyan#define	CR_DIS_INT		0x08
5378209Snyan#define	CR_IDIS_INT		0x04
5478209Snyan#define	CR_HLT_ATN		0x02
5578209Snyan#define	CR_HLT_BUS_PARITY	0x01
5678209Snyan#define	CR_DEFAULT		(CR_DIS_INT | CR_IDIS_INT)
5778209Snyan#define	CR_DEFAULT_HP		(CR_DEFAULT | CR_HLT_BUS_PARITY)
5878209Snyan
5978209Snyan#define	wd3s_tout		0x02
6078209Snyan#define	wd3s_cdb		0x03
6178209Snyan#define	wd3s_lun		0x0f
6278209Snyan#define	wd3s_cph		0x10
6378209Snyan#define	wd3s_synch		0x11
6478209Snyan#define	wd3s_cnt		0x12
6578209Snyan#define	wd3s_did		0x15
6678209Snyan#define	DIDR_SCC		0x80
6778209Snyan#define	DIDR_DPD		0x40
6878209Snyan
6978209Snyan#define	wd3s_sid		0x16
7078209Snyan#define	SIDR_RESEL		0x80
7178209Snyan#define	SIDR_SEL		0x40
7278209Snyan#define	SIDR_VALID		0x08
7378209Snyan#define	SIDR_IDM		0x07
7478209Snyan
7578209Snyan#define	wd3s_stat		0x17
7678209Snyan
7778209Snyan#define	BSR_CM			0xf0
7878209Snyan#define	BSR_CMDCPL		0x10
7978209Snyan#define	BSR_CMDABT		0x20
8078209Snyan#define	BSR_CMDERR		0x40
8178209Snyan#define	BSR_CMDREQ		0x80
8278209Snyan
8378209Snyan#define	BSR_SM			0x0f
8478209Snyan#define	BSR_PM			0x07
8578209Snyan#define	BSR_PHVALID		0x08
8678209Snyan#define	BSR_IOR			0x01
8778209Snyan#define	BSR_DATAOUT		0x00
8878209Snyan#define	BSR_DATAIN		0x01
8978209Snyan#define	BSR_CMDOUT		0x02
9078209Snyan#define	BSR_STATIN		0x03
9178209Snyan#define	BSR_UNSPINFO0		0x04
9278209Snyan#define	BSR_UNSPINFO1		0x05
9378209Snyan#define	BSR_MSGOUT		0x06
9478209Snyan#define	BSR_MSGIN		0x07
9578209Snyan
9678209Snyan#define	BSR_RESET		0x00
9778209Snyan#define	BSR_AFM_RESET		0x01
9878209Snyan#define	BSR_SELECTED		0x11
9978209Snyan#define	BSR_SATFIN		0x16
10078209Snyan#define	BSR_ACKREQ		0x20
10178209Snyan#define	BSR_SATSDP		0x21
10278209Snyan#define	BSR_RESEL		0x80
10378209Snyan#define	BSR_AFM_RESEL		0x81
10478209Snyan#define	BSR_DISC		0x85
10578209Snyan
10678209Snyan#define	wd3s_cmd		0x18
10778209Snyan#define	wd3s_data		0x19
10878209Snyan#define	wd3s_qtag		0x1a
10978209Snyan
11078209Snyan#define	wd3s_mbank		0x30
11178209Snyan#define	MBR_RST			0x02
11278209Snyan#define	MBR_IEN			0x04
11378209Snyan
11478209Snyan#define	wd3s_mwin		0x31
11578209Snyan#define	wd3s_auxc		0x33
11678209Snyan#define	AUXCR_HIDM		0x07
11778209Snyan#define	AUXCR_INTM		0x38
11878209Snyan#define	AUXCR_RRST		0x80
11978209Snyan
12078209Snyan/* status port */
12178209Snyan#define	STR_INT			0x80
12278209Snyan#define	STR_LCI			0x40
12378209Snyan#define	STR_BSY			0x20
12478209Snyan#define	STR_CIP			0x10
12578209Snyan#define	STR_PE			0x02
12678209Snyan#define	STR_DBR			0x01
12778209Snyan#define	STR_BUSY		0xf0
12878209Snyan
12978209Snyan/* cmd port */
13078209Snyan#define	CMDP_DMES		0x01
13178209Snyan#define	CMDP_DMER		0x02
13278209Snyan#define	CMDP_TCMS		0x04
13378209Snyan#define	CMDP_TCMR		0x08
13478209Snyan#define	CMDP_TCIR		0x10
13578209Snyan
13678209Snyan/* wd33c93 chip cmds */
13778209Snyan#define	WD3S_SBT		0x80
13878209Snyan#define	WD3S_RESET		0x00
13978209Snyan#define	WD3S_ABORT		0x01
14078209Snyan#define	WD3S_ASSERT_ATN		0x02
14178209Snyan#define	WD3S_NEGATE_ACK		0x03
14278209Snyan#define	WD3S_DISCONNECT		0x04
14378209Snyan#define	WD3S_RESELECT		0x05
14478209Snyan#define	WD3S_SELECT_ATN		0x06
14578209Snyan#define	WD3S_SELECT_NO_ATN	0x07
14678209Snyan#define	WD3S_SELECT_ATN_TFR	0x08
14778209Snyan#define	WD3S_SELECT_NO_ATN_TFR	0x09
14878209Snyan#define	WD3S_RESELECT_RCV_DATA	0x0a
14978209Snyan#define	WD3S_RESELECT_SEND_DATA	0x0b
15078209Snyan#define	WD3S_WAIT_SELECT_RCV	0x0c
15178209Snyan#define	WD3S_CMD_COMPSEQ	0x0d
15278209Snyan#define	WD3S_SEND_DISC_MSG	0x0e
15378209Snyan#define	WD3S_SET_IDI		0x0f
15478209Snyan#define	WD3S_RCV_CMD		0x10
15578209Snyan#define	WD3S_RCV_DATA		0x11
15678209Snyan#define	WD3S_RCV_MSG_OUT	0x12
15778209Snyan#define	WD3S_RCV_UNSP_INFO_OUT	0x13
15878209Snyan#define	WD3S_SEND_STATUS	0x14
15978209Snyan#define	WD3S_SEND_DATA		0x15
16078209Snyan#define	WD3S_SEND_MSG_IN	0x16
16178209Snyan#define	WD3S_SEND_UNSP_INFO_IN	0x17
16278209Snyan#define	WD3S_TRANSLATE_ADDRESS	0x18
16378209Snyan#define	WD3S_TFR_INFO		0x20
16478209Snyan
16578209Snyan#endif	/* !_WD33C93REG_H_ */
166