PageRenderTime 34ms CodeModel.GetById 18ms app.highlight 13ms RepoModel.GetById 0ms app.codeStats 0ms

/drivers/staging/tty/epca.h

https://bitbucket.org/wisechild/galaxy-nexus
C++ Header | 158 lines | 137 code | 19 blank | 2 comment | 0 complexity | ad7f744610abed781f339dff90d94011 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0
  1#define XEMPORTS    0xC02
  2#define XEPORTS     0xC22
  3
  4#define MAX_ALLOC   0x100
  5
  6#define MAXBOARDS   12
  7#define FEPCODESEG  0x0200L
  8#define FEPCODE     0x2000L
  9#define BIOSCODE    0xf800L
 10
 11#define MISCGLOBAL  0x0C00L
 12#define NPORT       0x0C22L
 13#define MBOX        0x0C40L
 14#define PORTBASE    0x0C90L
 15
 16/* Begin code defines used for epca_setup */
 17
 18#define INVALID_BOARD_TYPE   0x1
 19#define INVALID_NUM_PORTS    0x2
 20#define INVALID_MEM_BASE     0x4
 21#define INVALID_PORT_BASE    0x8
 22#define INVALID_BOARD_STATUS 0x10
 23#define INVALID_ALTPIN       0x20
 24
 25/* End code defines used for epca_setup */
 26
 27
 28#define FEPCLR      0x00
 29#define FEPMEM      0x02
 30#define FEPRST      0x04
 31#define FEPINT      0x08
 32#define	FEPMASK     0x0e
 33#define	FEPWIN      0x80
 34
 35#define PCXE    0
 36#define PCXEVE  1
 37#define PCXEM   2   
 38#define EISAXEM 3
 39#define PC64XE  4
 40#define PCXI    5
 41#define PCIXEM  7
 42#define PCICX   8
 43#define PCIXR   9
 44#define PCIXRJ  10
 45#define EPCA_NUM_TYPES 6
 46
 47
 48static char *board_desc[] = 
 49{
 50	"PC/Xe",
 51	"PC/Xeve",
 52	"PC/Xem",
 53	"EISA/Xem",
 54	"PC/64Xe",
 55	"PC/Xi",
 56	"unknown",
 57	"PCI/Xem",
 58	"PCI/CX",
 59	"PCI/Xr",
 60	"PCI/Xrj",
 61};
 62
 63#define STARTC      021
 64#define STOPC       023
 65#define IAIXON      0x2000
 66
 67
 68#define TXSTOPPED  0x1
 69#define LOWWAIT    0x2
 70#define EMPTYWAIT  0x4
 71#define RXSTOPPED  0x8
 72#define TXBUSY     0x10
 73
 74#define DISABLED   0
 75#define ENABLED    1
 76#define OFF        0
 77#define ON         1
 78
 79#define FEPTIMEOUT 200000  
 80#define SERIAL_TYPE_INFO    3
 81#define EPCA_EVENT_HANGUP   1
 82#define EPCA_MAGIC          0x5c6df104L
 83
 84struct channel 
 85{
 86	long   magic;
 87	struct tty_port port;
 88	unsigned char boardnum;
 89	unsigned char channelnum;
 90	unsigned char omodem;         /* FEP output modem status     */
 91	unsigned char imodem;         /* FEP input modem status      */
 92	unsigned char modemfake;      /* Modem values to be forced   */
 93	unsigned char modem;          /* Force values                */
 94	unsigned char hflow;
 95	unsigned char dsr;
 96	unsigned char dcd;
 97	unsigned char m_rts ; 		/* The bits used in whatever FEP */
 98	unsigned char m_dcd ;		/* is indiginous to this board to */
 99	unsigned char m_dsr ;		/* represent each of the physical */
100	unsigned char m_cts ;		/* handshake lines */
101	unsigned char m_ri ;
102	unsigned char m_dtr ;
103	unsigned char stopc;
104	unsigned char startc;
105	unsigned char stopca;
106	unsigned char startca;
107	unsigned char fepstopc;
108	unsigned char fepstartc;
109	unsigned char fepstopca;
110	unsigned char fepstartca;
111	unsigned char txwin;
112	unsigned char rxwin;
113	unsigned short fepiflag;
114	unsigned short fepcflag;
115	unsigned short fepoflag;
116	unsigned short txbufhead;
117	unsigned short txbufsize;
118	unsigned short rxbufhead;
119	unsigned short rxbufsize;
120	int    close_delay;
121	unsigned long  event;
122	uint   dev;
123	unsigned long  statusflags;
124	unsigned long  c_iflag;
125	unsigned long  c_cflag;
126	unsigned long  c_lflag;
127	unsigned long  c_oflag;
128	unsigned char __iomem *txptr;
129	unsigned char __iomem *rxptr;
130	struct board_info           *board;
131	struct board_chan	    __iomem *brdchan;
132	struct digi_struct          digiext;
133	struct work_struct          tqueue;
134	struct global_data 	    __iomem *mailbox;
135};
136
137struct board_info	
138{
139	unsigned char status;
140	unsigned char type;
141	unsigned char altpin;
142	unsigned short numports;
143	unsigned long port;
144	unsigned long membase;
145	void __iomem *re_map_port;
146	void __iomem *re_map_membase;
147	unsigned long  memory_seg;
148	void ( * memwinon )	(struct board_info *, unsigned int) ;
149	void ( * memwinoff ) 	(struct board_info *, unsigned int) ;
150	void ( * globalwinon )	(struct channel *) ;
151	void ( * txwinon ) 	(struct channel *) ;
152	void ( * rxwinon )	(struct channel *) ;
153	void ( * memoff )	(struct channel *) ;
154	void ( * assertgwinon )	(struct channel *) ;
155	void ( * assertmemoff )	(struct channel *) ;
156	unsigned char poller_inhibited ;
157};
158