Blame view
include/linux/istallion.h
3.51 KB
1da177e4c
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/*****************************************************************************/ /* * istallion.h -- stallion intelligent multiport serial driver. * * Copyright (C) 1996-1998 Stallion Technologies * Copyright (C) 1994-1996 Greg Ungerer. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ |
1da177e4c
|
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 |
/*****************************************************************************/ #ifndef _ISTALLION_H #define _ISTALLION_H /*****************************************************************************/ /* * Define important driver constants here. */ #define STL_MAXBRDS 4 #define STL_MAXPANELS 4 #define STL_MAXPORTS 64 #define STL_MAXCHANS (STL_MAXPORTS + 1) #define STL_MAXDEVS (STL_MAXBRDS * STL_MAXPORTS) /* * Define a set of structures to hold all the board/panel/port info * for our ports. These will be dynamically allocated as required at * driver initialization time. */ /* * Port and board structures to hold status info about each object. * The board structure contains pointers to structures for each port * connected to it. Panels are not distinguished here, since * communication with the slave board will always be on a per port * basis. */ |
1f8ec435e
|
51 |
struct stliport { |
1da177e4c
|
52 |
unsigned long magic; |
b02f5ad6a
|
53 |
struct tty_port port; |
1328d737f
|
54 55 56 |
unsigned int portnr; unsigned int panelnr; unsigned int brdnr; |
1da177e4c
|
57 |
unsigned long state; |
1328d737f
|
58 |
unsigned int devnr; |
1da177e4c
|
59 60 |
int baud_base; int custom_divisor; |
1da177e4c
|
61 |
int closing_wait; |
1da177e4c
|
62 63 64 65 |
int rc; int argsize; void *argp; unsigned int rxmarkmsk; |
1da177e4c
|
66 |
wait_queue_head_t raw_wait; |
1f8ec435e
|
67 |
struct asysigs asig; |
1da177e4c
|
68 69 70 71 72 73 74 75 76 77 |
unsigned long addr; unsigned long rxoffset; unsigned long txoffset; unsigned long sigs; unsigned long pflag; unsigned int rxsize; unsigned int txsize; unsigned char reqbit; unsigned char portidx; unsigned char portbit; |
1f8ec435e
|
78 |
}; |
1da177e4c
|
79 80 81 82 83 |
/* * Use a structure of function pointers to do board level operations. * These include, enable/disable, paging shared memory, interrupting, etc. */ |
1f8ec435e
|
84 |
struct stlibrd { |
1da177e4c
|
85 |
unsigned long magic; |
1328d737f
|
86 87 |
unsigned int brdnr; unsigned int brdtype; |
8a1e803d0
|
88 |
unsigned long state; |
1328d737f
|
89 90 91 |
unsigned int nrpanels; unsigned int nrports; unsigned int nrdevs; |
1da177e4c
|
92 93 94 |
unsigned int iobase; int iosize; unsigned long memaddr; |
29756fa32
|
95 |
void __iomem *membase; |
1328d737f
|
96 |
unsigned long memsize; |
1da177e4c
|
97 98 99 100 101 |
int pagesize; int hostoffset; int slaveoffset; int bitsize; int enabval; |
1328d737f
|
102 |
unsigned int panels[STL_MAXPANELS]; |
1da177e4c
|
103 104 105 106 107 |
int panelids[STL_MAXPANELS]; void (*init)(struct stlibrd *brdp); void (*enable)(struct stlibrd *brdp); void (*reenable)(struct stlibrd *brdp); void (*disable)(struct stlibrd *brdp); |
29756fa32
|
108 |
void __iomem *(*getmemptr)(struct stlibrd *brdp, unsigned long offset, int line); |
1da177e4c
|
109 110 |
void (*intr)(struct stlibrd *brdp); void (*reset)(struct stlibrd *brdp); |
1f8ec435e
|
111 112 |
struct stliport *ports[STL_MAXPORTS]; }; |
1da177e4c
|
113 114 115 116 117 118 119 120 121 122 |
/* * Define MAGIC numbers used for above structures. */ #define STLI_PORTMAGIC 0xe671c7a1 #define STLI_BOARDMAGIC 0x4bc6c825 /*****************************************************************************/ #endif |