]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - sys/dev/utopia/idtphy.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / sys / dev / utopia / idtphy.h
1 /*-
2  * Copyright (c) 2003
3  *      Fraunhofer Institute for Open Communication Systems (FhG Fokus).
4  *      All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25  * SUCH DAMAGE.
26  *
27  * Author: Hartmut Brandt <harti@freebsd.org>
28  *
29  * $FreeBSD$
30  *
31  * Register definitions for the following chips:
32  *      IDT 77105
33  *      IDT 77155
34  */
35 #ifndef _DEV_UTOPIA_IDTPHY_H
36 #define _DEV_UTOPIA_IDTPHY_H
37
38 #define IDTPHY_REGO_MCR         0x00
39 #define IDTPHY_REGN_MCR         "Master Control Register"
40 #define IDTPHY_REGX_MCR         "\020\010UPLO\7DREC\6ECEI\5TDPC\4DRIC\3HALTTX\2BYTEM\1EI"
41 #define IDTPHY_REGM_MCR_UPL0    0x80
42 #define IDTPHY_REGM_MCR_DREC    0x40
43 #define IDTPHY_REGM_MCR_ECEI    0x20
44 #define IDTPHY_REGM_MCR_TDPC    0x10
45 #define IDTPHY_REGM_MCR_DRIC    0x08
46 #define IDTPHY_REGM_MCR_HALTTX  0x04
47 #define IDTPHY_REGM_MCR_BYTEM   0x02
48 #define IDTPHY_REGM_MCR_EI      0x01
49
50 #define IDTPHY_REGO_ISTAT       0x01
51 #define IDTPHY_REGN_ISTAT       "Interrupt Status"
52 #define IDTPHY_REGX_ISTAT       "\020\7GOOD\6HECE\5SCRE\4TPE\3RSCC\2RSE\1RFO"
53 #define IDTPHY_REGM_ISTAT_GOOD  0x40    /* good signal bit */
54 #define IDTPHY_REGM_ISTAT_HECE  0x20    /* HEC error */
55 #define IDTPHY_REGM_ISTAT_SCRE  0x10    /* short cell received error */
56 #define IDTPHY_REGM_ISTAT_TPE   0x08    /* transmit parity error */
57 #define IDTPHY_REGM_ISTAT_RSCC  0x04    /* receive signal condition change */
58 #define IDTPHY_REGM_ISTAT_RSE   0x02    /* receive symbol error */
59 #define IDTPHY_REGM_ISTAT_RFO   0x01    /* read FIFO overrun */
60
61 #define IDTPHY_REGO_DIAG        0x02
62 #define IDTPHY_REGN_DIAG        "Diagnostic Control"
63 #define IDTPHY_REGX_DIAG        "\020\010FTD\7ROS\6MULTI\5RFLUSH\4ITPE\3IHECE\11\3\0NORM\11\3\2PLOOP\11\3\3LLOOP"
64 #define IDTPHY_REGM_DIAG_FTD    0x80    /* Force TxClav Deassert */
65 #define IDTPHY_REGM_DIAG_ROS    0x40    /* RxClav Operation Select */
66 #define IDTPHY_REGM_DIAG_MULTI  0x20    /* Multi-phy operation */
67 #define IDTPHY_REGM_DIAG_RFLUSH 0x10    /* clear receive Fifo */
68 #define IDTPHY_REGM_DIAG_ITPE   0x08    /* insert transmit payload error */
69 #define IDTPHY_REGM_DIAG_IHECE  0x04    /* insert transmit HEC error */
70 #define IDTPHY_REGM_DIAG_LOOP   0x03    /* loopback mode */
71 #define IDTPHY_REGM_DIAG_LOOP_NONE      0x00    /* normal */
72 #define IDTPHY_REGM_DIAG_LOOP_PHY       0x02    /* PHY loopback */
73 #define IDTPHY_REGM_DIAG_LOOP_LINE      0x03    /* Line loopback */
74
75 #define IDTPHY_REGO_LHEC        0x03
76 #define IDTPHY_REGN_LHEC        "LED Driver and HEC Status/Control"
77 #define IDTPHY_REGX_LHEC        "\020\7DRHEC\6DTHEC\11\x18\0CYC1\11\x18\1CYC2\11\x18\2CYC4\11\x18\3CYC8\3FIFOE\2TXLED\1RXLED"
78 #define IDTPHY_REGM_LHEC_DRHEC  0x40    /* disable receive HEC */
79 #define IDTPHY_REGM_LHEC_DTHEC  0x20    /* disable transmit HEC */
80 #define IDTPHY_REGM_LHEC_RXREF  0x18    /* RxRef pulse width */
81 #define IDTPHY_REGM_LHEC_RXREF1 0x00    /* 1 pulse */
82 #define IDTPHY_REGM_LHEC_RXREF2 0x08    /* 2 pulse */
83 #define IDTPHY_REGM_LHEC_RXREF4 0x10    /* 4 pulse */
84 #define IDTPHY_REGM_LHEC_RXREF8 0x18    /* 8 pulse */
85 #define IDTPHY_REGM_LHEC_FIFOE  0x04    /* Fifo empty */
86 #define IDTPHY_REGM_LHEC_TXLED  0x02    /* Tx LED status */
87 #define IDTPHY_REGM_LHEC_RXLED  0x01    /* Rx LED status */
88
89 #define IDTPHY_REGO_CNT         0x04    /* +0x05 */
90 #define IDTPHY_REGN_CNT         "Counter"
91
92 #define IDTPHY_REGO_CNTS        0x06
93 #define IDTPHY_REGN_CNTS        "Counter select"
94 #define IDTPHY_REGX_CNTS        "\020\4SEC\3TX\2RX\1HECE"
95 #define IDTPHY_REGM_CNTS_SEC    0x08    /* symbol error counter */
96 #define IDTPHY_REGM_CNTS_TX     0x04    /* Tx cells */
97 #define IDTPHY_REGM_CNTS_RX     0x02    /* Rx cells */
98 #define IDTPHY_REGM_CNTS_HECE   0x01    /* HEC errors */
99
100 #define IDTPHY_PRINT_77105                                      \
101         { /* 00 */                                              \
102           UTP_REGT_BITS,        IDTPHY_REGO_MCR,                \
103           IDTPHY_REGN_MCR,      IDTPHY_REGX_MCR },              \
104         { /* 01 */                                              \
105           UTP_REGT_BITS,        IDTPHY_REGO_ISTAT,              \
106           IDTPHY_REGN_ISTAT,    IDTPHY_REGX_ISTAT },            \
107         { /* 02 */                                              \
108           UTP_REGT_BITS,        IDTPHY_REGO_DIAG,               \
109           IDTPHY_REGN_DIAG,     IDTPHY_REGX_DIAG },             \
110         { /* 03 */                                              \
111           UTP_REGT_BITS,        IDTPHY_REGO_LHEC,               \
112           IDTPHY_REGN_LHEC,     IDTPHY_REGX_LHEC },             \
113         { /* 04, 05 */                                          \
114           UTP_REGT_INT16,       IDTPHY_REGO_CNT,                \
115           IDTPHY_REGN_CNT,      NULL },                         \
116         { /* 06 */                                              \
117           UTP_REGT_BITS,        IDTPHY_REGO_CNTS,               \
118           IDTPHY_REGN_CNTS,     IDTPHY_REGX_CNTS }
119
120 #define IDTPHY_REGO_MRID        0x00
121 #define IDTPHY_REGN_MRID        "Master Reset & ID"
122 #define IDTPHY_REGM_MRID_RESET  0x80    /* software reset */
123 #define IDTPHY_REGM_MRID_TYPE   0x70    /* type */
124 #define IDTPHY_REGM_MRID_155    0x30    /* idt77155 type */
125 #define IDTPHY_REGM_MRID_ID     0x0f    /* revision */
126 #define IDTPHY_REGX_MRID        \
127             "\020\010mstReset\12\x70\12type\12\xf\12id"
128
129 #define IDTPHY_REGO_CONF        0x01
130 #define IDTPHY_REGN_CONF        "Configuration"
131 #define IDTPHY_REGM_CONF_AFEBE  0x40    /* autoFEBE */
132 #define IDTPHY_REGM_CONF_ALRDI  0x20    /* autoLRDI */
133 #define IDTPHY_REGM_CONF_APRDI  0x10    /* autoPRDI */
134 #define IDTPHY_REGM_CONF_TCAIN  0x08    /* TCAInv */
135 #define IDTPHY_REGM_CONF_RCAIN  0x04    /* RCAInv */
136 #define IDTPHY_REGM_CONF_RXDIN  0x02    /* RXDInv */
137 #define IDTPHY_REGM_CONF_RESV   0x81
138 #define IDTPHY_REGX_CONF        \
139             "\020\07autoFEBE\6autoLRDI\5autoPRDI\4TCAInv\3RCAInv\2RXDInv"
140
141 #define IDTPHY_REGO_INT         0x02
142 #define IDTPHY_REGN_INT         "Interrupt"
143 #define IDTPHY_REGM_INT_TXOOLI  0x80    /* txOOLInt */
144 #define IDTPHY_REGM_INT_RXLOCI  0x40    /* rxLOCInt */
145 #define IDTPHY_REGM_INT_RXOOLI  0x20    /* rxOOLInt */
146 #define IDTPHY_REGM_INT_TXCDI   0x10    /* txCDi */
147 #define IDTPHY_REGM_INT_RXCDI   0x08    /* rxCDi */
148 #define IDTPHY_REGM_INT_RXPOHI  0x04    /* rxPOHi */
149 #define IDTPHY_REGM_INT_RXLOHI  0x02    /* rxLOHi */
150 #define IDTPHY_REGM_INT_RXSOHI  0x01    /* rxSOHi */
151 #define IDTPHY_REGX_INT         \
152             "\020\10txOOLInt\7rxLOCInt\6rxOOLInt\5txCDi\4rxCDi\3rxPOHi" \
153             "\2rxLOHi\1rxSOHi"
154
155 #define IDTPHY_REGO_MCM         0x04
156 #define IDTPHY_REGN_MCM         "Master Clock Monitor"
157 #define IDTPHY_REGM_MCM_RRCLK   0x08    /* rrclkReg */
158 #define IDTPHY_REGM_MCM_TRCLK   0x04    /* trclkReg */
159 #define IDTPHY_REGM_MCM_RCLK    0x02    /* rclkReg */
160 #define IDTPHY_REGM_MCM_TCLK    0x01    /* tclkReg */
161 #define IDTPHY_REGM_MCM_RESV    0xf0
162 #define IDTPHY_REGX_MCM         \
163             "\020\4rrclkReg\3trclkReg\2rclkReg\1tclkReg"
164
165 #define IDTPHY_REGO_MCTL        0x05
166 #define IDTPHY_REGN_MCTL        "Master Control"
167 #define IDTPHY_REGM_MCTL_LOCI   0x80    /* rxLOCIEn */
168 #define IDTPHY_REGM_MCTL_LOC    0x40    /* LOC */
169 #define IDTPHY_REGM_MCTL_FIXP   0x20    /* txFixptr */
170 #define IDTPHY_REGM_MCTL_LLOOP  0x04    /* txLLoop */
171 #define IDTPHY_REGM_MCTL_DLOOP  0x02    /* rxDLoop */
172 #define IDTPHY_REGM_MCTL_TLOOP  0x01    /* rxLoopT */
173 #define IDTPHY_REGM_MCTL_RESV   0x18
174 #define IDTPHY_REGX_MCTL        \
175             "\020\10rxLOCIEn\7LOC\6txFixptr\3txLLoop\2rxDLoop\1rxLoopT"
176
177 #define IDTPHY_REGO_TXC         0x06
178 #define IDTPHY_REGN_TXC         "Transmit Clock Synthesis C/S"
179 #define IDTPHY_REGM_TXC_TXOOL   0x08    /* txOOL */
180 #define IDTPHY_REGM_TXC_TXOOLI  0x02    /* txOOLIEn */
181 #define IDTPHY_REGM_TXC_TXREF   0x01    /* txrefSel */
182 #define IDTPHY_REGM_TXC_RESV    0xf4
183 #define IDTPHY_REGX_TXC         \
184             "\020\4txOOL\2txOOLIEn\1txrefSel"
185
186 #define IDTPHY_REGO_RXC         0x07
187 #define IDTPHY_REGN_RXC         "Receive Clock/Data Recovery C/S"
188 #define IDTPHY_REGM_RXC_RXOOL   0x08    /* rxOOL */
189 #define IDTPHY_REGM_RXC_RXOOLI  0x02    /* rxOOLIEn */
190 #define IDTPHY_REGM_RXC_RXREF   0x01    /* rxrefSel */
191 #define IDTPHY_REGM_RXC_RESV    0xf4
192 #define IDTPHY_REGX_RXC         \
193             "\020\4rxOOL\2rxOOLIEn\1rxrefSel"
194
195 #define IDTPHY_REGO_RSOC        0x10
196 #define IDTPHY_REGN_RSOC        "Receive Overhead Control"
197 #define IDTPHY_REGM_RSOC_DSCR   0x40    /* scrDis */
198 #define IDTPHY_REGM_RSOC_FOOF   0x20    /* frcOOF */
199 #define IDTPHY_REGM_RSOC_B1IE   0x08    /* B1ErrIEn */
200 #define IDTPHY_REGM_RSOC_LOSI   0x04    /* LOSIEn */
201 #define IDTPHY_REGM_RSOC_LOFI   0x02    /* LOFIEn */
202 #define IDTPHY_REGM_RSOC_OOFI   0x01    /* OOFIEn */
203 #define IDTPHY_REGM_RSOC_RESV   0x90
204 #define IDTPHY_REGX_RSOC        \
205             "\020\7scrDis\6frcOOF\4B1ErrIEn\3LOSIEn\2LOFIEn\1OOFIEn"
206
207 #define IDTPHY_REGO_RSOS        0x11
208 #define IDTPHY_REGN_RSOS        "Receive Overhead Status"
209 #define IDTPHY_REGM_RSOS_C1INT  0x80    /* C1Int */
210 #define IDTPHY_REGM_RSOS_B1INT  0x40    /* B1ErrInt */
211 #define IDTPHY_REGM_RSOS_LOSI   0x20    /* LOSInt */
212 #define IDTPHY_REGM_RSOS_LOFI   0x10    /* LOFInt */
213 #define IDTPHY_REGM_RSOS_OOFI   0x08    /* OOFInt */
214 #define IDTPHY_REGM_RSOS_LOS    0x04    /* LOS */
215 #define IDTPHY_REGM_RSOS_LOF    0x02    /* LOF */
216 #define IDTPHY_REGM_RSOS_OOF    0x01    /* OOF */
217 #define IDTPHY_REGX_RSOS        \
218             "\020\10C1Int\7B1ErrInt\6LOSInt\5LOFInt\4OOFint\3LOS\2LOF\1OOF"
219
220 #define IDTPHY_REGO_BIPC        0x12    /* + 0x13 LE */
221 #define IDTPHY_REGN_BIPC        "Receive Section BIP Errors"
222
223 #define IDTPHY_REGO_TSOC        0x14
224 #define IDTPHY_REGN_TSOC        "Transmit Overhead Control"
225 #define IDTPHY_REGM_TSOC_DSCR   0x40    /* scrDis */
226 #define IDTPHY_REGM_TSOC_LAISI  0x01    /* LAISIns */
227 #define IDTPHY_REGM_TSOC_RESV   0xbe
228 #define IDTPHY_REGX_TSOC        \
229             "\020\7scrDis\1LAISIns"
230
231 #define IDTPHY_REGO_TSOC2       0x15
232 #define IDTPHY_REGN_TSOC2       "Transmit Overhead Control 2"
233 #define IDTPHY_REGM_TSOC2_LOSI  0x04    /* LOSIns */
234 #define IDTPHY_REGM_TSOC2_B1INV 0x02    /* B1Inv */
235 #define IDTPHY_REGM_TSOC2_IFE   0x01    /* frErrIns */
236 #define IDTPHY_REGM_TSOC2_RESV  0xf8
237 #define IDTPHY_REGX_TSOC2       \
238             "\020\3LOSIns\2B1Inv\1frErrIns"
239
240 #define IDTPHY_REGO_RLOS        0x18
241 #define IDTPHY_REGN_RLOS        "Receive Line Overhead Status"
242 #define IDTPHY_REGM_RLOS_B2W    0x80    /* B2Word */
243 #define IDTPHY_REGM_RLOS_LAIS   0x02    /* LAIS */
244 #define IDTPHY_REGM_RLOS_LRDI   0x01    /* LRDI */
245 #define IDTPHY_REGM_RLOS_RESV   0x7c
246 #define IDTPHY_REGX_RLOS        \
247             "\020\10B2Word\2LAIS\1LRDI"
248
249 #define IDTPHY_REGO_RLOI        0x19
250 #define IDTPHY_REGN_RLOI        "Receive Line Overhead Interrupt"
251 #define IDTPHY_REGM_RLOI_LFEBEE 0x80    /* LFEBEIEn */
252 #define IDTPHY_REGM_RLOI_B2EE   0x40    /* B2ErrIEn */
253 #define IDTPHY_REGM_RLOI_LAISE  0x20    /* LAISIEn */
254 #define IDTPHY_REGM_RLOI_LRDIE  0x10    /* LRDIIEn */
255 #define IDTPHY_REGM_RLOI_LFEBEI 0x08    /* LFEBEInt */
256 #define IDTPHY_REGM_RLOI_B2EI   0x04    /* B2ErrInt */
257 #define IDTPHY_REGM_RLOI_LAISI  0x02    /* LAISInt */
258 #define IDTPHY_REGM_RLOI_LRDII  0x01    /* LRDIInt */
259 #define IDTPHY_REGX_RLOI        \
260             "\020\10LFEBEIEn\7B2ErrIEn\6LAISIEn\5LRDIIEn\4LFEBEInt\3B2ErrInt" \
261             "\2LAISInt\1LRDIInt"
262
263 #define IDTPHY_REGO_B2EC        0x1a    /* + 0x1b, 0x1c, 20bit LE */
264 #define IDTPHY_REGN_B2EC        "B2 Errors"
265
266 #define IDTPHY_REGO_FEBEC       0x1d    /* + 0x1e, 0x1f, 20bit LE */
267 #define IDTPHY_REGN_FEBEC       "Line FEBE Errors"
268
269 #define IDTPHY_REGO_TLOS        0x20
270 #define IDTPHY_REGN_TLOS        "Transmit Line Overhead Status"
271 #define IDTPHY_REGM_TLOS_LRDI   0x01    /* LRDI */
272 #define IDTPHY_REGM_TLOS_RESV   0xfe
273 #define IDTPHY_REGX_TLOS        \
274             "\020\1LRDI"
275
276 #define IDTPHY_REGO_TLOC        0x21
277 #define IDTPHY_REGN_TLOC        "Transmit Line Overhead Control"
278 #define IDTPHY_REGM_TLOC_B2INV  0x01    /* B2Inv */
279 #define IDTPHY_REGM_TLOC_RESV   0xfe
280 #define IDTPHY_REGX_TLOC        \
281             "\020\1B2Inv"
282
283 #define IDTPHY_REGO_TK1         0x24
284 #define IDTPHY_REGN_TK1         "Transmit K1"
285
286 #define IDTPHY_REGO_TK2         0x25
287 #define IDTPHY_REGN_TK2         "Transmit K2"
288
289 #define IDTPHY_REGO_RK1         0x26
290 #define IDTPHY_REGN_RK1         "Receive K1"
291
292 #define IDTPHY_REGO_RK2         0x27
293 #define IDTPHY_REGN_RK2         "Receive K2"
294
295 #define IDTPHY_REGO_RPOS        0x30
296 #define IDTPHY_REGN_RPOS        "Receive Path Overhead Status"
297 #define IDTPHY_REGM_RPOS_LOP    0x20    /* LOP */
298 #define IDTPHY_REGM_RPOS_PAIS   0x08    /* PAIS */
299 #define IDTPHY_REGM_RPOS_PRDI   0x04    /* PRDI */
300 #define IDTPHY_REGM_RPOS_RESV   0xd3
301 #define IDTPHY_REGX_RPOS        \
302             "\020\6LOP\4PAIS\3PRDI"
303
304 #define IDTPHY_REGO_RPOI        0x31
305 #define IDTPHY_REGN_RPOI        "Receive Path Overhead Interrupt"
306 #define IDTPHY_REGM_RPOI_C2I    0x80    /* C2Int */
307 #define IDTPHY_REGM_RPOI_LOPI   0x20    /* LOPInt */
308 #define IDTPHY_REGM_RPOI_PAISI  0x08    /* PAISInt */
309 #define IDTPHY_REGM_RPOI_PRDII  0x04    /* PRDIInt */
310 #define IDTPHY_REGM_RPOI_B3EI   0x02    /* B3ErrInt */
311 #define IDTPHY_REGM_RPOI_PFEBEI 0x01    /* PFEBEInt */
312 #define IDTPHY_REGM_RPOI_RESV   0x50
313 #define IDTPHY_REGX_RPOI        \
314             "\020\10C2Int\6LOPInt\4PAISInt\3PRDIInt\2B3ErrInt\1PFEBEInt"
315
316 #define IDTPHY_REGO_RPIE        0x33
317 #define IDTPHY_REGN_RPIE        "Receive Path Interrupt Enable"
318 #define IDTPHY_REGM_RPIE_C2E    0x80    /* C2IEn */
319 #define IDTPHY_REGM_RPIE_LOPE   0x20    /* LOPIEn */
320 #define IDTPHY_REGM_RPIE_PAISE  0x08    /* PAISIEn */
321 #define IDTPHY_REGM_RPIE_PRDIE  0x04    /* PRDIIEn */
322 #define IDTPHY_REGM_RPIE_B3EE   0x02    /* B3ErrIEn */
323 #define IDTPHY_REGM_RPIE_PFEBEE 0x01    /* PFEBEIEn */
324 #define IDTPHY_REGM_RPIE_RESV   0x50
325 #define IDTPHY_REGX_RPIE        \
326             "\020\10CSIEn\6LOPIEn\4PAISIEn\3PRDIIEn\2B3ErrIEn\1PFEBEIEn"
327
328 #define IDTPHY_REGO_RC2         0x37
329 #define IDTPHY_REGN_RC2         "Receive C2"
330
331 #define IDTPHY_REGO_B3EC        0x38    /* + 0x39, LE, 16bit */
332 #define IDTPHY_REGN_B3EC        "B3 Errors"
333
334 #define IDTPHY_REGO_PFEBEC      0x3a    /* + 0x3b, LE, 16bit */
335 #define IDTPHY_REGN_PFEBEC      "Path FEBE Errors"
336
337 #define IDTPHY_REGO_RPEC        0x3d
338 #define IDTPHY_REGN_RPEC        "Receive Path BIP Error Control"
339 #define IDTPHY_REGM_RPEC_B3C    0x20    /* blkBIP */
340 #define IDTPHY_REGM_RPEC_RESV   0xdf
341 #define IDTPHY_REGX_RPEC        \
342             "\020\6blkBIP"
343
344 #define IDTPHY_REGO_TPOC        0x40
345 #define IDTPHY_REGN_TPOC        "Transmit Path Control"
346 #define IDTPHY_REGM_TPOC_B3INV  0x02    /* B3Inv */
347 #define IDTPHY_REGM_TPOC_PAISI  0x01    /* PAISIns */
348 #define IDTPHY_REGM_TPOC_RESC   0xfc
349 #define IDTPHY_REGX_TPOC        \
350            "\020\2B3Inv\1PAISIns"
351
352 #define IDTPHY_REGO_TPTC        0x41
353 #define IDTPHY_REGN_TPTC        "Transmit Pointer Control"
354 #define IDTPHY_REGM_TPTC_FPTR   0x40    /* frcPtr */
355 #define IDTPHY_REGM_TPTC_STUFF  0x20    /* stuffCtl */
356 #define IDTPHY_REGM_TPTC_PTR    0x10    /* Ptr */
357 #define IDTPHY_REGM_TPTC_NDF    0x08    /* NDF */
358 #define IDTPHY_REGM_TPTC_DECP   0x04    /* decPtr */
359 #define IDTPHY_REGM_TPTC_INCP   0x02    /* incPtr */
360 #define IDTPHY_REGM_TPTC_RESV   0x81
361 #define IDTPHY_REGX_TPTC        \
362             "\020\7frcPtr\6stuffCtl\5Ptr\4NDF\3decPtr\2incPtr"
363
364 #define IDTPHY_REGO_PTRL        0x45
365 #define IDTPHY_REGN_PTRL        "Transmit Pointer LSB"
366 #define IDTPHY_REGX_PTRL        \
367             "\020\12\xff\20arbPtr"
368
369 #define IDTPHY_REGO_PTRM        0x46
370 #define IDTPHY_REGN_PTRM        "Transmit Pointer MSB"
371 #define IDTPHY_REGM_PTRM_NDF    0xf0    /* NDFVal */
372 #define IDTPHY_REGS_PTRM_NDF    4
373 #define IDTPHY_REGM_PTRM_SS     0x0c    /* ssBit */
374 #define IDTPHY_REGM_PTRM_SONET  0x00
375 #define IDTPHY_REGM_PTRM_SDH    0x08
376 #define IDTPHY_REGM_PTRM_PTR    0x03
377 #define IDTPHY_REGX_PTRM        \
378             "\020\12\xf0\20NDFVal\12\xc\20ssBit\12\x3\20arbPtr"
379
380 #define IDTPHY_REGO_TC2         0x48
381 #define IDTPHY_REGN_TC2         "Transmit C2"
382
383 #define IDTPHY_REGO_TPOC2       0x49
384 #define IDTPHY_REGN_TPOC2       "Transmit Path Control 2"
385 #define IDTPHY_REGM_TPOC2_FEBE  0xf0    /* PFEBEIns */
386 #define IDTPHY_REGS_TPOC2_FEBE  4
387 #define IDTPHY_REGM_TPOC2_PRDII 0x08    /* PRDIIns */
388 #define IDTPHY_REGM_TPOC2_G1    0x07    /* G1Ins */
389 #define IDTPHY_REGX_TPOC2       \
390             "\020\12\xf0\20PFEBEIns\4PRDIIns\12\x7\20G1Ins"
391
392 #define IDTPHY_REGO_RCC         0x50
393 #define IDTPHY_REGN_RCC         "Receive Cell Control"
394 #define IDTPHY_REGM_RCC_OCD     0x80    /* OCD */
395 #define IDTPHY_REGM_RCC_PARTY   0x40    /* parity */
396 #define IDTPHY_REGM_RCC_PASS    0x20    /* pass */
397 #define IDTPHY_REGM_RCC_DCOR    0x10    /* corDis */
398 #define IDTPHY_REGM_RCC_DHEC    0x08    /* HECdis */
399 #define IDTPHY_REGM_RCC_ADD     0x04    /* csetAdd */
400 #define IDTPHY_REGM_RCC_DSCR    0x02    /* scrDis */
401 #define IDTPHY_REGM_RCC_RFIFO   0x01    /* rxFIFOrst */
402 #define IDTPHY_REGX_RCC         \
403             "\020\10OCD\7parity\6pass\5corDis\4HECdis\3csetAdd" \
404             "\2scrDis\1rxFIFOrst"
405
406 #define IDTPHY_REGO_RCI         0x51
407 #define IDTPHY_REGN_RCI         "Receive Cell Interrupt"
408 #define IDTPHY_REGM_RCI_OCDE    0x80    /* OCDIEn */
409 #define IDTPHY_REGM_RCI_HECE    0x40    /* HECIEn */
410 #define IDTPHY_REGM_RCI_OVFE    0x20    /* ovfIEn */
411 #define IDTPHY_REGM_RCI_OCDI    0x10    /* OCDInt */
412 #define IDTPHY_REGM_RCI_CORI    0x08    /* corInt */
413 #define IDTPHY_REGM_RCI_UCORI   0x04    /* uncorInt */
414 #define IDTPHY_REGM_RCI_OVFI    0x02    /* ovfInt */
415 #define IDTPHY_REGM_RCI_RESV    0x01
416 #define IDTPHY_REGX_RCI         \
417             "\020\10OCDIEn\7HECIEn\6ovfIEn\5OCDInt\4corInt\3uncorInt\2ovfInt"
418
419 #define IDTPHY_REGO_CMH         0x52
420 #define IDTPHY_REGN_CMH         "Receive Cell Match Header"
421 #define IDTPHY_REGM_CMH_GFC     0xf0    /* GFC */
422 #define IDTPHY_REGS_CMH_GFC     4
423 #define IDTPHY_REGM_CMH_PTI     0x0e    /* PTI */
424 #define IDTPHY_REGS_CMH_PTI     1
425 #define IDTPHY_REGM_CMH_CLP     0x01    /* CLP */
426 #define IDTPHY_REGX_CMH         \
427             "\020\12\xf0\20GFC\12\xe\20PTI\12\x1\20CLP"
428
429 #define IDTPHY_REGO_CMHM        0x53
430 #define IDTPHY_REGN_CMHM        "Receive Cell Match Header Mask"
431 #define IDTPHY_REGM_CMHM_GFC    0xf0    /* mskGFC */
432 #define IDTPHY_REGS_CMHM_GFC    4
433 #define IDTPHY_REGM_CMHM_PTI    0x0e    /* mskPTI */
434 #define IDTPHY_REGS_CMHM_PTI    1
435 #define IDTPHY_REGM_CMHM_CLP    0x01    /* mskCLP */
436 #define IDTPHY_REGX_CMHM        \
437             "\020\12\xf0\20mskGFC\12\xe\20mskPTI\12\x1\20mskCLP"
438
439 #define IDTPHY_REGO_CEC         0x54
440 #define IDTPHY_REGN_CEC         "Correctable Errors"
441
442 #define IDTPHY_REGO_UEC         0x55
443 #define IDTPHY_REGN_UEC         "Uncorrectable Errors"
444
445 #define IDTPHY_REGO_RCCNT       0x56    /* +0x57, 0x58, LE, 19bit */
446 #define IDTPHY_REGN_RCCNT       "Receive Cells"
447
448 #define IDTPHY_REGO_RCCF        0x59
449 #define IDTPHY_REGN_RCCF        "Receive Cell Configuration"
450 #define IDTPHY_REGM_RCCF_GFCE   0xf0    /* GFCen */
451 #define IDTPHY_REGS_RCCF_GFCE   4
452 #define IDTPHY_REGM_RCCF_FIXS   0x08    /* FixSen */
453 #define IDTPHY_REGM_RCCF_RCAL   0x04    /* RCAlevel */
454 #define IDTPHY_REGM_RCCF_HECF   0x03    /* HECftr */
455 #define IDTPHY_REGX_RCCF        \
456             "\020\12\xf0\20GFCen\4FixSen\3RCAlevel\12\x3\20HECftr"
457
458 #define IDTPHY_REGO_RXID        0x5a
459 #define IDTPHY_REGN_RXID        "Receive ID Address"
460 #define IDTPHY_REGM_RXID_ID     0x03    /* IDAddr */
461 #define IDTPHY_REGM_RXID_RESV   0xfc
462 #define IDTPHY_REGX_RXID        \
463             "\020\12\x3\20IDAddr"
464
465 #define IDTPHY_REGO_TCC         0x60
466 #define IDTPHY_REGN_TCC         "Transmit Cell Control"
467 #define IDTPHY_REGM_TCC_FIFOE   0x80    /* fovrIEn */
468 #define IDTPHY_REGM_TCC_SOCI    0x40    /* socInt */
469 #define IDTPHY_REGM_TCC_FIFOI   0x20    /* fovrInt */
470 #define IDTPHY_REGM_TCC_HECINV  0x10    /* HECInv */
471 #define IDTPHY_REGM_TCC_HECDIS  0x08    /* HECDis */
472 #define IDTPHY_REGM_TCC_ADD     0x04    /* csetAdd */
473 #define IDTPHY_REGM_TCC_DSCR    0x02    /* scrDis */
474 #define IDTPHY_REGM_TCC_FIFOR   0x01    /* txFIFOrst */
475 #define IDTPHY_REGX_TCC         \
476             "\020\10fovrIEn\7socInt\6fovrInt\5HECInv\4HECDis\3csetAdd" \
477             "\2scrDis\1txFIFOrst"
478
479 #define IDTPHY_REGO_TCHP        0x61
480 #define IDTPHY_REGN_TCHP        "Transmit Idle Cell Header"
481 #define IDTPHY_REGM_TCHP_GFC    0xf0    /* GFCtx */
482 #define IDTPHY_REGS_TCHP_GFC    4
483 #define IDTPHY_REGM_TCHP_PTI    0x0e    /* PTItx */
484 #define IDTPHY_REGS_TCHP_PTI    1
485 #define IDTPHY_REGM_TCHP_CLP    0x01    /* CLPtx */
486 #define IDTPHY_REGX_TCHP        \
487             "\020\12\xf0\20GFCtx\12\xe\20PTItx\12\x1\20CLPtx"
488
489 #define IDTPHY_REGO_TPLD        0x62
490 #define IDTPHY_REGN_TPLD        "Transmit Idle Cell Payload"
491
492 #define IDTPHY_REGO_TCC2        0x63
493 #define IDTPHY_REGN_TCC2        "Transmit Cell Configuration 2"
494 #define IDTPHY_REGM_TCC2_PARITY 0x80    /* parity */
495 #define IDTPHY_REGM_TCC2_PARE   0x40    /* parIEn */
496 #define IDTPHY_REGM_TCC2_PARI   0x10    /* parInt */
497 #define IDTPHY_REGM_TCC2_FIFO   0x0c    /* FIFOdpth */
498 #define IDTPHY_REGS_TCC2_FIFO   2
499 #define IDTPHY_REGM_TCC2_TCAL   0x02    /* TCAlevel */
500 #define IDTPHY_REGM_TCC2_RESV   0x01
501 #define IDTPHY_REGX_TCC2        \
502             "\020\10parity\7parIEn\5parInt\12\xc\20FIFOdpth\2TCAlevel"
503
504 #define IDTPHY_REGO_TXCNT       0x64    /* +65,66 LE 19bit */
505 #define IDTPHY_REGN_TXCNT       "Transmit Cells"
506
507 #define IDTPHY_REGO_TCC3        0x67
508 #define IDTPHY_REGN_TCC3        "Transmit Cell Configuration 3"
509 #define IDTPHY_REGM_TCC3_GFCE   0xf0    /* txGFCen */
510 #define IDTPHY_REGS_TCC3_GFCE   4
511 #define IDTPHY_REGM_TCC3_FIXE   0x08    /* txFixSen */
512 #define IDTPHY_REGM_TCC3_H4ID   0x04    /* H4InsDis */
513 #define IDTPHY_REGM_TCC3_FIXB   0x03    /* fixByte */
514 #define IDTPHY_REGM_TCC3_FIX00  0x00    /* 0x00 */
515 #define IDTPHY_REGM_TCC3_FIX55  0x01    /* 0x55 */
516 #define IDTPHY_REGM_TCC3_FIXAA  0x02    /* 0xAA */
517 #define IDTPHY_REGM_TCC3_FIXFF  0x03    /* 0xFF */
518 #define IDTPHY_REGX_TCC3        \
519             "\020\12\xf0\20txGFCen\4txFixSen\3H4InsDis" \
520             "\11\x3\x0FIX00\11\x3\x1FIX55\11\x3\x2FIXAA\11\x3\x3FIXFF"
521
522 #define IDTPHY_REGO_TXID        0x68
523 #define IDTPHY_REGN_TXID        "Transmit ID Address"
524 #define IDTPHY_REGM_TXID_ID     0x03    /* txIDAddr */
525 #define IDTPHY_REGM_TXID_RESV   0xfc
526 #define IDTPHY_REGX_TXID        \
527             "\020\12\x3\20txIDAddr"
528
529 #define IDTPHY_REGO_RBER        0x70
530 #define IDTPHY_REGN_RBER        "Receive BER S/C"
531 #define IDTPHY_REGM_RBER_FAILE  0x08    /* FailIEn */
532 #define IDTPHY_REGM_RBER_WARNE  0x04    /* WarnIEn */
533 #define IDTPHY_REGM_RBER_FAIL   0x02    /* BERfail */
534 #define IDTPHY_REGM_RBER_WARN   0x01    /* BERwarn */
535 #define IDTPHY_REGM_RBER_RESV   0xf0
536 #define IDTPHY_REGX_RBER        \
537             "\020\4FailIEn\3WarnIEn\2BERfail\1BERwarn"
538
539 #define IDTPHY_REGO_BFTH        0x71
540 #define IDTPHY_REGN_BFTH        "Receive BER Fail Threshold"
541
542 #define IDTPHY_REGO_BFWIN       0x72
543 #define IDTPHY_REGN_BFWIN       "Receive BER Fail Window"
544
545 #define IDTPHY_REGO_BFDEN       0x73    /* +74, 16bit LE */
546 #define IDTPHY_REGN_BFDEN       "Receive BER Fail Denominator"
547
548 #define IDTPHY_REGO_BWTH        0x75
549 #define IDTPHY_REGN_BWTH        "Receive BER Warn Threshold"
550
551 #define IDTPHY_REGO_BWWIN       0x76
552 #define IDTPHY_REGN_BWWIN       "Receive BER Warn Window"
553
554 #define IDTPHY_REGO_BWDEN       0x77    /* +78, 16bit LE */
555 #define IDTPHY_REGN_BWDEN       "Receive BER Warn Denomiator"
556
557 #define IDTPHY_REGO_OPEC        0x7f
558 #define IDTPHY_REGN_OPEC        "Output PECL Control"
559 #define IDTPHY_REGM_OPEC_TXC    0x04    /* pcctl_tc */
560 #define IDTPHY_REGM_OPEC_TXD    0x02    /* pcctl_td */
561 #define IDTPHY_REGM_OPEC_RXDO   0x01    /* pcctl_r */
562 #define IDTPHY_REGM_OPEC_RESV   0xf8
563 #define IDTPHY_REGX_OPEC        \
564             "\020\3pctl_tc\2pcctl_td\1pcctl_r"
565
566 #define IDTPHY_PRINT_77155                                      \
567         { /* 00 */                                              \
568           UTP_REGT_BITS,        IDTPHY_REGO_MRID,               \
569           IDTPHY_REGN_MRID,     IDTPHY_REGX_MRID },             \
570         { /* 01 */                                              \
571           UTP_REGT_BITS,        IDTPHY_REGO_CONF,               \
572           IDTPHY_REGN_CONF,     IDTPHY_REGX_CONF },             \
573         { /* 02 */                                              \
574           UTP_REGT_BITS,        IDTPHY_REGO_INT,                \
575           IDTPHY_REGN_INT,      IDTPHY_REGX_INT },              \
576           /* 03 unused */                                       \
577         { /* 04 */                                              \
578           UTP_REGT_BITS,        IDTPHY_REGO_MCM,                \
579           IDTPHY_REGN_MCM,      IDTPHY_REGX_MCM },              \
580         { /* 05 */                                              \
581           UTP_REGT_BITS,        IDTPHY_REGO_MCTL,               \
582           IDTPHY_REGN_MCTL,     IDTPHY_REGX_MCTL },             \
583         { /* 06 */                                              \
584           UTP_REGT_BITS,        IDTPHY_REGO_TXC,                \
585           IDTPHY_REGN_TXC,      IDTPHY_REGX_TXC },              \
586         { /* 07 */                                              \
587           UTP_REGT_BITS,        IDTPHY_REGO_RXC,                \
588           IDTPHY_REGN_RXC,      IDTPHY_REGX_RXC },              \
589           /* 08-0f unused */                                    \
590         { /* 10 */                                              \
591           UTP_REGT_BITS,        IDTPHY_REGO_RSOC,               \
592           IDTPHY_REGN_RSOC,     IDTPHY_REGX_RSOC },             \
593         { /* 11 */                                              \
594           UTP_REGT_BITS,        IDTPHY_REGO_RSOS,               \
595           IDTPHY_REGN_RSOS,     IDTPHY_REGX_RSOS },             \
596         { /* 12, 13 */                                          \
597           UTP_REGT_INT16,       IDTPHY_REGO_BIPC,               \
598           IDTPHY_REGN_BIPC,     NULL },                         \
599         { /* 14 */                                              \
600           UTP_REGT_BITS,        IDTPHY_REGO_TSOC,               \
601           IDTPHY_REGN_TSOC,     IDTPHY_REGX_TSOC },             \
602         { /* 15 */                                              \
603           UTP_REGT_BITS,        IDTPHY_REGO_TSOC2,              \
604           IDTPHY_REGN_TSOC2,    IDTPHY_REGX_TSOC2 },            \
605           /* 16, 17 unused */                                   \
606         { /* 18 */                                              \
607           UTP_REGT_BITS,        IDTPHY_REGO_RLOS,               \
608           IDTPHY_REGN_RLOS,     IDTPHY_REGX_RLOS },             \
609         { /* 19 */                                              \
610           UTP_REGT_BITS,        IDTPHY_REGO_RLOI,               \
611           IDTPHY_REGN_RLOI,     IDTPHY_REGX_RLOI },             \
612         { /* 1a-1c */                                           \
613           UTP_REGT_INT20,       IDTPHY_REGO_B2EC,               \
614           IDTPHY_REGN_B2EC,     NULL },                         \
615         { /* 1d-1f */                                           \
616           UTP_REGT_INT20,       IDTPHY_REGO_FEBEC,              \
617           IDTPHY_REGN_FEBEC,    NULL },                         \
618         { /* 20 */                                              \
619           UTP_REGT_BITS,        IDTPHY_REGO_TLOS,               \
620           IDTPHY_REGN_TLOS,     IDTPHY_REGX_TLOS },             \
621         { /* 21 */                                              \
622           UTP_REGT_BITS,        IDTPHY_REGO_TLOC,               \
623           IDTPHY_REGN_TLOC,     IDTPHY_REGX_TLOC },             \
624           /* 22, 23 unused */                                   \
625         { /* 24 */                                              \
626           UTP_REGT_INT8,        IDTPHY_REGO_TK1,                \
627           IDTPHY_REGN_TK1,      NULL },                         \
628         { /* 25 */                                              \
629           UTP_REGT_INT8,        IDTPHY_REGO_TK2,                \
630           IDTPHY_REGN_TK2,      NULL },                         \
631         { /* 26 */                                              \
632           UTP_REGT_INT8,        IDTPHY_REGO_RK1,                \
633           IDTPHY_REGN_RK1,      NULL },                         \
634         { /* 27 */                                              \
635           UTP_REGT_INT8,        IDTPHY_REGO_RK2,                \
636           IDTPHY_REGN_RK2,      NULL },                         \
637           /* 28-2f unused */                                    \
638         { /* 30 */                                              \
639           UTP_REGT_BITS,        IDTPHY_REGO_RPOS,               \
640           IDTPHY_REGN_RPOS,     IDTPHY_REGX_RPOS },             \
641         { /* 31 */                                              \
642           UTP_REGT_BITS,        IDTPHY_REGO_RPOI,               \
643           IDTPHY_REGN_RPOI,     IDTPHY_REGX_RPOI },             \
644           /* 32 unused */                                       \
645         { /* 33 */                                              \
646           UTP_REGT_BITS,        IDTPHY_REGO_RPIE,               \
647           IDTPHY_REGN_RPIE,     IDTPHY_REGX_RPIE },             \
648           /* 34-36 unused */                                    \
649         { /* 37 */                                              \
650           UTP_REGT_INT8,        IDTPHY_REGO_RC2,                \
651           IDTPHY_REGN_RC2,      NULL },                         \
652         { /* 38-39 */                                           \
653           UTP_REGT_INT16,       IDTPHY_REGO_B3EC,               \
654           IDTPHY_REGN_B3EC,     NULL },                         \
655         { /* 3a-3b */                                           \
656           UTP_REGT_INT16,       IDTPHY_REGO_PFEBEC,             \
657           IDTPHY_REGN_PFEBEC,   NULL },                         \
658           /* 3c unused */                                       \
659         { /* 3d */                                              \
660           UTP_REGT_BITS,        IDTPHY_REGO_RPEC,               \
661           IDTPHY_REGN_RPEC,     IDTPHY_REGX_RPEC },             \
662           /* 3e, 3f unused */                                   \
663         { /* 40 */                                              \
664           UTP_REGT_BITS,        IDTPHY_REGO_TPOC,               \
665           IDTPHY_REGN_TPOC,     IDTPHY_REGX_TPOC },             \
666         { /* 41 */                                              \
667           UTP_REGT_BITS,        IDTPHY_REGO_TPTC,               \
668           IDTPHY_REGN_TPTC,     IDTPHY_REGX_TPTC },             \
669           /* 42-44 unused */                                    \
670         { /* 45 */                                              \
671           UTP_REGT_BITS,        IDTPHY_REGO_PTRL,               \
672           IDTPHY_REGN_PTRL,     IDTPHY_REGX_PTRL },             \
673         { /* 46 */                                              \
674           UTP_REGT_BITS,        IDTPHY_REGO_PTRM,               \
675           IDTPHY_REGN_PTRM,     IDTPHY_REGX_PTRM },             \
676           /* 47 unused */                                       \
677         { /* 48 */                                              \
678           UTP_REGT_INT8,        IDTPHY_REGO_TC2,                \
679           IDTPHY_REGN_TC2,      NULL },                         \
680         { /* 49 */                                              \
681           UTP_REGT_BITS,        IDTPHY_REGO_TPOC2,              \
682           IDTPHY_REGN_TPOC2,    IDTPHY_REGX_TPOC2 },            \
683           /* 4a-4f unused */                                    \
684         { /* 50 */                                              \
685           UTP_REGT_BITS,        IDTPHY_REGO_RCC,                \
686           IDTPHY_REGN_RCC,      IDTPHY_REGX_RCC },              \
687         { /* 51 */                                              \
688           UTP_REGT_BITS,        IDTPHY_REGO_RCI,                \
689           IDTPHY_REGN_RCI,      IDTPHY_REGX_RCI },              \
690         { /* 52 */                                              \
691           UTP_REGT_BITS,        IDTPHY_REGO_CMH,                \
692           IDTPHY_REGN_CMH,      IDTPHY_REGX_CMH },              \
693         { /* 53 */                                              \
694           UTP_REGT_BITS,        IDTPHY_REGO_CMHM,               \
695           IDTPHY_REGN_CMHM,     IDTPHY_REGX_CMHM },             \
696         { /* 54 */                                              \
697           UTP_REGT_INT8,        IDTPHY_REGO_CEC,                \
698           IDTPHY_REGN_CEC,      NULL },                         \
699         { /* 55 */                                              \
700           UTP_REGT_INT8,        IDTPHY_REGO_UEC,                \
701           IDTPHY_REGN_UEC,      NULL },                         \
702         { /* 56-58 */                                           \
703           UTP_REGT_INT19,       IDTPHY_REGO_RCCNT,              \
704           IDTPHY_REGN_RCCNT,    NULL },                         \
705         { /* 59 */                                              \
706           UTP_REGT_BITS,        IDTPHY_REGO_RCCF,               \
707           IDTPHY_REGN_RCCF,     IDTPHY_REGX_RCCF },             \
708         { /* 5a */                                              \
709           UTP_REGT_BITS,        IDTPHY_REGO_RXID,               \
710           IDTPHY_REGN_RXID,     IDTPHY_REGX_RXID },             \
711           /* 5b-5f unused */                                    \
712         { /* 60 */                                              \
713           UTP_REGT_BITS,        IDTPHY_REGO_TCC,                \
714           IDTPHY_REGN_TCC,      IDTPHY_REGX_TCC },              \
715         { /* 61 */                                              \
716           UTP_REGT_BITS,        IDTPHY_REGO_TCHP,               \
717           IDTPHY_REGN_TCHP,     IDTPHY_REGX_TCHP },             \
718         { /* 62 */                                              \
719           UTP_REGT_INT8,        IDTPHY_REGO_TPLD,               \
720           IDTPHY_REGN_TPLD,     NULL },                         \
721         { /* 63 */                                              \
722           UTP_REGT_BITS,        IDTPHY_REGO_TCC2,               \
723           IDTPHY_REGN_TCC2,     IDTPHY_REGX_TCC2 },             \
724         { /* 64-66 */                                           \
725           UTP_REGT_INT19,       IDTPHY_REGO_TXCNT,              \
726           IDTPHY_REGN_TXCNT,    NULL },                         \
727         { /* 67 */                                              \
728           UTP_REGT_BITS,        IDTPHY_REGO_TCC3,               \
729           IDTPHY_REGN_TCC3,     IDTPHY_REGX_TCC3 },             \
730         { /* 68 */                                              \
731           UTP_REGT_BITS,        IDTPHY_REGO_TXID,               \
732           IDTPHY_REGN_TXID,     IDTPHY_REGX_TXID },             \
733           /* 69-6f unused */                                    \
734         { /* 70 */                                              \
735           UTP_REGT_BITS,        IDTPHY_REGO_RBER,               \
736           IDTPHY_REGN_RBER,     IDTPHY_REGX_RBER },             \
737         { /* 71 */                                              \
738           UTP_REGT_INT8,        IDTPHY_REGO_BFTH,               \
739           IDTPHY_REGN_BFTH,     NULL },                         \
740         { /* 72 */                                              \
741           UTP_REGT_INT8,        IDTPHY_REGO_BFWIN,              \
742           IDTPHY_REGN_BFWIN,    NULL },                         \
743         { /* 73,74 */                                           \
744           UTP_REGT_INT16,       IDTPHY_REGO_BFDEN,              \
745           IDTPHY_REGN_BFDEN,    NULL },                         \
746         { /* 75 */                                              \
747           UTP_REGT_INT8,        IDTPHY_REGO_BWTH,               \
748           IDTPHY_REGN_BWTH,     NULL },                         \
749         { /* 76 */                                              \
750           UTP_REGT_INT8,        IDTPHY_REGO_BWWIN,              \
751           IDTPHY_REGN_BWWIN,    NULL },                         \
752         { /* 77,78 */                                           \
753           UTP_REGT_INT16,       IDTPHY_REGO_BWDEN,              \
754           IDTPHY_REGN_BWDEN,    NULL },                         \
755           /* 79-7e unused */                                    \
756         { /* 7f */                                              \
757           UTP_REGT_BITS,        IDTPHY_REGO_OPEC,               \
758           IDTPHY_REGN_OPEC,     IDTPHY_REGX_OPEC }
759
760
761 #endif  /* _DEV_UTOPIA_IDTPHY_H */