cd180.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:12k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* Definitions for Cirrus Logic CL-CD180 8-port async mux chip */
  2. #define CD180_NCH       8       /* Total number of channels                */
  3. #define CD180_TPC       16      /* Ticks per character                     */
  4. #define CD180_NFIFO 8 /* TX FIFO size                            */
  5. /* Global registers */
  6. #define CD180_GFRCR 0x6b /* Global Firmware Revision Code Register  */
  7. #define CD180_SRCR 0x66 /* Service Request Configuration Register  */
  8. #define CD180_PPRH 0x70 /* Prescaler Period Register High    */
  9. #define CD180_PPRL 0x71 /* Prescaler Period Register Low    */
  10. #define CD180_MSMR 0x61 /* Modem Service Match Register    */
  11. #define CD180_TSMR 0x62 /* Transmit Service Match Register    */
  12. #define CD180_RSMR 0x63 /* Receive Service Match Register    */
  13. #define CD180_GSVR 0x40 /* Global Service Vector Register    */
  14. #define CD180_SRSR 0x65 /* Service Request Status Register    */
  15. #define CD180_GSCR 0x41 /* Global Service Channel Register    */
  16. #define CD180_CAR 0x64 /* Channel Access Register    */
  17. /* Indexed registers */
  18. #define CD180_RDCR 0x07 /* Receive Data Count Register    */
  19. #define CD180_RDR 0x78 /* Receiver Data Register    */
  20. #define CD180_RCSR 0x7a /* Receiver Character Status Register    */
  21. #define CD180_TDR 0x7b /* Transmit Data Register    */
  22. #define CD180_EOSRR 0x7f /* End of Service Request Register    */
  23. /* Channel Registers */
  24. #define CD180_SRER      0x02    /* Service Request Enable Register         */
  25. #define CD180_CCR       0x01    /* Channel Command Register                */
  26. #define CD180_COR1      0x03    /* Channel Option Register 1               */
  27. #define CD180_COR2      0x04    /* Channel Option Register 2               */
  28. #define CD180_COR3      0x05    /* Channel Option Register 3               */
  29. #define CD180_CCSR      0x06    /* Channel Control Status Register         */
  30. #define CD180_RTPR      0x18    /* Receive Timeout Period Register         */
  31. #define CD180_RBPRH     0x31    /* Receive Bit Rate Period Register High  */
  32. #define CD180_RBPRL     0x32    /* Receive Bit Rate Period Register Low   */
  33. #define CD180_TBPRH     0x39    /* Transmit Bit Rate Period Register High */
  34. #define CD180_TBPRL     0x3a    /* Transmit Bit Rate Period Register Low  */
  35. #define CD180_SCHR1     0x09    /* Special Character Register 1            */
  36. #define CD180_SCHR2     0x0a    /* Special Character Register 2            */
  37. #define CD180_SCHR3     0x0b    /* Special Character Register 3            */
  38. #define CD180_SCHR4     0x0c    /* Special Character Register 4            */
  39. #define CD180_MCR       0x12    /* Modem Change Register                   */
  40. #define CD180_MCOR1     0x10    /* Modem Change Option 1 Register          */
  41. #define CD180_MCOR2     0x11    /* Modem Change Option 2 Register          */
  42. #define CD180_MSVR      0x28    /* Modem Signal Value Register             */
  43. #define CD180_MSVRTS    0x29    /* Modem Signal Value RTS                  */
  44. #define CD180_MSVDTR    0x2a    /* Modem Signal Value DTR                  */
  45. /* Global Interrupt Vector Register (R/W) */
  46. #define GSVR_ITMASK     0x07     /* Interrupt type mask                     */
  47. #define  GSVR_IT_MDM     0x01    /* Modem Signal Change Interrupt           */
  48. #define  GSVR_IT_TX      0x02    /* Transmit Data Interrupt                 */
  49. #define  GSVR_IT_RGD     0x03    /* Receive Good Data Interrupt             */
  50. #define  GSVR_IT_REXC    0x07    /* Receive Exception Interrupt             */
  51. /* Global Interrupt Channel Register (R/W) */
  52.  
  53. #define GSCR_CHAN       0x1c    /* Channel Number Mask                     */
  54. #define GSCR_CHAN_OFF   2       /* Channel Number Offset                   */
  55. /* Channel Address Register (R/W) */
  56. #define CAR_CHAN        0x07    /* Channel Number Mask                     */
  57. /* Receive Character Status Register (R/O) */
  58. #define RCSR_TOUT       0x80    /* Rx Timeout                              */
  59. #define RCSR_SCDET      0x70    /* Special Character Detected Mask         */
  60. #define  RCSR_NO_SC      0x00   /* No Special Characters Detected          */
  61. #define  RCSR_SC_1       0x10   /* Special Char 1 (or 1 & 3) Detected      */
  62. #define  RCSR_SC_2       0x20   /* Special Char 2 (or 2 & 4) Detected      */
  63. #define  RCSR_SC_3       0x30   /* Special Char 3 Detected                 */
  64. #define  RCSR_SC_4       0x40   /* Special Char 4 Detected                 */
  65. #define RCSR_BREAK      0x08    /* Break has been detected                 */
  66. #define RCSR_PE         0x04    /* Parity Error                            */
  67. #define RCSR_FE         0x02    /* Frame Error                             */
  68. #define RCSR_OE         0x01    /* Overrun Error                           */
  69. /* Channel Command Register (R/W) (commands in groups can be OR-ed) */
  70. #define CCR_HARDRESET   0x81    /* Reset the chip                          */
  71. #define CCR_SOFTRESET   0x80    /* Soft Channel Reset                      */
  72. #define CCR_CORCHG1     0x42    /* Channel Option Register 1 Changed       */
  73. #define CCR_CORCHG2     0x44    /* Channel Option Register 2 Changed       */
  74. #define CCR_CORCHG3     0x48    /* Channel Option Register 3 Changed       */
  75. #define CCR_SSCH1       0x21    /* Send Special Character 1                */
  76. #define CCR_SSCH2       0x22    /* Send Special Character 2                */
  77. #define CCR_SSCH3       0x23    /* Send Special Character 3                */
  78. #define CCR_SSCH4       0x24    /* Send Special Character 4                */
  79. #define CCR_TXEN        0x18    /* Enable Transmitter                      */
  80. #define CCR_RXEN        0x12    /* Enable Receiver                         */
  81. #define CCR_TXDIS       0x14    /* Disable Transmitter                     */
  82. #define CCR_RXDIS       0x11    /* Disable Receiver                        */
  83. /* Service Request Enable Register (R/W) */
  84. #define SRER_DSR         0x80    /* Enable interrupt on DSR change          */
  85. #define SRER_CD          0x40    /* Enable interrupt on CD change           */
  86. #define SRER_CTS         0x20    /* Enable interrupt on CTS change          */
  87. #define SRER_RXD         0x10    /* Enable interrupt on Receive Data        */
  88. #define SRER_RXSC        0x08    /* Enable interrupt on Receive Spec. Char  */
  89. #define SRER_TXRDY       0x04    /* Enable interrupt on TX FIFO empty       */
  90. #define SRER_TXEMPTY     0x02    /* Enable interrupt on TX completely empty */
  91. #define SRER_RET         0x01    /* Enable interrupt on RX Exc. Timeout     */
  92. /* Channel Option Register 1 (R/W) */
  93. #define COR1_ODDP       0x80    /* Odd Parity                              */
  94. #define COR1_PARMODE    0x60    /* Parity Mode mask                        */
  95. #define  COR1_NOPAR      0x00   /* No Parity                               */
  96. #define  COR1_FORCEPAR   0x20   /* Force Parity                            */
  97. #define  COR1_NORMPAR    0x40   /* Normal Parity                           */
  98. #define COR1_IGNORE     0x10    /* Ignore Parity on RX                     */
  99. #define COR1_STOPBITS   0x0c    /* Number of Stop Bits                     */
  100. #define  COR1_1SB        0x00   /* 1 Stop Bit                              */
  101. #define  COR1_15SB       0x04   /* 1.5 Stop Bits                           */
  102. #define  COR1_2SB        0x08   /* 2 Stop Bits                             */
  103. #define COR1_CHARLEN    0x03    /* Character Length                        */
  104. #define  COR1_5BITS      0x00   /* 5 bits                                  */
  105. #define  COR1_6BITS      0x01   /* 6 bits                                  */
  106. #define  COR1_7BITS      0x02   /* 7 bits                                  */
  107. #define  COR1_8BITS      0x03   /* 8 bits                                  */
  108. /* Channel Option Register 2 (R/W) */
  109. #define COR2_IXM        0x80    /* Implied XON mode                        */
  110. #define COR2_TXIBE      0x40    /* Enable In-Band (XON/XOFF) Flow Control  */
  111. #define COR2_ETC        0x20    /* Embedded Tx Commands Enable             */
  112. #define COR2_LLM        0x10    /* Local Loopback Mode                     */
  113. #define COR2_RLM        0x08    /* Remote Loopback Mode                    */
  114. #define COR2_RTSAO      0x04    /* RTS Automatic Output Enable             */
  115. #define COR2_CTSAE      0x02    /* CTS Automatic Enable                    */
  116. #define COR2_DSRAE      0x01    /* DSR Automatic Enable                    */
  117. /* Channel Option Register 3 (R/W) */
  118. #define COR3_XONCH      0x80    /* XON is a pair of characters (1 & 3)     */
  119. #define COR3_XOFFCH     0x40    /* XOFF is a pair of characters (2 & 4)    */
  120. #define COR3_FCT        0x20    /* Flow-Control Transparency Mode          */
  121. #define COR3_SCDE       0x10    /* Special Character Detection Enable      */
  122. #define COR3_RXTH       0x0f    /* RX FIFO Threshold value (1-8)           */
  123. /* Channel Control Status Register (R/O) */
  124. #define CCSR_RXEN       0x80    /* Receiver Enabled                        */
  125. #define CCSR_RXFLOFF    0x40    /* Receive Flow Off (XOFF was sent)        */
  126. #define CCSR_RXFLON     0x20    /* Receive Flow On (XON was sent)          */
  127. #define CCSR_TXEN       0x08    /* Transmitter Enabled                     */
  128. #define CCSR_TXFLOFF    0x04    /* Transmit Flow Off (got XOFF)            */
  129. #define CCSR_TXFLON     0x02    /* Transmit Flow On (got XON)              */
  130. /* Modem Change Option Register 1 (R/W) */
  131. #define MCOR1_DSRZD     0x80    /* Detect 0->1 transition of DSR           */
  132. #define MCOR1_CDZD      0x40    /* Detect 0->1 transition of CD            */
  133. #define MCOR1_CTSZD     0x20    /* Detect 0->1 transition of CTS           */
  134. #define MCOR1_DTRTH     0x0f    /* Auto DTR flow control Threshold (1-8)   */
  135. #define  MCOR1_NODTRFC   0x0     /* Automatic DTR flow control disabled     */
  136. /* Modem Change Option Register 2 (R/W) */
  137. #define MCOR2_DSROD     0x80    /* Detect 1->0 transition of DSR           */
  138. #define MCOR2_CDOD      0x40    /* Detect 1->0 transition of CD            */
  139. #define MCOR2_CTSOD     0x20    /* Detect 1->0 transition of CTS           */
  140. /* Modem Change Register (R/W) */
  141. #define MCR_DSRCHG      0x80    /* DSR Changed                             */
  142. #define MCR_CDCHG       0x40    /* CD Changed                              */
  143. #define MCR_CTSCHG      0x20    /* CTS Changed                             */
  144. /* Modem Signal Value Register (R/W) */
  145. #define MSVR_DSR        0x80    /* Current state of DSR input              */
  146. #define MSVR_CD         0x40    /* Current state of CD input               */
  147. #define MSVR_CTS        0x20    /* Current state of CTS input              */
  148. #define MSVR_DTR        0x02    /* Current state of DTR output             */
  149. #define MSVR_RTS        0x01    /* Current state of RTS output             */
  150. /* Service Request Status Register */
  151. #define SRSR_CMASK 0xC0 /* Current Service Context Mask            */
  152. #define  SRSR_CNONE 0x00 /* Not in a service context    */
  153. #define  SRSR_CRX 0x40 /* Rx Context    */
  154. #define  SRSR_CTX 0x80 /* Tx Context    */
  155. #define  SRSR_CMDM 0xC0 /* Modem Context    */
  156. #define SRSR_ANYINT 0x6F /* Any interrupt flag    */
  157. #define SRSR_RINT 0x10 /* Receive Interrupt    */
  158. #define SRSR_TINT 0x04 /* Transmit Interrupt    */
  159. #define SRSR_MINT 0x01 /* Modem Interrupt    */
  160. #define SRSR_REXT 0x20 /* Receive External Interrupt    */
  161. #define SRSR_TEXT 0x08 /* Transmit External Interrupt    */
  162. #define SRSR_MEXT 0x02 /* Modem External Interrupt    */
  163. /* Service Request Configuration Register */
  164. #define SRCR_PKGTYPE    0x80
  165. #define SRCR_REGACKEN   0x40
  166. #define SRCR_DAISYEN    0x20
  167. #define SRCR_GLOBPRI    0x10
  168. #define SRCR_UNFAIR     0x08
  169. #define SRCR_AUTOPRI    0x02
  170. #define SRCR_PRISEL     0x01
  171. /* Values for register-based Interrupt ACKs */
  172. #define CD180_ACK_MINT 0x75 /* goes to MSMR    */
  173. #define CD180_ACK_TINT 0x76 /* goes to TSMR    */
  174. #define CD180_ACK_RINT 0x77 /* goes to RSMR    */
  175. /* Escape characters */
  176. #define CD180_C_ESC     0x00    /* Escape character                        */
  177. #define CD180_C_SBRK    0x81    /* Start sending BREAK                     */
  178. #define CD180_C_DELAY   0x82    /* Delay output                            */
  179. #define CD180_C_EBRK    0x83    /* Stop sending BREAK                      */