linux/include/linux/serial167.h
<<
>>
Prefs
   1/*
   2 * serial167.h
   3 *
   4 * Richard Hirst [richard@sleepie.demon.co.uk]
   5 *
   6 * Based on cyclades.h
   7 */
   8
   9struct cyclades_monitor {
  10        unsigned long           int_count;
  11        unsigned long           char_count;
  12        unsigned long           char_max;
  13        unsigned long           char_last;
  14};
  15
  16/*
  17 * This is our internal structure for each serial port's state.
  18 * 
  19 * Many fields are paralleled by the structure used by the serial_struct
  20 * structure.
  21 *
  22 * For definitions of the flags field, see tty.h
  23 */
  24
  25struct cyclades_port {
  26        int                     magic;
  27        int                     type;
  28        int                     card;
  29        int                     line;
  30        int                     flags;          /* defined in tty.h */
  31        struct tty_struct       *tty;
  32        int                     read_status_mask;
  33        int                     timeout;
  34        int                     xmit_fifo_size;
  35        int                     cor1,cor2,cor3,cor4,cor5,cor6,cor7;
  36        int                     tbpr,tco,rbpr,rco;
  37        int                     ignore_status_mask;
  38        int                     close_delay;
  39        int                     IER;    /* Interrupt Enable Register */
  40        unsigned long           event;
  41        unsigned long           last_active;
  42        int                     count;  /* # of fd on device */
  43        int                     x_char; /* to be pushed out ASAP */
  44        int                     x_break;
  45        int                     blocked_open; /* # of blocked opens */
  46        unsigned char           *xmit_buf;
  47        int                     xmit_head;
  48        int                     xmit_tail;
  49        int                     xmit_cnt;
  50        int                     default_threshold;
  51        int                     default_timeout;
  52        struct work_struct      tqueue;
  53        wait_queue_head_t       open_wait;
  54        wait_queue_head_t       close_wait;
  55        struct cyclades_monitor mon;
  56};
  57
  58#define CYCLADES_MAGIC  0x4359
  59
  60#define CYGETMON                0x435901
  61#define CYGETTHRESH             0x435902
  62#define CYSETTHRESH             0x435903
  63#define CYGETDEFTHRESH          0x435904
  64#define CYSETDEFTHRESH          0x435905
  65#define CYGETTIMEOUT            0x435906
  66#define CYSETTIMEOUT            0x435907
  67#define CYGETDEFTIMEOUT         0x435908
  68#define CYSETDEFTIMEOUT         0x435909
  69
  70/*
  71 * Events are used to schedule things to happen at timer-interrupt
  72 * time, instead of at cy interrupt time.
  73 */
  74#define Cy_EVENT_READ_PROCESS   0
  75#define Cy_EVENT_WRITE_WAKEUP   1
  76#define Cy_EVENT_HANGUP         2
  77#define Cy_EVENT_BREAK          3
  78#define Cy_EVENT_OPEN_WAKEUP    4
  79
  80
  81
  82#define CyMaxChipsPerCard 1
  83
  84/**** cd2401 registers ****/
  85
  86#define CyGFRCR         (0x81)
  87#define CyCCR           (0x13)
  88#define      CyCLR_CHAN         (0x40)
  89#define      CyINIT_CHAN        (0x20)
  90#define      CyCHIP_RESET       (0x10)
  91#define      CyENB_XMTR         (0x08)
  92#define      CyDIS_XMTR         (0x04)
  93#define      CyENB_RCVR         (0x02)
  94#define      CyDIS_RCVR         (0x01)
  95#define CyCAR           (0xee)
  96#define CyIER           (0x11)
  97#define      CyMdmCh            (0x80)
  98#define      CyRxExc            (0x20)
  99#define      CyRxData           (0x08)
 100#define      CyTxMpty           (0x02)
 101#define      CyTxRdy            (0x01)
 102#define CyLICR          (0x26)
 103#define CyRISR          (0x89)
 104#define      CyTIMEOUT          (0x80)
 105#define      CySPECHAR          (0x70)
 106#define      CyOVERRUN          (0x08)
 107#define      CyPARITY           (0x04)
 108#define      CyFRAME            (0x02)
 109#define      CyBREAK            (0x01)
 110#define CyREOIR         (0x84)
 111#define CyTEOIR         (0x85)
 112#define CyMEOIR         (0x86)
 113#define      CyNOTRANS          (0x08)
 114#define CyRFOC          (0x30)
 115#define CyRDR           (0xf8)
 116#define CyTDR           (0xf8)
 117#define CyMISR          (0x8b)
 118#define CyRISR          (0x89)
 119#define CyTISR          (0x8a)
 120#define CyMSVR1         (0xde)
 121#define CyMSVR2         (0xdf)
 122#define      CyDSR              (0x80)
 123#define      CyDCD              (0x40)
 124#define      CyCTS              (0x20)
 125#define      CyDTR              (0x02)
 126#define      CyRTS              (0x01)
 127#define CyRTPRL         (0x25)
 128#define CyRTPRH         (0x24)
 129#define CyCOR1          (0x10)
 130#define      CyPARITY_NONE      (0x00)
 131#define      CyPARITY_E         (0x40)
 132#define      CyPARITY_O         (0xC0)
 133#define      Cy_5_BITS          (0x04)
 134#define      Cy_6_BITS          (0x05)
 135#define      Cy_7_BITS          (0x06)
 136#define      Cy_8_BITS          (0x07)
 137#define CyCOR2          (0x17)
 138#define      CyETC              (0x20)
 139#define      CyCtsAE            (0x02)
 140#define CyCOR3          (0x16)
 141#define      Cy_1_STOP          (0x02)
 142#define      Cy_2_STOP          (0x04)
 143#define CyCOR4          (0x15)
 144#define      CyREC_FIFO         (0x0F)  /* Receive FIFO threshold */
 145#define CyCOR5          (0x14)
 146#define CyCOR6          (0x18)
 147#define CyCOR7          (0x07)
 148#define CyRBPR          (0xcb)
 149#define CyRCOR          (0xc8)
 150#define CyTBPR          (0xc3)
 151#define CyTCOR          (0xc0)
 152#define CySCHR1         (0x1f)
 153#define CySCHR2         (0x1e)
 154#define CyTPR           (0xda)
 155#define CyPILR1         (0xe3)
 156#define CyPILR2         (0xe0)
 157#define CyPILR3         (0xe1)
 158#define CyCMR           (0x1b)
 159#define      CyASYNC            (0x02)
 160#define CyLICR          (0x26)
 161#define CyLIVR          (0x09)
 162#define CySCRL          (0x23)
 163#define CySCRH          (0x22)
 164#define CyTFTC          (0x80)
 165
 166
 167/* max number of chars in the FIFO */
 168
 169#define CyMAX_CHAR_FIFO 12
 170
 171/***************************************************************************/
 172