Subversion Repositories shark

Rev

Rev 422 | Details | Compare with Previous | 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