1 #ifndef ZALON7XX_H
2 #define ZALON7XX_H
3 
4 #include <linux/types.h>
5 
6 #include "sym53c8xx_defs.h"
7 
8 extern int zalon7xx_detect(Scsi_Host_Template *);
9 
10 #include <scsi/scsicam.h>
11 
12 extern struct proc_dir_entry proc_scsi_zalon7xx;
13 
14 /* borrowed from drivers/scsi/ncr53c8xx.h */
15 int ncr53c8xx_abort(Scsi_Cmnd *);
16 int zalon7xx_detect(Scsi_Host_Template *tpnt);
17 const char *ncr53c8xx_info(struct Scsi_Host *host);
18 int ncr53c8xx_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
19 int ncr53c8xx_reset(Scsi_Cmnd *, unsigned int);
20 
21 #ifdef MODULE
22 int zalon7xx_release(struct Scsi_Host *);
23 #else
24 #define zalon7xx_release NULL
25 #endif
26 
27 #define SCSI_ZALON { proc_name:		"zalon720",	\
28 			detect:         zalon7xx_detect,	\
29 			release:        zalon7xx_release,	\
30 			info:           ncr53c8xx_info, 	\
31 			queuecommand:   ncr53c8xx_queue_command,\
32 			abort:          ncr53c8xx_abort,	\
33 			reset:          ncr53c8xx_reset,	\
34 			bios_param:     scsicam_bios_param,	\
35 			can_queue:      SCSI_NCR_CAN_QUEUE,	\
36 			this_id:        7,			\
37 			sg_tablesize:   SCSI_NCR_SG_TABLESIZE,	\
38 			cmd_per_lun:    SCSI_NCR_CMD_PER_LUN,	\
39 			use_clustering: DISABLE_CLUSTERING}
40 
41 
42 #define GSC_SCSI_ZALON_OFFSET 0x800
43 
44 #define IO_MODULE_EIM		(1*4)
45 #define IO_MODULE_DC_ADATA	(2*4)
46 #define IO_MODULE_II_CDATA	(3*4)
47 #define IO_MODULE_IO_COMMAND	(12*4)
48 #define IO_MODULE_IO_STATUS	(13*4)
49 
50 #define IOSTATUS_RY             0x40
51 #define IOSTATUS_FE             0x80
52 #define IOIIDATA_SMINT5L        0x40000000
53 #define IOIIDATA_MINT5EN        0x20000000
54 #define IOIIDATA_PACKEN         0x10000000
55 #define IOIIDATA_PREFETCHEN     0x08000000
56 #define IOIIDATA_IOII           0x00000020
57 
58 #define CMD_RESET		5
59 
60 #endif /* ZALON7XX_H */
61