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

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *  drivers/char/serial_tx3912.h
  3.  *
  4.  *  Copyright (C) 1999 Harald Koerfgen
  5.  *  Copyright (C) 2000 Jim Pick <jim@jimpick.com>
  6.  *  Copyright (C) 2001 Steven J. Hill (sjhill@realitydiluted.com)
  7.  *
  8.  * This program is free software; you can redistribute it and/or modify
  9.  * it under the terms of the GNU General Public License version 2 as
  10.  * published by the Free Software Foundation.
  11.  *
  12.  *  Serial driver for TMPR3912/05 and PR31700 processors
  13.  */
  14. #include <linux/serialP.h>
  15. #include <linux/generic_serial.h>
  16. /* UART Interrupt (Interrupt 2) bits (UARTA,UARTB) */
  17. #define UART_RX_INT         9  /* receiver holding register full  (31, 21) */
  18. #define UART_RXOVERRUN_INT  8  /* receiver overrun error          (30, 20) */
  19. #define UART_FRAMEERR_INT   7  /* receiver frame error            (29, 19) */
  20. #define UART_BREAK_INT      6  /* received break signal           (28, 18) */
  21. #define UART_PARITYERR_INT  5  /* receiver parity error           (27, 17) */
  22. #define UART_TX_INT         4  /* transmit holding register empty (26, 16) */
  23. #define UART_TXOVERRUN_INT  3  /* transmit overrun error          (25, 15) */
  24. #define UART_EMPTY_INT      2  /* both trans/recv regs empty      (24, 14) */
  25. #define UART_DMAFULL_INT    1  /* DMA at end of buffer            (23, 13) */
  26. #define UART_DMAHALF_INT    0  /* DMA halfway through buffer */   (22, 12) */
  27. #define UARTA_SHIFT        22
  28. #define UARTB_SHIFT        12
  29. #define INTTYPE(interrupttype)            (1 << interrupttype)
  30. /* 
  31.  * This driver can spew a whole lot of debugging output at you. If you
  32.  * need maximum performance, you should disable the DEBUG define.
  33.  */
  34. #undef TX3912_UART_DEBUG
  35. #ifdef TX3912_UART_DEBUG
  36. #define TX3912_UART_DEBUG_OPEN 0x00000001
  37. #define TX3912_UART_DEBUG_SETTING 0x00000002
  38. #define TX3912_UART_DEBUG_FLOW 0x00000004
  39. #define TX3912_UART_DEBUG_MODEMSIGNALS 0x00000008
  40. #define TX3912_UART_DEBUG_TERMIOS 0x00000010
  41. #define TX3912_UART_DEBUG_TRANSMIT 0x00000020
  42. #define TX3912_UART_DEBUG_RECEIVE 0x00000040
  43. #define TX3912_UART_DEBUG_INTERRUPTS 0x00000080
  44. #define TX3912_UART_DEBUG_PROBE 0x00000100
  45. #define TX3912_UART_DEBUG_INIT 0x00000200
  46. #define TX3912_UART_DEBUG_CLEANUP 0x00000400
  47. #define TX3912_UART_DEBUG_CLOSE 0x00000800
  48. #define TX3912_UART_DEBUG_FIRMWARE 0x00001000
  49. #define TX3912_UART_DEBUG_MEMTEST 0x00002000
  50. #define TX3912_UART_DEBUG_THROTTLE 0x00004000
  51. #define TX3912_UART_DEBUG_ALL 0xffffffff
  52. int rs_debug = TX3912_UART_DEBUG_ALL & ~TX3912_UART_DEBUG_TRANSMIT;
  53. #define rs_dprintk(f, str...) if (rs_debug & f) printk (str)
  54. #define func_enter() rs_dprintk (TX3912_UART_DEBUG_FLOW,
  55. "rs: enter " __FUNCTION__ "n")
  56. #define func_exit() rs_dprintk (TX3912_UART_DEBUG_FLOW,
  57. "rs: exit " __FUNCTION__ "n")
  58. #else
  59. #define rs_dprintk(f, str...)
  60. #define func_enter()
  61. #define func_exit()
  62. #endif /* TX3912_UART_DEBUG */
  63. /*
  64.  * Number of serial ports
  65.  */
  66. #define TX3912_UART_NPORTS  2
  67. /*
  68.  * Hardware specific serial port structure
  69.  */
  70. struct rs_port { 
  71. struct gs_port gs; /* Must be first field! */
  72. unsigned long base;
  73. int intshift; /* Register shift */
  74. struct wait_queue *shutdown_wait; 
  75. int stat_flags;
  76.         struct async_icount icount; /* Counters for 4 input IRQs */
  77. int read_status_mask;
  78. int ignore_status_mask;
  79. int x_char; /* XON/XOFF character */
  80. };