summaryrefslogtreecommitdiffstats
path: root/private/ntos/miniport/trantor/include/ep3c.h
blob: 28d2380ceab6e485982b8910337ac57327308af9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
//-----------------------------------------------------------------------
//
//  EP3C.H 
//
//  Trantor EP3C Definitions File
//
//  Revisions:
//      04-01-93    KJB First.
//      05-17-93    KJB Added some missing prototypes.
//
//-----------------------------------------------------------------------

// mappings for registers

#define EP3C_AREG1 0x00
#define EP3C_AREG2 0x80

// bits for aux reg 1

#define EP3C_IRQEN 0x40
#define EP3C_RSVD1 0x20
#define EP3C_ADRS 0x1f

// bits for aux reg 2

#define EP3C_RST 0x40
#define EP3C_UNIDIR 0x20
#define EP3C_RSVD2 0x18
#define EP3C_DLY 0x07

//
// Public Functions
//

//
// for the n53c400 that is in the EP3C
// 53c400 register offsets from 53c400 base
//

#define N53C400_CONTROL 0x18
#define N53C400_STATUS  0x18
#define N53C400_COUNTER 0x19
#define N53C400_SWITCH  0x1a
#define N53C400_HOST_BFR 0x10
#define N53C400_5380 0x08
#define N53C400_RAM 0x00

// for the 53C400 that is in the P3C

VOID N53C400PortGet(PADAPTER_INFO g,UCHAR reg,PUCHAR byte);
VOID N53C400PortPut(PADAPTER_INFO g,UCHAR reg,UCHAR byte);
BOOLEAN N53C400PortTest(PADAPTER_INFO g,UCHAR reg,UCHAR byte);
VOID N53C400PortSet(PADAPTER_INFO g,UCHAR reg,UCHAR byte);
VOID N53C400PortClear(PADAPTER_INFO g,UCHAR reg,UCHAR byte);
VOID N53C400PortPutBuffer(PADAPTER_INFO g, UCHAR reg,
                        PUCHAR pbytes, ULONG len);
VOID N53C400PortGetBuffer(PADAPTER_INFO g, UCHAR reg,
                        PUCHAR pbytes, ULONG len);

// for the parallel port the P3C uses

#define ParallelPortGet(baseIoAddress, reg, byte) \
        PortIOGet((PUCHAR)baseIoAddress+reg,byte)
#define ParallelPortPut(baseIoAddress,reg,byte) \
        PortIOPut((PUCHAR)baseIoAddress+reg,byte)

// exported routines

BOOLEAN EP3CCheckAdapter(PADAPTER_INFO g);
USHORT EP3CDoCommand(PTSRB t);
VOID EP3CResetBus(PADAPTER_INFO g);
USHORT EP3CStartCommandInterrupt(PTSRB t);
USHORT EP3CFinishCommandInterrupt(PTSRB t);
BOOLEAN EP3CInterrupt(PADAPTER_INFO g);
VOID EP3CEnableInterrupt(PADAPTER_INFO g);
VOID EP3CDisableInterrupt(PADAPTER_INFO g);
VOID EP3CResetBus(PADAPTER_INFO g);