serial167.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:4k
- /*
- * serial167.h
- *
- * Richard Hirst [richard@sleepie.demon.co.uk]
- *
- * Based on cyclades.h
- */
- struct cyclades_monitor {
- unsigned long int_count;
- unsigned long char_count;
- unsigned long char_max;
- unsigned long char_last;
- };
- /*
- * This is our internal structure for each serial port's state.
- *
- * Many fields are paralleled by the structure used by the serial_struct
- * structure.
- *
- * For definitions of the flags field, see tty.h
- */
- struct cyclades_port {
- int magic;
- int type;
- int card;
- int line;
- int flags; /* defined in tty.h */
- struct tty_struct *tty;
- int read_status_mask;
- int timeout;
- int xmit_fifo_size;
- int cor1,cor2,cor3,cor4,cor5,cor6,cor7;
- int tbpr,tco,rbpr,rco;
- int ignore_status_mask;
- int close_delay;
- int IER; /* Interrupt Enable Register */
- unsigned long event;
- unsigned long last_active;
- int count; /* # of fd on device */
- int x_char; /* to be pushed out ASAP */
- int x_break;
- int blocked_open; /* # of blocked opens */
- unsigned char *xmit_buf;
- int xmit_head;
- int xmit_tail;
- int xmit_cnt;
- int default_threshold;
- int default_timeout;
- struct work_struct tqueue;
- wait_queue_head_t open_wait;
- wait_queue_head_t close_wait;
- struct cyclades_monitor mon;
- };
- #define CYCLADES_MAGIC 0x4359
- #define CYGETMON 0x435901
- #define CYGETTHRESH 0x435902
- #define CYSETTHRESH 0x435903
- #define CYGETDEFTHRESH 0x435904
- #define CYSETDEFTHRESH 0x435905
- #define CYGETTIMEOUT 0x435906
- #define CYSETTIMEOUT 0x435907
- #define CYGETDEFTIMEOUT 0x435908
- #define CYSETDEFTIMEOUT 0x435909
- /*
- * Events are used to schedule things to happen at timer-interrupt
- * time, instead of at cy interrupt time.
- */
- #define Cy_EVENT_READ_PROCESS 0
- #define Cy_EVENT_WRITE_WAKEUP 1
- #define Cy_EVENT_HANGUP 2
- #define Cy_EVENT_BREAK 3
- #define Cy_EVENT_OPEN_WAKEUP 4
- #define CyMaxChipsPerCard 1
- /**** cd2401 registers ****/
- #define CyGFRCR (0x81)
- #define CyCCR (0x13)
- #define CyCLR_CHAN (0x40)
- #define CyINIT_CHAN (0x20)
- #define CyCHIP_RESET (0x10)
- #define CyENB_XMTR (0x08)
- #define CyDIS_XMTR (0x04)
- #define CyENB_RCVR (0x02)
- #define CyDIS_RCVR (0x01)
- #define CyCAR (0xee)
- #define CyIER (0x11)
- #define CyMdmCh (0x80)
- #define CyRxExc (0x20)
- #define CyRxData (0x08)
- #define CyTxMpty (0x02)
- #define CyTxRdy (0x01)
- #define CyLICR (0x26)
- #define CyRISR (0x89)
- #define CyTIMEOUT (0x80)
- #define CySPECHAR (0x70)
- #define CyOVERRUN (0x08)
- #define CyPARITY (0x04)
- #define CyFRAME (0x02)
- #define CyBREAK (0x01)
- #define CyREOIR (0x84)
- #define CyTEOIR (0x85)
- #define CyMEOIR (0x86)
- #define CyNOTRANS (0x08)
- #define CyRFOC (0x30)
- #define CyRDR (0xf8)
- #define CyTDR (0xf8)
- #define CyMISR (0x8b)
- #define CyRISR (0x89)
- #define CyTISR (0x8a)
- #define CyMSVR1 (0xde)
- #define CyMSVR2 (0xdf)
- #define CyDSR (0x80)
- #define CyDCD (0x40)
- #define CyCTS (0x20)
- #define CyDTR (0x02)
- #define CyRTS (0x01)
- #define CyRTPRL (0x25)
- #define CyRTPRH (0x24)
- #define CyCOR1 (0x10)
- #define CyPARITY_NONE (0x00)
- #define CyPARITY_E (0x40)
- #define CyPARITY_O (0xC0)
- #define Cy_5_BITS (0x04)
- #define Cy_6_BITS (0x05)
- #define Cy_7_BITS (0x06)
- #define Cy_8_BITS (0x07)
- #define CyCOR2 (0x17)
- #define CyETC (0x20)
- #define CyCtsAE (0x02)
- #define CyCOR3 (0x16)
- #define Cy_1_STOP (0x02)
- #define Cy_2_STOP (0x04)
- #define CyCOR4 (0x15)
- #define CyREC_FIFO (0x0F) /* Receive FIFO threshold */
- #define CyCOR5 (0x14)
- #define CyCOR6 (0x18)
- #define CyCOR7 (0x07)
- #define CyRBPR (0xcb)
- #define CyRCOR (0xc8)
- #define CyTBPR (0xc3)
- #define CyTCOR (0xc0)
- #define CySCHR1 (0x1f)
- #define CySCHR2 (0x1e)
- #define CyTPR (0xda)
- #define CyPILR1 (0xe3)
- #define CyPILR2 (0xe0)
- #define CyPILR3 (0xe1)
- #define CyCMR (0x1b)
- #define CyASYNC (0x02)
- #define CyLICR (0x26)
- #define CyLIVR (0x09)
- #define CySCRL (0x23)
- #define CySCRH (0x22)
- #define CyTFTC (0x80)
- /* max number of chars in the FIFO */
- #define CyMAX_CHAR_FIFO 12
- /***************************************************************************/