| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef A3000_H | 
|  | 2 | #define A3000_H | 
|  | 3 |  | 
|  | 4 | /* $Id: a3000.h,v 1.4 1997/01/19 23:07:10 davem Exp $ | 
|  | 5 | * | 
|  | 6 | * Header file for the Amiga 3000 built-in SCSI controller for Linux | 
|  | 7 | * | 
|  | 8 | * Written and (C) 1993, Hamish Macdonald, see a3000.c for more info | 
|  | 9 | * | 
|  | 10 | */ | 
|  | 11 |  | 
|  | 12 | #include <linux/types.h> | 
|  | 13 |  | 
| Christoph Hellwig | d0be4a7d | 2005-10-31 18:31:40 +0100 | [diff] [blame] | 14 | int a3000_detect(struct scsi_host_template *); | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 15 | int a3000_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 CMD_PER_LUN | 
|  | 22 | #define CMD_PER_LUN 2 | 
|  | 23 | #endif | 
|  | 24 |  | 
|  | 25 | #ifndef CAN_QUEUE | 
|  | 26 | #define CAN_QUEUE 16 | 
|  | 27 | #endif | 
|  | 28 |  | 
|  | 29 | /* | 
|  | 30 | * if the transfer address ANDed with this results in a non-zero | 
|  | 31 | * result, then we can't use DMA. | 
|  | 32 | */ | 
|  | 33 | #define A3000_XFER_MASK  (0x00000003) | 
|  | 34 |  | 
|  | 35 | typedef struct { | 
|  | 36 | unsigned char      pad1[2]; | 
|  | 37 | volatile unsigned short     DAWR; | 
|  | 38 | volatile unsigned int       WTC; | 
|  | 39 | unsigned char      pad2[2]; | 
|  | 40 | volatile unsigned short     CNTR; | 
|  | 41 | volatile unsigned long      ACR; | 
|  | 42 | unsigned char      pad3[2]; | 
|  | 43 | volatile unsigned short     ST_DMA; | 
|  | 44 | unsigned char      pad4[2]; | 
|  | 45 | volatile unsigned short     FLUSH; | 
|  | 46 | unsigned char      pad5[2]; | 
|  | 47 | volatile unsigned short     CINT; | 
|  | 48 | unsigned char      pad6[2]; | 
|  | 49 | volatile unsigned short     ISTR; | 
|  | 50 | unsigned char      pad7[30]; | 
|  | 51 | volatile unsigned short     SP_DMA; | 
|  | 52 | unsigned char      pad8; | 
|  | 53 | volatile unsigned char      SASR; | 
|  | 54 | unsigned char      pad9; | 
|  | 55 | volatile unsigned char      SCMD; | 
|  | 56 | } a3000_scsiregs; | 
|  | 57 |  | 
|  | 58 | #define DAWR_A3000		(3) | 
|  | 59 |  | 
|  | 60 | /* CNTR bits. */ | 
|  | 61 | #define CNTR_TCEN		(1<<5) | 
|  | 62 | #define CNTR_PREST		(1<<4) | 
|  | 63 | #define CNTR_PDMD		(1<<3) | 
|  | 64 | #define CNTR_INTEN		(1<<2) | 
|  | 65 | #define CNTR_DDIR		(1<<1) | 
|  | 66 | #define CNTR_IO_DX		(1<<0) | 
|  | 67 |  | 
|  | 68 | /* ISTR bits. */ | 
|  | 69 | #define ISTR_INTX		(1<<8) | 
|  | 70 | #define ISTR_INT_F		(1<<7) | 
|  | 71 | #define ISTR_INTS		(1<<6) | 
|  | 72 | #define ISTR_E_INT		(1<<5) | 
|  | 73 | #define ISTR_INT_P		(1<<4) | 
|  | 74 | #define ISTR_UE_INT		(1<<3) | 
|  | 75 | #define ISTR_OE_INT		(1<<2) | 
|  | 76 | #define ISTR_FF_FLG		(1<<1) | 
|  | 77 | #define ISTR_FE_FLG		(1<<0) | 
|  | 78 |  | 
|  | 79 | #endif /* A3000_H */ |