1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 21da177e4SLinus Torvalds #ifndef A3000_H 31da177e4SLinus Torvalds #define A3000_H 41da177e4SLinus Torvalds 51da177e4SLinus Torvalds /* $Id: a3000.h,v 1.4 1997/01/19 23:07:10 davem Exp $ 61da177e4SLinus Torvalds * 71da177e4SLinus Torvalds * Header file for the Amiga 3000 built-in SCSI controller for Linux 81da177e4SLinus Torvalds * 91da177e4SLinus Torvalds * Written and (C) 1993, Hamish Macdonald, see a3000.c for more info 101da177e4SLinus Torvalds * 111da177e4SLinus Torvalds */ 121da177e4SLinus Torvalds 131da177e4SLinus Torvalds #include <linux/types.h> 141da177e4SLinus Torvalds 151da177e4SLinus Torvalds #ifndef CMD_PER_LUN 161da177e4SLinus Torvalds #define CMD_PER_LUN 2 171da177e4SLinus Torvalds #endif 181da177e4SLinus Torvalds 191da177e4SLinus Torvalds #ifndef CAN_QUEUE 201da177e4SLinus Torvalds #define CAN_QUEUE 16 211da177e4SLinus Torvalds #endif 221da177e4SLinus Torvalds 231da177e4SLinus Torvalds /* 241da177e4SLinus Torvalds * if the transfer address ANDed with this results in a non-zero 251da177e4SLinus Torvalds * result, then we can't use DMA. 261da177e4SLinus Torvalds */ 271da177e4SLinus Torvalds #define A3000_XFER_MASK (0x00000003) 281da177e4SLinus Torvalds 29c57c1cabSGeert Uytterhoeven struct a3000_scsiregs { 301da177e4SLinus Torvalds unsigned char pad1[2]; 311da177e4SLinus Torvalds volatile unsigned short DAWR; 321da177e4SLinus Torvalds volatile unsigned int WTC; 331da177e4SLinus Torvalds unsigned char pad2[2]; 341da177e4SLinus Torvalds volatile unsigned short CNTR; 351da177e4SLinus Torvalds volatile unsigned long ACR; 361da177e4SLinus Torvalds unsigned char pad3[2]; 371da177e4SLinus Torvalds volatile unsigned short ST_DMA; 381da177e4SLinus Torvalds unsigned char pad4[2]; 391da177e4SLinus Torvalds volatile unsigned short FLUSH; 401da177e4SLinus Torvalds unsigned char pad5[2]; 411da177e4SLinus Torvalds volatile unsigned short CINT; 421da177e4SLinus Torvalds unsigned char pad6[2]; 431da177e4SLinus Torvalds volatile unsigned short ISTR; 441da177e4SLinus Torvalds unsigned char pad7[30]; 451da177e4SLinus Torvalds volatile unsigned short SP_DMA; 461da177e4SLinus Torvalds unsigned char pad8; 471da177e4SLinus Torvalds volatile unsigned char SASR; 481da177e4SLinus Torvalds unsigned char pad9; 491da177e4SLinus Torvalds volatile unsigned char SCMD; 50c57c1cabSGeert Uytterhoeven }; 511da177e4SLinus Torvalds 521da177e4SLinus Torvalds #define DAWR_A3000 (3) 531da177e4SLinus Torvalds 541da177e4SLinus Torvalds /* CNTR bits. */ 551da177e4SLinus Torvalds #define CNTR_TCEN (1<<5) 561da177e4SLinus Torvalds #define CNTR_PREST (1<<4) 571da177e4SLinus Torvalds #define CNTR_PDMD (1<<3) 581da177e4SLinus Torvalds #define CNTR_INTEN (1<<2) 591da177e4SLinus Torvalds #define CNTR_DDIR (1<<1) 601da177e4SLinus Torvalds #define CNTR_IO_DX (1<<0) 611da177e4SLinus Torvalds 621da177e4SLinus Torvalds /* ISTR bits. */ 631da177e4SLinus Torvalds #define ISTR_INTX (1<<8) 641da177e4SLinus Torvalds #define ISTR_INT_F (1<<7) 651da177e4SLinus Torvalds #define ISTR_INTS (1<<6) 661da177e4SLinus Torvalds #define ISTR_E_INT (1<<5) 671da177e4SLinus Torvalds #define ISTR_INT_P (1<<4) 681da177e4SLinus Torvalds #define ISTR_UE_INT (1<<3) 691da177e4SLinus Torvalds #define ISTR_OE_INT (1<<2) 701da177e4SLinus Torvalds #define ISTR_FF_FLG (1<<1) 711da177e4SLinus Torvalds #define ISTR_FE_FLG (1<<0) 721da177e4SLinus Torvalds 731da177e4SLinus Torvalds #endif /* A3000_H */ 74