|
|
1.1 ! root 1: #ifndef _IN2000_H ! 2: ! 3: /* $Id: in2000.h,v 1.1.1.1 1997/02/25 21:27:50 thomas Exp $ ! 4: * ! 5: * Header file for the Always IN 2000 driver for Linux ! 6: * ! 7: */ ! 8: ! 9: #include <linux/types.h> ! 10: #include <linux/ioport.h> ! 11: ! 12: /* The IN-2000 is based on a WD33C93 */ ! 13: ! 14: #define INSTAT (base + 0x0) /* R: Auxiliary Status; W: register select */ ! 15: #define INDATA (base + 0x1) /* R/W: Data port */ ! 16: #define INFIFO (base + 0x2) /* R/W FIFO, Word access only */ ! 17: #define INREST (base + 0x3) /* W: Reset everything */ ! 18: #define INFCNT (base + 0x4) /* R: FIFO byte count */ ! 19: #define INFRST (base + 0x5) /* W: Reset Fifo count and to write */ ! 20: #define INFWRT (base + 0x7) /* W: Set FIFO to read */ ! 21: #define INFLED (base + 0x8) /* W: Set LED; R: Dip Switch settings */ ! 22: #define INNLED (base + 0x9) /* W: reset LED */ ! 23: #define INVERS (base + 0xa) /* R: Read hw version, end-reset */ ! 24: #define ININTR (base + 0xc) /* W: Interrupt Mask Port */ ! 25: #define G2CNTRL_HRDY 0x20 /* Sets HOST ready */ ! 26: ! 27: /* WD33C93 defines */ ! 28: #define OWNID 0 ! 29: #undef CONTROL ! 30: #define CONTROL 1 ! 31: #define TIMEOUT 2 ! 32: #define TOTSECT 3 ! 33: #define TOTHEAD 4 ! 34: #define TOTCYLH 5 ! 35: #define TOTCYLL 6 ! 36: #define LADRSHH 7 ! 37: #define LADRSHL 8 ! 38: #define LADRSLH 9 ! 39: #define LADRSLL 10 ! 40: #define SECTNUM 11 ! 41: #define HEADNUM 12 ! 42: #define CYLNUMH 13 ! 43: #define CYLNUML 14 ! 44: #define TARGETU 15 ! 45: #define CMDPHAS 16 ! 46: #define SYNCTXR 17 ! 47: #define TXCNTH 18 ! 48: #define TXCNTM 19 ! 49: #define TXCNTL 20 ! 50: #define DESTID 21 ! 51: #define SRCID 22 ! 52: #define SCSIST 23 ! 53: #define COMMAND 24 ! 54: #define WDDATA 25 ! 55: #define AUXSTAT 31 ! 56: ! 57: /* OWNID Register Bits */ ! 58: #define OWN_EAF 0x08 ! 59: #define OWN_EHP 0x10 ! 60: #define OWN_FS0 0x40 ! 61: #define OWN_FS1 0x80 ! 62: /* AUX Register Bits */ ! 63: #define AUX_DBR 0 ! 64: #define AUX_PE 1 ! 65: #define AUX_CIP 0x10 ! 66: #define AUX_BSY 0x20 ! 67: #define AUX_LCI 0x40 ! 68: #define AUX_INT 0x80 ! 69: ! 70: /* Select timeout const, 1 count = 8ms */ ! 71: #define IN2000_TMOUT 0x1f ! 72: ! 73: /* These belong in scsi.h also */ ! 74: #undef any2scsi ! 75: #define any2scsi(up, p) \ ! 76: (up)[0] = (((unsigned long)(p)) >> 16); \ ! 77: (up)[1] = (((unsigned long)(p)) >> 8); \ ! 78: (up)[2] = ((unsigned long)(p)); ! 79: ! 80: #undef scsi2int ! 81: #define scsi2int(up) ( ((((long)*(up))&0x1f) << 16) + (((long)(up)[1]) << 8) + ((long)(up)[2]) ) ! 82: ! 83: #undef xany2scsi ! 84: #define xany2scsi(up, p) \ ! 85: (up)[0] = ((long)(p)) >> 24; \ ! 86: (up)[1] = ((long)(p)) >> 16; \ ! 87: (up)[2] = ((long)(p)) >> 8; \ ! 88: (up)[3] = ((long)(p)); ! 89: ! 90: #define xscsi2int(up) ( (((long)(up)[0]) << 24) + (((long)(up)[1]) << 16) \ ! 91: + (((long)(up)[2]) << 8) + ((long)(up)[3]) ) ! 92: ! 93: #define MAX_CDB 12 ! 94: #define MAX_SENSE 14 ! 95: #define MAX_STATUS 32 ! 96: ! 97: int in2000_detect(Scsi_Host_Template *); ! 98: int in2000_command(Scsi_Cmnd *); ! 99: int in2000_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *)); ! 100: int in2000_abort(Scsi_Cmnd *); ! 101: int in2000_reset(Scsi_Cmnd *); ! 102: int in2000_biosparam(Disk *, kdev_t, int*); ! 103: ! 104: #ifndef NULL ! 105: #define NULL 0 ! 106: #endif ! 107: ! 108: ! 109: /* next may be "SG_NONE" or "SG_ALL" or nr. of (1k) blocks per R/W Cmd. */ ! 110: #define IN2000_SG SG_ALL ! 111: #define IN2000 {NULL, NULL, \ ! 112: NULL, NULL, \ ! 113: "Always IN2000", in2000_detect, NULL, \ ! 114: NULL, in2000_command, \ ! 115: in2000_queuecommand, \ ! 116: in2000_abort, \ ! 117: in2000_reset, \ ! 118: NULL, \ ! 119: in2000_biosparam, \ ! 120: 1, 7, IN2000_SG, 1, 0, 0} ! 121: ! 122: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.