OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [scsi/] [a3000.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
#ifndef A3000_H
2
#define A3000_H
3
 
4
/* $Id: a3000.h,v 1.1.1.1 2004-04-15 02:13:50 phoenix 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
 
14
int a3000_detect(Scsi_Host_Template *);
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 NULL
22
#define NULL 0
23
#endif
24
 
25
#ifndef CMD_PER_LUN
26
#define CMD_PER_LUN 2
27
#endif
28
 
29
#ifndef CAN_QUEUE
30
#define CAN_QUEUE 16
31
#endif
32
 
33
#define _A3000_SCSI { proc_name:           "A3000",                     \
34
                      proc_info:           NULL,                        \
35
                      name:                "Amiga 3000 built-in SCSI",  \
36
                      detect:              a3000_detect,                \
37
                      release:             a3000_release,               \
38
                      queuecommand:        wd33c93_queuecommand,        \
39
                      abort:               wd33c93_abort,               \
40
                      reset:               wd33c93_reset,               \
41
                      can_queue:           CAN_QUEUE,                   \
42
                      this_id:             7,                           \
43
                      sg_tablesize:        SG_ALL,                      \
44
                      cmd_per_lun:         CMD_PER_LUN,                 \
45
                      use_clustering:      ENABLE_CLUSTERING }
46
 
47
/*
48
 * if the transfer address ANDed with this results in a non-zero
49
 * result, then we can't use DMA.
50
 */
51
#define A3000_XFER_MASK  (0x00000003)
52
 
53
typedef struct {
54
             unsigned char      pad1[2];
55
    volatile unsigned short     DAWR;
56
    volatile unsigned int       WTC;
57
             unsigned char      pad2[2];
58
    volatile unsigned short     CNTR;
59
    volatile unsigned long      ACR;
60
             unsigned char      pad3[2];
61
    volatile unsigned short     ST_DMA;
62
             unsigned char      pad4[2];
63
    volatile unsigned short     FLUSH;
64
             unsigned char      pad5[2];
65
    volatile unsigned short     CINT;
66
             unsigned char      pad6[2];
67
    volatile unsigned short     ISTR;
68
             unsigned char      pad7[30];
69
    volatile unsigned short     SP_DMA;
70
             unsigned char      pad8;
71
    volatile unsigned char      SASR;
72
             unsigned char      pad9;
73
    volatile unsigned char      SCMD;
74
} a3000_scsiregs;
75
 
76
#define DAWR_A3000              (3)
77
 
78
/* CNTR bits. */
79
#define CNTR_TCEN               (1<<5)
80
#define CNTR_PREST              (1<<4)
81
#define CNTR_PDMD               (1<<3)
82
#define CNTR_INTEN              (1<<2)
83
#define CNTR_DDIR               (1<<1)
84
#define CNTR_IO_DX              (1<<0)
85
 
86
/* ISTR bits. */
87
#define ISTR_INTX               (1<<8)
88
#define ISTR_INT_F              (1<<7)
89
#define ISTR_INTS               (1<<6)
90
#define ISTR_E_INT              (1<<5)
91
#define ISTR_INT_P              (1<<4)
92
#define ISTR_UE_INT             (1<<3)
93
#define ISTR_OE_INT             (1<<2)
94
#define ISTR_FF_FLG             (1<<1)
95
#define ISTR_FE_FLG             (1<<0)
96
 
97
#endif /* A3000_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.