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