2005-04-17 02:20:36 +04:00
# ifndef A3000_H
# define A3000_H
/* $Id: a3000.h,v 1.4 1997/01/19 23:07:10 davem Exp $
*
* Header file for the Amiga 3000 built - in SCSI controller for Linux
*
* Written and ( C ) 1993 , Hamish Macdonald , see a3000 . c for more info
*
*/
# include <linux/types.h>
2005-10-31 20:31:40 +03:00
int a3000_detect ( struct scsi_host_template * ) ;
2005-04-17 02:20:36 +04:00
int a3000_release ( struct Scsi_Host * ) ;
const char * wd33c93_info ( void ) ;
int wd33c93_queuecommand ( Scsi_Cmnd * , void ( * done ) ( Scsi_Cmnd * ) ) ;
int wd33c93_abort ( Scsi_Cmnd * ) ;
int wd33c93_reset ( Scsi_Cmnd * , unsigned int ) ;
# ifndef CMD_PER_LUN
# define CMD_PER_LUN 2
# endif
# ifndef CAN_QUEUE
# define CAN_QUEUE 16
# endif
/*
* if the transfer address ANDed with this results in a non - zero
* result , then we can ' t use DMA .
*/
# define A3000_XFER_MASK (0x00000003)
typedef struct {
unsigned char pad1 [ 2 ] ;
volatile unsigned short DAWR ;
volatile unsigned int WTC ;
unsigned char pad2 [ 2 ] ;
volatile unsigned short CNTR ;
volatile unsigned long ACR ;
unsigned char pad3 [ 2 ] ;
volatile unsigned short ST_DMA ;
unsigned char pad4 [ 2 ] ;
volatile unsigned short FLUSH ;
unsigned char pad5 [ 2 ] ;
volatile unsigned short CINT ;
unsigned char pad6 [ 2 ] ;
volatile unsigned short ISTR ;
unsigned char pad7 [ 30 ] ;
volatile unsigned short SP_DMA ;
unsigned char pad8 ;
volatile unsigned char SASR ;
unsigned char pad9 ;
volatile unsigned char SCMD ;
} a3000_scsiregs ;
# define DAWR_A3000 (3)
/* CNTR bits. */
# define CNTR_TCEN (1<<5)
# define CNTR_PREST (1<<4)
# define CNTR_PDMD (1<<3)
# define CNTR_INTEN (1<<2)
# define CNTR_DDIR (1<<1)
# define CNTR_IO_DX (1<<0)
/* ISTR bits. */
# define ISTR_INTX (1<<8)
# define ISTR_INT_F (1<<7)
# define ISTR_INTS (1<<6)
# define ISTR_E_INT (1<<5)
# define ISTR_INT_P (1<<4)
# define ISTR_UE_INT (1<<3)
# define ISTR_OE_INT (1<<2)
# define ISTR_FF_FLG (1<<1)
# define ISTR_FE_FLG (1<<0)
# endif /* A3000_H */