xref: /NextBSD/sys/dev/utopia/idtphy.h (revision eb1a5f8de9f7ea602c373a710f531abbf81141c4)
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 */
762