Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 #ifndef HAYESESP_H
  2 #define HAYESESP_H
  3 
  4 struct hayes_esp_config {
  5         short flow_on;
  6         short flow_off;
  7         short rx_trigger;
  8         short tx_trigger;
  9         short pio_threshold;
 10         unsigned char rx_timeout;
 11         char dma_channel;
 12 };
 13 
 14 #ifdef __KERNEL__
 15 
 16 #define ESP_DMA_CHANNEL   0
 17 #define ESP_RX_TRIGGER    768
 18 #define ESP_TX_TRIGGER    768
 19 #define ESP_FLOW_OFF      1016
 20 #define ESP_FLOW_ON       944
 21 #define ESP_RX_TMOUT      128
 22 #define ESP_PIO_THRESHOLD 32
 23 
 24 #define ESP_IN_MAJOR    57      /* major dev # for dial in */
 25 #define ESP_OUT_MAJOR   58      /* major dev # for dial out */
 26 #define ESPC_SCALE      3
 27 #define UART_ESI_BASE   0x00
 28 #define UART_ESI_SID    0x01
 29 #define UART_ESI_RX     0x02
 30 #define UART_ESI_TX     0x02
 31 #define UART_ESI_CMD1   0x04
 32 #define UART_ESI_CMD2   0x05
 33 #define UART_ESI_STAT1  0x04
 34 #define UART_ESI_STAT2  0x05
 35 #define UART_ESI_RWS    0x07
 36 
 37 #define UART_IER_DMA_TMOUT      0x80
 38 #define UART_IER_DMA_TC         0x08
 39 
 40 #define ESI_SET_IRQ             0x04
 41 #define ESI_SET_DMA_TMOUT       0x05
 42 #define ESI_SET_SRV_MASK        0x06
 43 #define ESI_SET_ERR_MASK        0x07
 44 #define ESI_SET_FLOW_CNTL       0x08
 45 #define ESI_SET_FLOW_CHARS      0x09
 46 #define ESI_SET_FLOW_LVL        0x0a
 47 #define ESI_SET_TRIGGER         0x0b
 48 #define ESI_SET_RX_TIMEOUT      0x0c
 49 #define ESI_SET_FLOW_TMOUT      0x0d
 50 #define ESI_WRITE_UART          0x0e
 51 #define ESI_READ_UART           0x0f
 52 #define ESI_SET_MODE            0x10
 53 #define ESI_GET_ERR_STAT        0x12
 54 #define ESI_GET_UART_STAT       0x13
 55 #define ESI_GET_RX_AVAIL        0x14
 56 #define ESI_GET_TX_AVAIL        0x15
 57 #define ESI_START_DMA_RX        0x16
 58 #define ESI_START_DMA_TX        0x17
 59 #define ESI_ISSUE_BREAK         0x1a
 60 #define ESI_FLUSH_RX            0x1b
 61 #define ESI_FLUSH_TX            0x1c
 62 #define ESI_SET_BAUD            0x1d
 63 #define ESI_SET_ENH_IRQ         0x1f
 64 #define ESI_SET_REINTR          0x20
 65 #define ESI_SET_PRESCALAR       0x23
 66 #define ESI_NO_COMMAND          0xff
 67 
 68 #define ESP_STAT_RX_TIMEOUT     0x01
 69 #define ESP_STAT_DMA_RX         0x02
 70 #define ESP_STAT_DMA_TX         0x04
 71 #define ESP_STAT_NEVER_DMA      0x08
 72 #define ESP_STAT_USE_PIO        0x10
 73 
 74 #define ESP_MAGIC               0x53ee
 75 #define ESP_XMIT_SIZE           4096
 76 
 77 struct esp_struct {
 78         int                     magic;
 79         struct tty_port         port;
 80         spinlock_t              lock;
 81         int                     io_port;
 82         int                     irq;
 83         int                     read_status_mask;
 84         int                     ignore_status_mask;
 85         int                     timeout;
 86         int                     stat_flags;
 87         int                     custom_divisor;
 88         int                     close_delay;
 89         unsigned short          closing_wait;
 90         unsigned short          closing_wait2;
 91         int                     IER;    /* Interrupt Enable Register */
 92         int                     MCR;    /* Modem control register */
 93         unsigned long           last_active;
 94         int                     line;
 95         unsigned char           *xmit_buf;
 96         int                     xmit_head;
 97         int                     xmit_tail;
 98         int                     xmit_cnt;
 99         wait_queue_head_t       delta_msr_wait;
100         wait_queue_head_t       break_wait;
101         struct async_icount     icount; /* kernel counters for the 4 input interrupts */
102         struct hayes_esp_config config; /* port configuration */
103         struct esp_struct       *next_port; /* For the linked list */
104 };
105 
106 struct esp_pio_buffer {
107         unsigned char data[1024];
108         struct esp_pio_buffer *next;
109 };
110 
111 #endif /* __KERNEL__ */
112 
113 
114 #endif /* ESP_H */
115 
116 
  This page was automatically generated by the LXR engine.