OpenCores
URL https://opencores.org/ocsvn/hf-risc/hf-risc/trunk

Subversion Repositories hf-risc

[/] [hf-risc/] [trunk/] [tools/] [riscv-gnu-toolchain-master/] [linux-headers/] [include/] [linux/] [scc.h] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 serginhofr
/* $Id: scc.h,v 1.29 1997/04/02 14:56:45 jreuter Exp jreuter $ */
2
 
3
#ifndef _SCC_H
4
#define _SCC_H
5
 
6
 
7
/* selection of hardware types */
8
 
9
#define PA0HZP          0x00    /* hardware type for PA0HZP SCC card and compatible */
10
#define EAGLE           0x01    /* hardware type for EAGLE card */
11
#define PC100           0x02    /* hardware type for PC100 card */
12
#define PRIMUS          0x04    /* hardware type for PRIMUS-PC (DG9BL) card */
13
#define DRSI            0x08    /* hardware type for DRSI PC*Packet card */
14
#define BAYCOM          0x10    /* hardware type for BayCom (U)SCC */
15
 
16
/* DEV ioctl() commands */
17
 
18
enum SCC_ioctl_cmds {
19
        SIOCSCCRESERVED = SIOCDEVPRIVATE,
20
        SIOCSCCCFG,
21
        SIOCSCCINI,
22
        SIOCSCCCHANINI,
23
        SIOCSCCSMEM,
24
        SIOCSCCGKISS,
25
        SIOCSCCSKISS,
26
        SIOCSCCGSTAT,
27
        SIOCSCCCAL
28
};
29
 
30
/* Device parameter control (from WAMPES) */
31
 
32
enum L1_params {
33
        PARAM_DATA,
34
        PARAM_TXDELAY,
35
        PARAM_PERSIST,
36
        PARAM_SLOTTIME,
37
        PARAM_TXTAIL,
38
        PARAM_FULLDUP,
39
        PARAM_SOFTDCD,          /* was: PARAM_HW */
40
        PARAM_MUTE,             /* ??? */
41
        PARAM_DTR,
42
        PARAM_RTS,
43
        PARAM_SPEED,
44
        PARAM_ENDDELAY,         /* ??? */
45
        PARAM_GROUP,
46
        PARAM_IDLE,
47
        PARAM_MIN,
48
        PARAM_MAXKEY,
49
        PARAM_WAIT,
50
        PARAM_MAXDEFER,
51
        PARAM_TX,
52
        PARAM_HWEVENT = 31,
53
        PARAM_RETURN = 255      /* reset kiss mode */
54
};
55
 
56
/* fulldup parameter */
57
 
58
enum FULLDUP_modes {
59
        KISS_DUPLEX_HALF,       /* normal CSMA operation */
60
        KISS_DUPLEX_FULL,       /* fullduplex, key down trx after transmission */
61
        KISS_DUPLEX_LINK,       /* fullduplex, key down trx after 'idletime' sec */
62
        KISS_DUPLEX_OPTIMA      /* fullduplex, let the protocol layer control the hw */
63
};
64
 
65
/* misc. parameters */
66
 
67
#define TIMER_OFF       65535U  /* to switch off timers */
68
#define NO_SUCH_PARAM   65534U  /* param not implemented */
69
 
70
/* HWEVENT parameter */
71
 
72
enum HWEVENT_opts {
73
        HWEV_DCD_ON,
74
        HWEV_DCD_OFF,
75
        HWEV_ALL_SENT
76
};
77
 
78
/* channel grouping */
79
 
80
#define RXGROUP         0100    /* if set, only tx when all channels clear */
81
#define TXGROUP         0200    /* if set, don't transmit simultaneously */
82
 
83
/* Tx/Rx clock sources */
84
 
85
enum CLOCK_sources {
86
        CLK_DPLL,       /* normal halfduplex operation */
87
        CLK_EXTERNAL,   /* external clocking (G3RUH/DF9IC modems) */
88
        CLK_DIVIDER,    /* Rx = DPLL, Tx = divider (fullduplex with */
89
                        /* modems without clock regeneration */
90
        CLK_BRG         /* experimental fullduplex mode with DPLL/BRG for */
91
                        /* MODEMs without clock recovery */
92
};
93
 
94
/* Tx state */
95
 
96
enum TX_state {
97
        TXS_IDLE,       /* Transmitter off, no data pending */
98
        TXS_BUSY,       /* waiting for permission to send / tailtime */
99
        TXS_ACTIVE,     /* Transmitter on, sending data */
100
        TXS_NEWFRAME,   /* reset CRC and send (next) frame */
101
        TXS_IDLE2,      /* Transmitter on, no data pending */
102
        TXS_WAIT,       /* Waiting for Mintime to expire */
103
        TXS_TIMEOUT     /* We had a transmission timeout */
104
};
105
 
106
typedef unsigned long io_port;  /* type definition for an 'io port address' */
107
 
108
/* SCC statistical information */
109
 
110
struct scc_stat {
111
        long rxints;            /* Receiver interrupts */
112
        long txints;            /* Transmitter interrupts */
113
        long exints;            /* External/status interrupts */
114
        long spints;            /* Special receiver interrupts */
115
 
116
        long txframes;          /* Packets sent */
117
        long rxframes;          /* Number of Frames Actually Received */
118
        long rxerrs;            /* CRC Errors */
119
        long txerrs;            /* KISS errors */
120
 
121
        unsigned int nospace;   /* "Out of buffers" */
122
        unsigned int rx_over;   /* Receiver Overruns */
123
        unsigned int tx_under;  /* Transmitter Underruns */
124
 
125
        unsigned int tx_state;  /* Transmitter state */
126
        int tx_queued;          /* tx frames enqueued */
127
 
128
        unsigned int maxqueue;  /* allocated tx_buffers */
129
        unsigned int bufsize;   /* used buffersize */
130
};
131
 
132
struct scc_modem {
133
        long speed;             /* Line speed, bps */
134
        char clocksrc;          /* 0 = DPLL, 1 = external, 2 = divider */
135
        char nrz;               /* NRZ instead of NRZI */
136
};
137
 
138
struct scc_kiss_cmd {
139
        int      command;       /* one of the KISS-Commands defined above */
140
        unsigned param;         /* KISS-Param */
141
};
142
 
143
struct scc_hw_config {
144
        io_port data_a;         /* data port channel A */
145
        io_port ctrl_a;         /* control port channel A */
146
        io_port data_b;         /* data port channel B */
147
        io_port ctrl_b;         /* control port channel B */
148
        io_port vector_latch;   /* INTACK-Latch (#) */
149
        io_port special;        /* special function port */
150
 
151
        int     irq;            /* irq */
152
        long    clock;          /* clock */
153
        char    option;         /* command for function port */
154
 
155
        char brand;             /* hardware type */
156
        char escc;              /* use ext. features of a 8580/85180/85280 */
157
};
158
 
159
/* (#) only one INTACK latch allowed. */
160
 
161
 
162
struct scc_mem_config {
163
        unsigned int dummy;
164
        unsigned int bufsize;
165
};
166
 
167
struct scc_calibrate {
168
        unsigned int time;
169
        unsigned char pattern;
170
};
171
 
172
#endif /* _SCC_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.