xref: /openbmc/linux/drivers/scsi/atp870u.h (revision d0034a7a4ac7fae708146ac0059b9c47a1543f0d)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
21da177e4SLinus Torvalds #ifndef _ATP870U_H
31da177e4SLinus Torvalds #define _ATP870U_H
41da177e4SLinus Torvalds 
51da177e4SLinus Torvalds #include <linux/types.h>
61da177e4SLinus Torvalds #include <linux/kdev_t.h>
71da177e4SLinus Torvalds 
81da177e4SLinus Torvalds /* I/O Port */
91da177e4SLinus Torvalds 
101da177e4SLinus Torvalds #define MAX_CDB		12
111da177e4SLinus Torvalds #define MAX_SENSE	14
121da177e4SLinus Torvalds #define qcnt		32
131da177e4SLinus Torvalds #define ATP870U_SCATTER	128
141da177e4SLinus Torvalds 
151da177e4SLinus Torvalds #define MAX_ADAPTER	8
161da177e4SLinus Torvalds #define MAX_SCSI_ID	16
171da177e4SLinus Torvalds #define ATP870U_MAX_SECTORS 128
181da177e4SLinus Torvalds 
191da177e4SLinus Torvalds #define ATP885_DEVID 0x808A
201da177e4SLinus Torvalds #define ATP880_DEVID1 0x8080
211da177e4SLinus Torvalds #define ATP880_DEVID2 0x8081
221da177e4SLinus Torvalds 
231da177e4SLinus Torvalds //#define ED_DBGP
241da177e4SLinus Torvalds 
251da177e4SLinus Torvalds struct atp_unit
261da177e4SLinus Torvalds {
271da177e4SLinus Torvalds 	unsigned long baseport;
281da177e4SLinus Torvalds 	unsigned long ioport[2];
291da177e4SLinus Torvalds 	unsigned long pciport[2];
301da177e4SLinus Torvalds 	unsigned char last_cmd[2];
311da177e4SLinus Torvalds 	unsigned char in_snd[2];
321da177e4SLinus Torvalds 	unsigned char in_int[2];
331da177e4SLinus Torvalds 	unsigned char quhd[2];
341da177e4SLinus Torvalds 	unsigned char quend[2];
351da177e4SLinus Torvalds 	unsigned char global_map[2];
361da177e4SLinus Torvalds 	unsigned char host_id[2];
371da177e4SLinus Torvalds 	unsigned int working[2];
381da177e4SLinus Torvalds 	unsigned short wide_id[2];
391da177e4SLinus Torvalds 	unsigned short active_id[2];
401da177e4SLinus Torvalds 	unsigned short ultra_map[2];
411da177e4SLinus Torvalds 	unsigned short async[2];
421da177e4SLinus Torvalds 	unsigned char sp[2][16];
431da177e4SLinus Torvalds 	unsigned char r1f[2][16];
441da177e4SLinus Torvalds 	struct scsi_cmnd *quereq[2][qcnt];
451da177e4SLinus Torvalds 	struct atp_id
461da177e4SLinus Torvalds 	{
471da177e4SLinus Torvalds 		unsigned char dirct;
481da177e4SLinus Torvalds 		unsigned char devsp;
491da177e4SLinus Torvalds 		unsigned char devtype;
501da177e4SLinus Torvalds 		unsigned long tran_len;
511da177e4SLinus Torvalds 		unsigned long last_len;
521da177e4SLinus Torvalds 		unsigned char *prd_pos;
53b5683557SJames Bottomley 		unsigned char *prd_table;	/* Kernel address of PRD table */
54b5683557SJames Bottomley 		dma_addr_t prd_bus;		/* Bus address of PRD */
55b5683557SJames Bottomley 		dma_addr_t prdaddr;		/* Dynamically updated in driver */
561da177e4SLinus Torvalds 		struct scsi_cmnd *curr_req;
571da177e4SLinus Torvalds 	} id[2][16];
581da177e4SLinus Torvalds 	struct Scsi_Host *host;
591da177e4SLinus Torvalds 	struct pci_dev *pdev;
601da177e4SLinus Torvalds 	unsigned int unit;
611da177e4SLinus Torvalds };
621da177e4SLinus Torvalds 
631da177e4SLinus Torvalds #endif
64