1 #ifndef GVP11_H 2 3 /* $Id: gvp11.h,v 1.4 1997/01/19 23:07:12 davem Exp $ 4 * 5 * Header file for the GVP Series II SCSI controller for Linux 6 * 7 * Written and (C) 1993, Ralf Baechle, see gvp11.c for more info 8 * based on a2091.h (C) 1993 by Hamish Macdonald 9 * 10 */ 11 12 #include <linux/types.h> 13 14 int gvp11_detect(Scsi_Host_Template *); 15 int gvp11_release(struct Scsi_Host *); 16 const char *wd33c93_info(void); 17 int wd33c93_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *)); 18 int wd33c93_abort(Scsi_Cmnd *); 19 int wd33c93_reset(Scsi_Cmnd *, unsigned int); 20 21 #ifndef NULL 22 #define NULL 0 23 #endif 24 25 #ifndef CMD_PER_LUN 26 #define CMD_PER_LUN 2 27 #endif 28 29 #ifndef CAN_QUEUE 30 #define CAN_QUEUE 16 31 #endif 32 33 #ifdef HOSTS_C 34 35 #define GVP11_SCSI { proc_name: "GVP11", \ 36 name: "GVP Series II SCSI", \ 37 detect: gvp11_detect, \ 38 release: gvp11_release, \ 39 queuecommand: wd33c93_queuecommand, \ 40 abort: wd33c93_abort, \ 41 reset: wd33c93_reset, \ 42 can_queue: CAN_QUEUE, \ 43 this_id: 7, \ 44 sg_tablesize: SG_ALL, \ 45 cmd_per_lun: CMD_PER_LUN, \ 46 use_clustering: DISABLE_CLUSTERING } 47 #else 48 49 /* 50 * if the transfer address ANDed with this results in a non-zero 51 * result, then we can't use DMA. 52 */ 53 #define GVP11_XFER_MASK (0xff000001) 54 55 typedef struct { 56 unsigned char pad1[64]; 57 volatile unsigned short CNTR; 58 unsigned char pad2[31]; 59 volatile unsigned char SASR; 60 unsigned char pad3; 61 volatile unsigned char SCMD; 62 unsigned char pad4[4]; 63 volatile unsigned short BANK; 64 unsigned char pad5[6]; 65 volatile unsigned long ACR; 66 volatile unsigned short secret1; /* store 0 here */ 67 volatile unsigned short ST_DMA; 68 volatile unsigned short SP_DMA; 69 volatile unsigned short secret2; /* store 1 here */ 70 volatile unsigned short secret3; /* store 15 here */ 71 } gvp11_scsiregs; 72 73 /* bits in CNTR */ 74 #define GVP11_DMAC_BUSY (1<<0) 75 #define GVP11_DMAC_INT_PENDING (1<<1) 76 #define GVP11_DMAC_INT_ENABLE (1<<3) 77 #define GVP11_DMAC_DIR_WRITE (1<<4) 78 79 #endif /* else def HOSTS_C */ 80 81 #endif /* GVP11_H */ 82