xref: /OK3568_Linux_fs/kernel/drivers/scsi/atp870u.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef _ATP870U_H
3*4882a593Smuzhiyun #define _ATP870U_H
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #include <linux/types.h>
6*4882a593Smuzhiyun #include <linux/kdev_t.h>
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun /* I/O Port */
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #define MAX_CDB 	12
11*4882a593Smuzhiyun #define MAX_SENSE 	14
12*4882a593Smuzhiyun #define qcnt	       	32
13*4882a593Smuzhiyun #define ATP870U_SCATTER 	128
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun #define MAX_ADAPTER	8
16*4882a593Smuzhiyun #define MAX_SCSI_ID	16
17*4882a593Smuzhiyun #define ATP870U_MAX_SECTORS 128
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun #define ATP885_DEVID 0x808A
20*4882a593Smuzhiyun #define ATP880_DEVID1 0x8080
21*4882a593Smuzhiyun #define ATP880_DEVID2 0x8081
22*4882a593Smuzhiyun 
23*4882a593Smuzhiyun //#define ED_DBGP
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun struct atp_unit
26*4882a593Smuzhiyun {
27*4882a593Smuzhiyun 	unsigned long baseport;
28*4882a593Smuzhiyun 	unsigned long ioport[2];
29*4882a593Smuzhiyun 	unsigned long pciport[2];
30*4882a593Smuzhiyun 	unsigned char last_cmd[2];
31*4882a593Smuzhiyun 	unsigned char in_snd[2];
32*4882a593Smuzhiyun 	unsigned char in_int[2];
33*4882a593Smuzhiyun 	unsigned char quhd[2];
34*4882a593Smuzhiyun 	unsigned char quend[2];
35*4882a593Smuzhiyun 	unsigned char global_map[2];
36*4882a593Smuzhiyun 	unsigned char host_id[2];
37*4882a593Smuzhiyun 	unsigned int working[2];
38*4882a593Smuzhiyun 	unsigned short wide_id[2];
39*4882a593Smuzhiyun 	unsigned short active_id[2];
40*4882a593Smuzhiyun 	unsigned short ultra_map[2];
41*4882a593Smuzhiyun 	unsigned short async[2];
42*4882a593Smuzhiyun 	unsigned char sp[2][16];
43*4882a593Smuzhiyun 	unsigned char r1f[2][16];
44*4882a593Smuzhiyun 	struct scsi_cmnd *quereq[2][qcnt];
45*4882a593Smuzhiyun 	struct atp_id
46*4882a593Smuzhiyun 	{
47*4882a593Smuzhiyun 		unsigned char dirct;
48*4882a593Smuzhiyun 		unsigned char devsp;
49*4882a593Smuzhiyun 		unsigned char devtype;
50*4882a593Smuzhiyun 		unsigned long tran_len;
51*4882a593Smuzhiyun 		unsigned long last_len;
52*4882a593Smuzhiyun 		unsigned char *prd_pos;
53*4882a593Smuzhiyun 		unsigned char *prd_table;	/* Kernel address of PRD table */
54*4882a593Smuzhiyun 		dma_addr_t prd_bus;		/* Bus address of PRD */
55*4882a593Smuzhiyun 		dma_addr_t prdaddr;		/* Dynamically updated in driver */
56*4882a593Smuzhiyun 		struct scsi_cmnd *curr_req;
57*4882a593Smuzhiyun 	} id[2][16];
58*4882a593Smuzhiyun     	struct Scsi_Host *host;
59*4882a593Smuzhiyun     	struct pci_dev *pdev;
60*4882a593Smuzhiyun 	unsigned int unit;
61*4882a593Smuzhiyun };
62*4882a593Smuzhiyun 
63*4882a593Smuzhiyun #endif
64