binutils/ld: Don't add /usr/lib to the library search path twice.
[dragonfly.git] / sys / net / i4b / layer1 / iwic / i4b_w6692.h
1 /*
2  * Copyright (c) 1999, 2000 Dave Boyce. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23  * SUCH DAMAGE.
24  *
25  *---------------------------------------------------------------------------
26  *
27  *      i4b_iwic - isdn4bsd Winbond W6692 driver
28  *      ----------------------------------------
29  *
30  * $FreeBSD: src/sys/i4b/layer1/iwic/i4b_w6692.h,v 1.2.2.1 2001/08/10 14:08:40 obrien Exp $
31  * $DragonFly: src/sys/net/i4b/layer1/iwic/i4b_w6692.h,v 1.2 2003/06/17 04:28:40 dillon Exp $
32  *
33  *      last edit-date: [Sun Jan 21 11:09:46 2001]
34  *
35  *---------------------------------------------------------------------------*/
36
37 #ifndef _I4B_W6692_H_
38 #define _I4B_W6692_H_
39
40 #define IWIC_BCH_A       0       /* channel A */
41 #define IWIC_BCH_B       1       /* channel B */
42
43 /*---------------------------------------------------------------------------*
44  *      FIFO depths
45  *---------------------------------------------------------------------------*/
46 #define IWIC_DCHAN_FIFO_LEN     64
47 #define IWIC_BCHAN_FIFO_LEN     64
48
49 /*---------------------------------------------------------------------------*
50  *      D-Channel register offsets
51  *---------------------------------------------------------------------------*/
52 #define D_RFIFO         0x00    /* D channel receive FIFO */
53 #define D_XFIFO         0x04    /* D channel transmit FIFO */
54 #define D_CMDR          0x08    /* D channel command register */
55 #define D_MODE          0x0c    /* D channel mode control */
56 #define D_TIMR          0x10    /* D channel timer control */
57 #define D_EXIR          0x1c    /* D channel extended interrupt */
58 #define D_EXIM          0x20    /* D channel extended interrupt mask */
59 #define D_STAR          0x24    /* D channel status register */
60 #define D_RSTA          0x28    /* D channel receive status */
61 #define D_SAM           0x2c    /* D channel address mask 1 */
62 #define D_SAP1          0x30    /* D channel individual SAPI 1 */
63 #define D_SAP2          0x34    /* D channel individual SAPI 2 */
64 #define D_TAM           0x38    /* D channel address mask 2 */
65 #define D_TEI1          0x3c    /* D channel individual TEI 1 */
66 #define D_TEI2          0x40    /* D channel individual TEI 2 */
67 #define D_RBCH          0x44    /* D channel receive frame byte count high */
68 #define D_RBCL          0x48    /* D channel receive frame byte count low */
69 #define D_CTL           0x54    /* D channel control register */
70
71 /*---------------------------------------------------------------------------*
72  *      B-channel base offsets
73  *---------------------------------------------------------------------------*/
74 #define B1_CHAN_OFFSET  0x80    /* B1 channel offset */
75 #define B2_CHAN_OFFSET  0xc0    /* B2 channel offset */
76
77 /*---------------------------------------------------------------------------*
78  *      B-channel register offsets, from base
79  *---------------------------------------------------------------------------*/
80 #define B_RFIFO         0x00    /* B channel receive FIFO */
81 #define B_XFIFO         0x04    /* B channel transmit FIFO */
82 #define B_CMDR          0x08    /* B channel command register */
83 #define B_MODE          0x0c    /* B channel mode control */
84 #define B_EXIR          0x10    /* B channel extended interrupt */
85 #define B_EXIM          0x14    /* B channel extended interrupt mask */
86 #define B_STAR          0x18    /* B channel status register */
87 #define B_ADM1          0x1c    /* B channel address mask 1 */
88 #define B_ADM2          0x20    /* B channel address mask 2 */
89 #define B_ADR1          0x24    /* B channel address 1 */
90 #define B_ADR2          0x28    /* B channel address 2 */
91 #define B_RBCL          0x2c    /* B channel receive frame byte count high */
92 #define B_RBCH          0x30    /* B channel receive frame byte count low */
93
94 /*---------------------------------------------------------------------------*
95  *      Remaining control register offsets.
96  *---------------------------------------------------------------------------*/
97 #define ISTA            0x14    /* Interrupt status register */
98 #define IMASK           0x18    /* Interrupt mask register */
99 #define TIMR2           0x4c    /* Timer 2 */
100 #define L1_RC           0x50    /* GCI layer 1 ready code */
101 #define CIR             0x58    /* Command/Indication receive */
102 #define CIX             0x5c    /* Command/Indication transmit */
103 #define SQR             0x60    /* S/Q channel receive register */
104 #define SQX             0x64    /* S/Q channel transmit register */
105 #define PCTL            0x68    /* Peripheral control register */
106 #define MOR             0x6c    /* Monitor receive channel */
107 #define MOX             0x70    /* Monitor transmit channel */
108 #define MOSR            0x74    /* Monitor channel status register */
109 #define MOCR            0x78    /* Monitor channel control register */
110 #define GCR             0x7c    /* GCI mode control register */
111 #define XADDR           0xf4    /* Peripheral address register */
112 #define XDATA           0xf8    /* Peripheral data register */
113 #define EPCTL           0xfc    /* Serial EEPROM control */
114
115 /*---------------------------------------------------------------------------*
116  *      register bits
117  *---------------------------------------------------------------------------*/
118 #define D_CMDR_RACK     0x80
119 #define D_CMDR_RRST     0x40
120 #define D_CMDR_STT      0x10
121 #define D_CMDR_XMS      0x08
122 #define D_CMDR_XME      0x02
123 #define D_CMDR_XRST     0x01
124
125 #define D_MODE_MMS      0x80
126 #define D_MODE_RACT     0x40
127 #define D_MODE_TMS      0x10
128 #define D_MODE_TEE      0x08
129 #define D_MODE_MFD      0x04
130 #define D_MODE_DLP      0x02
131 #define D_MODE_RLP      0x01
132
133 #define D_TIMR_CNT(i)   (((i) >> 5) & 0x07)
134 #define D_TIMR_VAL(i)   ((i) & 0x1f)
135
136 #define ISTA_D_RMR      0x80
137 #define ISTA_D_RME      0x40
138 #define ISTA_D_XFR      0x20
139 #define ISTA_XINT1      0x10
140 #define ISTA_XINT0      0x08
141 #define ISTA_D_EXI      0x04
142 #define ISTA_B1_EXI     0x02
143 #define ISTA_B2_EXI     0x01
144
145 #define IMASK_D_RMR     0x80
146 #define IMASK_D_RME     0x40
147 #define IMASK_D_XFR     0x20
148 #define IMASK_XINT1     0x10
149 #define IMASK_XINT0     0x08
150 #define IMASK_D_EXI     0x04
151 #define IMASK_B1_EXI    0x02
152 #define IMASK_B2_EXI    0x01
153
154 #define D_EXIR_RDOV     0x80
155 #define D_EXIR_XDUN     0x40
156 #define D_EXIR_XCOL     0x20
157 #define D_EXIR_TIN2     0x10
158 #define D_EXIR_MOC      0x08
159 #define D_EXIR_ISC      0x04
160 #define D_EXIR_TEXP     0x02
161 #define D_EXIR_WEXP     0x01
162
163 #define D_EXIM_RDOV     0x80
164 #define D_EXIM_XDUN     0x40
165 #define D_EXIM_XCOL     0x20
166 #define D_EXIM_TIM2     0x10
167 #define D_EXIM_MOC      0x08
168 #define D_EXIM_ISC      0x04
169 #define D_EXIM_TEXP     0x02
170 #define D_EXIM_WEXP     0x01
171
172 #define D_STAR_XDOW     0x80
173 #define D_STAR_XBZ      0x20
174 #define D_STAR_DRDY     0x10
175
176 #define D_RSTA_RDOV     0x40
177 #define D_RSTA_CRCE     0x20
178 #define D_RSTA_RMB      0x10
179
180 #define D_RBCH_VN(i)    (((i) >> 6) & 0x03)
181 #define D_RBCH_LOV      0x20
182 #define D_RBC(h,l)      (((((h) & 0x1f)) << 8) + (l))
183
184 #define D_TIMR2_TMD     0x80
185 #define D_TIMR2_TBCN(i) ((i) & 0x3f)
186
187 #define L1_RC_RC(i)     ((i) & 0x0f)
188
189 #define D_CTL_WTT(i)    (((i) > 6) & 0x03)
190 #define D_CTL_SRST      0x20
191 #define D_CTL_TPS       0x04
192 #define D_CTL_OPS(i)    ((i) & 0x03)
193
194 #define CIR_SCC         0x80
195 #define CIR_ICC         0x40
196 #define CIR_CODR(i)     ((i) & 0x0f)
197
198 #define CIX_ECK         0x00
199 #define CIX_RST         0x01
200 #define CIX_SCP         0x04
201 #define CIX_SSP         0x02
202 #define CIX_AR8         0x08
203 #define CIX_AR10        0x09
204 #define CIX_EAL         0x0a
205 #define CIX_DRC         0x0f
206
207 #define CIR_CE          0x07
208 #define CIR_DRD         0x00
209 #define CIR_LD          0x04
210 #define CIR_ARD         0x08
211 #define CIR_TI          0x0a
212 #define CIR_ATI         0x0b
213 #define CIR_AI8         0x0c
214 #define CIR_AI10        0x0d
215 #define CIR_CD          0x0f
216
217 #define SQR_XIND1       0x80
218 #define SQR_XIND0       0x40
219 #define SQR_MSYN        0x20
220 #define SQR_SCIE        0x10
221 #define SQR_S(i)        ((i) & 0x0f)
222
223 #define SQX_SCIE        0x10
224 #define SQX_Q(i)        ((i) & 0x0f)
225
226
227 #define B_CMDR_RACK     0x80
228 #define B_CMDR_RRST     0x40
229 #define B_CMDR_RACT     0x20
230 #define B_CMDR_XMS      0x04
231 #define B_CMDR_XME      0x02
232 #define B_CMDR_XRST     0x01
233
234 #define B_MODE_MMS      0x80
235 #define B_MODE_ITF      0x40
236 #define B_MODE_EPCM     0x20
237 #define B_MODE_BSW1     0x10
238 #define B_MODE_BSW0     0x08
239 #define B_MODE_SW56     0x04
240 #define B_MODE_FTS1     0x02
241 #define B_MODE_FTS0     0x01
242
243 #define B_EXIR_RMR      0x40
244 #define B_EXIR_RME      0x20
245 #define B_EXIR_RDOV     0x10
246 #define B_EXIR_XFR      0x02
247 #define B_EXIR_XDUN     0x01
248
249 #define B_EXIM_RMR      0x40
250 #define B_EXIM_RME      0x20
251 #define B_EXIM_RDOV     0x10
252 #define B_EXIM_XFR      0x02
253 #define B_EXIM_XDUN     0x01
254
255 #define B_STAR_RDOV     0x40
256 #define B_STAR_CRCE     0x20
257 #define B_STAR_RMB      0x10
258 #define B_STAR_XDOW     0x04
259 #define B_STAR_XBZ      0x01
260
261 #define B_RBC(h,l)      (((((h) & 0x1f)) << 8) + (l))
262
263 #endif /* _I4B_W6692_H_ */