Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
422 | giacomo | 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_EVENT_WRITE_WAKEUP 0 |
||
75 | #define ESP_MAGIC 0x53ee |
||
76 | #define ESP_XMIT_SIZE 4096 |
||
77 | |||
78 | struct esp_struct { |
||
79 | int magic; |
||
80 | int port; |
||
81 | int irq; |
||
82 | int flags; /* defined in tty.h */ |
||
83 | struct tty_struct *tty; |
||
84 | int read_status_mask; |
||
85 | int ignore_status_mask; |
||
86 | int timeout; |
||
87 | int stat_flags; |
||
88 | int custom_divisor; |
||
89 | int close_delay; |
||
90 | unsigned short closing_wait; |
||
91 | unsigned short closing_wait2; |
||
92 | int IER; /* Interrupt Enable Register */ |
||
93 | int MCR; /* Modem control register */ |
||
94 | unsigned long event; |
||
95 | unsigned long last_active; |
||
96 | int line; |
||
97 | int count; /* # of fd on device */ |
||
98 | int blocked_open; /* # of blocked opens */ |
||
99 | unsigned char *xmit_buf; |
||
100 | int xmit_head; |
||
101 | int xmit_tail; |
||
102 | int xmit_cnt; |
||
103 | struct work_struct tqueue; |
||
104 | struct work_struct tqueue_hangup; |
||
105 | wait_queue_head_t open_wait; |
||
106 | wait_queue_head_t close_wait; |
||
107 | wait_queue_head_t delta_msr_wait; |
||
108 | wait_queue_head_t break_wait; |
||
109 | struct async_icount icount; /* kernel counters for the 4 input interrupts */ |
||
110 | struct hayes_esp_config config; /* port configuration */ |
||
111 | struct esp_struct *next_port; /* For the linked list */ |
||
112 | }; |
||
113 | |||
114 | struct esp_pio_buffer { |
||
115 | unsigned char data[1024]; |
||
116 | struct esp_pio_buffer *next; |
||
117 | }; |
||
118 | |||
119 | #endif /* __KERNEL__ */ |
||
120 | |||
121 | |||
122 | #endif /* ESP_H */ |
||
123 |