11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef A3000_H 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define A3000_H 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* $Id: a3000.h,v 1.4 1997/01/19 23:07:10 davem Exp $ 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Header file for the Amiga 3000 built-in SCSI controller for Linux 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Written and (C) 1993, Hamish Macdonald, see a3000.c for more info 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/types.h> 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef CMD_PER_LUN 1521351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven#define CMD_PER_LUN 2 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef CAN_QUEUE 1921351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven#define CAN_QUEUE 16 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * if the transfer address ANDed with this results in a non-zero 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * result, then we can't use DMA. 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 2621351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven#define A3000_XFER_MASK (0x00000003) 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 28c57c1cab789e4d54fd767fb844e3a309c754e6edGeert Uytterhoevenstruct a3000_scsiregs { 2921351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven unsigned char pad1[2]; 3021351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven volatile unsigned short DAWR; 3121351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven volatile unsigned int WTC; 3221351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven unsigned char pad2[2]; 3321351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven volatile unsigned short CNTR; 3421351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven volatile unsigned long ACR; 3521351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven unsigned char pad3[2]; 3621351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven volatile unsigned short ST_DMA; 3721351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven unsigned char pad4[2]; 3821351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven volatile unsigned short FLUSH; 3921351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven unsigned char pad5[2]; 4021351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven volatile unsigned short CINT; 4121351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven unsigned char pad6[2]; 4221351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven volatile unsigned short ISTR; 4321351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven unsigned char pad7[30]; 4421351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven volatile unsigned short SP_DMA; 4521351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven unsigned char pad8; 4621351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven volatile unsigned char SASR; 4721351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven unsigned char pad9; 4821351013402ab4556d1ef62aed6cbe8dfb809f77Geert Uytterhoeven volatile unsigned char SCMD; 49c57c1cab789e4d54fd767fb844e3a309c754e6edGeert Uytterhoeven}; 501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DAWR_A3000 (3) 521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* CNTR bits. */ 541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CNTR_TCEN (1<<5) 551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CNTR_PREST (1<<4) 561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CNTR_PDMD (1<<3) 571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CNTR_INTEN (1<<2) 581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CNTR_DDIR (1<<1) 591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CNTR_IO_DX (1<<0) 601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* ISTR bits. */ 621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ISTR_INTX (1<<8) 631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ISTR_INT_F (1<<7) 641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ISTR_INTS (1<<6) 651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ISTR_E_INT (1<<5) 661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ISTR_INT_P (1<<4) 671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ISTR_UE_INT (1<<3) 681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ISTR_OE_INT (1<<2) 691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ISTR_FF_FLG (1<<1) 701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ISTR_FE_FLG (1<<0) 711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /* A3000_H */ 73