xref: /onnv-gate/usr/src/uts/common/sys/nxge/nxge_n2_esr_hw.h (revision 12452:80e5df69a097)
13859Sml29623 /*
23859Sml29623  * CDDL HEADER START
33859Sml29623  *
43859Sml29623  * The contents of this file are subject to the terms of the
53859Sml29623  * Common Development and Distribution License (the "License").
63859Sml29623  * You may not use this file except in compliance with the License.
73859Sml29623  *
83859Sml29623  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
93859Sml29623  * or http://www.opensolaris.org/os/licensing.
103859Sml29623  * See the License for the specific language governing permissions
113859Sml29623  * and limitations under the License.
123859Sml29623  *
133859Sml29623  * When distributing Covered Code, include this CDDL HEADER in each
143859Sml29623  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
153859Sml29623  * If applicable, add the following below this CDDL HEADER, with the
163859Sml29623  * fields enclosed by brackets "[]" replaced with your own identifying
173859Sml29623  * information: Portions Copyright [yyyy] [name of copyright owner]
183859Sml29623  *
193859Sml29623  * CDDL HEADER END
203859Sml29623  */
213859Sml29623 /*
22*12452SSantwona.Behera@oracle.COM  * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
233859Sml29623  */
243859Sml29623 
253859Sml29623 #ifndef _SYS_NXGE_NXGE_N2_ESR_HW_H
263859Sml29623 #define	_SYS_NXGE_NXGE_N2_ESR_HW_H
273859Sml29623 
283859Sml29623 #ifdef	__cplusplus
293859Sml29623 extern "C" {
303859Sml29623 #endif
313859Sml29623 
323859Sml29623 #define	ESR_N2_DEV_ADDR		0x1E
333859Sml29623 #define	ESR_N2_BASE		0x8000
343859Sml29623 
353859Sml29623 /*
363859Sml29623  * Definitions for TI WIZ6C2xxN2x0 Macro Family.
373859Sml29623  */
383859Sml29623 
393859Sml29623 /* Register Blocks base address */
403859Sml29623 
413859Sml29623 #define	ESR_N2_PLL_REG_OFFSET		0
423859Sml29623 #define	ESR_N2_TEST_REG_OFFSET		0x004
433859Sml29623 #define	ESR_N2_TX_REG_OFFSET		0x100
443859Sml29623 #define	ESR_N2_TX_0_REG_OFFSET		0x100
453859Sml29623 #define	ESR_N2_TX_1_REG_OFFSET		0x104
463859Sml29623 #define	ESR_N2_TX_2_REG_OFFSET		0x108
473859Sml29623 #define	ESR_N2_TX_3_REG_OFFSET		0x10c
483859Sml29623 #define	ESR_N2_TX_4_REG_OFFSET		0x110
493859Sml29623 #define	ESR_N2_TX_5_REG_OFFSET		0x114
503859Sml29623 #define	ESR_N2_TX_6_REG_OFFSET		0x118
513859Sml29623 #define	ESR_N2_TX_7_REG_OFFSET		0x11c
523859Sml29623 #define	ESR_N2_RX_REG_OFFSET		0x120
533859Sml29623 #define	ESR_N2_RX_0_REG_OFFSET		0x120
543859Sml29623 #define	ESR_N2_RX_1_REG_OFFSET		0x124
553859Sml29623 #define	ESR_N2_RX_2_REG_OFFSET		0x128
563859Sml29623 #define	ESR_N2_RX_3_REG_OFFSET		0x12c
573859Sml29623 #define	ESR_N2_RX_4_REG_OFFSET		0x130
583859Sml29623 #define	ESR_N2_RX_5_REG_OFFSET		0x134
593859Sml29623 #define	ESR_N2_RX_6_REG_OFFSET		0x138
603859Sml29623 #define	ESR_N2_RX_7_REG_OFFSET		0x13c
613859Sml29623 #define	ESR_N2_P1_REG_OFFSET		0x400
623859Sml29623 
633859Sml29623 /* Register address */
643859Sml29623 
653859Sml29623 #define	ESR_N2_PLL_CFG_REG		ESR_N2_BASE + ESR_N2_PLL_REG_OFFSET
666835Syc148097 #define	ESR_N2_PLL_CFG_L_REG		ESR_N2_BASE + ESR_N2_PLL_REG_OFFSET
676835Syc148097 #define	ESR_N2_PLL_CFG_H_REG		ESR_N2_BASE + ESR_N2_PLL_REG_OFFSET + 1
683859Sml29623 #define	ESR_N2_PLL_STS_REG		ESR_N2_BASE + ESR_N2_PLL_REG_OFFSET + 2
696835Syc148097 #define	ESR_N2_PLL_STS_L_REG		ESR_N2_BASE + ESR_N2_PLL_REG_OFFSET + 2
706835Syc148097 #define	ESR_N2_PLL_STS_H_REG		ESR_N2_BASE + ESR_N2_PLL_REG_OFFSET + 3
713859Sml29623 #define	ESR_N2_TEST_CFG_REG		ESR_N2_BASE + ESR_N2_TEST_REG_OFFSET
726835Syc148097 #define	ESR_N2_TEST_CFG_L_REG		ESR_N2_BASE + ESR_N2_TEST_REG_OFFSET
736835Syc148097 #define	ESR_N2_TEST_CFG_H_REG		ESR_N2_BASE + ESR_N2_TEST_REG_OFFSET + 1
743859Sml29623 
753859Sml29623 #define	ESR_N2_TX_CFG_REG_ADDR(chan)	(ESR_N2_BASE + ESR_N2_TX_REG_OFFSET +\
763859Sml29623 					(chan * 4))
773859Sml29623 #define	ESR_N2_TX_CFG_L_REG_ADDR(chan)	(ESR_N2_BASE + ESR_N2_TX_REG_OFFSET +\
783859Sml29623 					(chan * 4))
793859Sml29623 #define	ESR_N2_TX_CFG_H_REG_ADDR(chan)	(ESR_N2_BASE + ESR_N2_TX_REG_OFFSET +\
803859Sml29623 					(chan * 4) + 1)
813859Sml29623 #define	ESR_N2_TX_STS_REG_ADDR(chan)	(ESR_N2_BASE + ESR_N2_TX_REG_OFFSET +\
823859Sml29623 					(chan * 4) + 2)
833859Sml29623 #define	ESR_N2_TX_STS_L_REG_ADDR(chan)	(ESR_N2_BASE + ESR_N2_TX_REG_OFFSET +\
843859Sml29623 					(chan * 4) + 2)
853859Sml29623 #define	ESR_N2_TX_STS_H_REG_ADDR(chan)	(ESR_N2_BASE + ESR_N2_TX_REG_OFFSET +\
863859Sml29623 					(chan * 4) + 3)
873859Sml29623 #define	ESR_N2_RX_CFG_REG_ADDR(chan)	(ESR_N2_BASE + ESR_N2_RX_REG_OFFSET +\
883859Sml29623 					(chan * 4))
893859Sml29623 #define	ESR_N2_RX_CFG_L_REG_ADDR(chan)	(ESR_N2_BASE + ESR_N2_RX_REG_OFFSET +\
903859Sml29623 					(chan * 4))
913859Sml29623 #define	ESR_N2_RX_CFG_H_REG_ADDR(chan)	(ESR_N2_BASE + ESR_N2_RX_REG_OFFSET +\
923859Sml29623 					(chan * 4) + 1)
933859Sml29623 #define	ESR_N2_RX_STS_REG_ADDR(chan)	(ESR_N2_BASE + ESR_N2_RX_REG_OFFSET +\
943859Sml29623 					(chan * 4) + 2)
953859Sml29623 #define	ESR_N2_RX_STS_L_REG_ADDR(chan)	(ESR_N2_BASE + ESR_N2_RX_REG_OFFSET +\
963859Sml29623 					(chan * 4) + 2)
973859Sml29623 #define	ESR_N2_RX_STS_H_REG_ADDR(chan)	(ESR_N2_BASE + ESR_N2_RX_REG_OFFSET +\
983859Sml29623 					(chan * 4) + 3)
993859Sml29623 
1003859Sml29623 /* PLL Configuration Low 16-bit word */
1013859Sml29623 typedef	union _esr_ti_cfgpll_l {
1023859Sml29623 	uint16_t value;
1033859Sml29623 
1043859Sml29623 	struct {
1053859Sml29623 #if defined(_BIT_FIELDS_HTOL)
1063859Sml29623 		uint16_t res2		: 6;
1076835Syc148097 		uint16_t lb		: 2;
1083859Sml29623 		uint16_t res1		: 3;
1093859Sml29623 		uint16_t mpy		: 4;
1103859Sml29623 		uint16_t enpll		: 1;
1113859Sml29623 #elif defined(_BIT_FIELDS_LTOH)
1123859Sml29623 		uint16_t enpll		: 1;
1133859Sml29623 		uint16_t mpy		: 4;
1143859Sml29623 		uint16_t res1		: 3;
1156835Syc148097 		uint16_t lb		: 2;
1163859Sml29623 		uint16_t res2		: 6;
1173859Sml29623 #endif
1183859Sml29623 	} bits;
1193859Sml29623 } esr_ti_cfgpll_l_t;
1203859Sml29623 
1213859Sml29623 /* PLL Configurations */
1223859Sml29623 #define	CFGPLL_LB_FREQ_DEP_BANDWIDTH	0
1233859Sml29623 #define	CFGPLL_LB_LOW_BANDWIDTH		0x2
1243859Sml29623 #define	CFGPLL_LB_HIGH_BANDWIDTH	0x3
1253859Sml29623 #define	CFGPLL_MPY_4X			0
1263859Sml29623 #define	CFGPLL_MPY_5X			0x1
1273859Sml29623 #define	CFGPLL_MPY_6X			0x2
1283859Sml29623 #define	CFGPLL_MPY_8X			0x4
1293859Sml29623 #define	CFGPLL_MPY_10X			0x5
1303859Sml29623 #define	CFGPLL_MPY_12X			0x6
1313859Sml29623 #define	CFGPLL_MPY_12P5X		0x7
1323859Sml29623 
1333859Sml29623 /* Rx Configuration Low 16-bit word */
1343859Sml29623 
1353859Sml29623 typedef	union _esr_ti_cfgrx_l {
1363859Sml29623 	uint16_t value;
1373859Sml29623 
1383859Sml29623 	struct {
1393859Sml29623 #if defined(_BIT_FIELDS_HTOL)
1403859Sml29623 		uint16_t los		: 2;
1413859Sml29623 		uint16_t align		: 2;
1423859Sml29623 		uint16_t res		: 1;
1433859Sml29623 		uint16_t term		: 3;
1443859Sml29623 		uint16_t invpair	: 1;
1453859Sml29623 		uint16_t rate		: 2;
1463859Sml29623 		uint16_t buswidth	: 3;
1473859Sml29623 		uint16_t entest		: 1;
1483859Sml29623 		uint16_t enrx		: 1;
1493859Sml29623 #elif defined(_BIT_FIELDS_LTOH)
1503859Sml29623 		uint16_t enrx		: 1;
1513859Sml29623 		uint16_t entest		: 1;
1523859Sml29623 		uint16_t buswidth	: 3;
1533859Sml29623 		uint16_t rate		: 2;
1543859Sml29623 		uint16_t invpair	: 1;
1553859Sml29623 		uint16_t term		: 3;
1563859Sml29623 		uint16_t res		: 1;
1573859Sml29623 		uint16_t align		: 2;
1583859Sml29623 		uint16_t los		: 2;
1593859Sml29623 #endif
1603859Sml29623 	} bits;
1613859Sml29623 } esr_ti_cfgrx_l_t;
1623859Sml29623 
1633859Sml29623 /* Rx Configuration High 16-bit word */
1643859Sml29623 
1653859Sml29623 typedef	union _esr_ti_cfgrx_h {
1663859Sml29623 	uint16_t value;
1673859Sml29623 
1683859Sml29623 	struct {
1693859Sml29623 #if defined(_BIT_FIELDS_HTOL)
1703859Sml29623 		uint16_t res2		: 6;
1713859Sml29623 		uint16_t bsinrxn	: 1;
1723859Sml29623 		uint16_t bsinrxp	: 1;
1733859Sml29623 		uint16_t res1		: 1;
1743859Sml29623 		uint16_t eq		: 4;
1753859Sml29623 		uint16_t cdr		: 3;
1763859Sml29623 #elif defined(_BIT_FIELDS_LTOH)
1773859Sml29623 		uint16_t cdr		: 3;
1783859Sml29623 		uint16_t eq		: 4;
1793859Sml29623 		uint16_t res1		: 1;
1803859Sml29623 		uint16_t bsinrxp	: 1;
1813859Sml29623 		uint16_t bsinrxn	: 1;
1823859Sml29623 		uint16_t res2		: 6;
1833859Sml29623 #endif
1843859Sml29623 	} bits;
1853859Sml29623 } esr_ti_cfgrx_h_t;
1863859Sml29623 
1873859Sml29623 /* Receive Configurations */
1883859Sml29623 #define	CFGRX_BUSWIDTH_10BIT			0
1893859Sml29623 #define	CFGRX_BUSWIDTH_8BIT			1
1903859Sml29623 #define	CFGRX_RATE_FULL				0
1913859Sml29623 #define	CFGRX_RATE_HALF				1
1923859Sml29623 #define	CFGRX_RATE_QUAD				2
1933859Sml29623 #define	CFGRX_TERM_VDDT				0
1943859Sml29623 #define	CFGRX_TERM_0P8VDDT			1
1953859Sml29623 #define	CFGRX_TERM_FLOAT			3
1963859Sml29623 #define	CFGRX_ALIGN_DIS				0
1973859Sml29623 #define	CFGRX_ALIGN_EN				1
1983859Sml29623 #define	CFGRX_ALIGN_JOG				2
1993859Sml29623 #define	CFGRX_LOS_DIS				0
2003859Sml29623 #define	CFGRX_LOS_HITHRES			1
2013859Sml29623 #define	CFGRX_LOS_LOTHRES			2
2023859Sml29623 #define	CFGRX_CDR_1ST_ORDER			0
2033859Sml29623 #define	CFGRX_CDR_2ND_ORDER_HP			1
2043859Sml29623 #define	CFGRX_CDR_2ND_ORDER_MP			2
2053859Sml29623 #define	CFGRX_CDR_2ND_ORDER_LP			3
2063859Sml29623 #define	CFGRX_CDR_1ST_ORDER_FAST_LOCK		4
2073859Sml29623 #define	CFGRX_CDR_2ND_ORDER_HP_FAST_LOCK	5
2083859Sml29623 #define	CFGRX_CDR_2ND_ORDER_MP_FAST_LOCK	6
2093859Sml29623 #define	CFGRX_CDR_2ND_ORDER_LP_FAST_LOCK	7
2103859Sml29623 #define	CFGRX_EQ_MAX_LF				0
2113859Sml29623 #define	CFGRX_EQ_ADAPTIVE_LP_ADAPTIVE_ZF	0x1
2123859Sml29623 #define	CFGRX_EQ_ADAPTIVE_LF_1084MHZ_ZF		0x8
2133859Sml29623 #define	CFGRX_EQ_ADAPTIVE_LF_805MHZ_ZF		0x9
2143859Sml29623 #define	CFGRX_EQ_ADAPTIVE_LP_573MHZ_ZF		0xA
2153859Sml29623 #define	CFGRX_EQ_ADAPTIVE_LP_402MHZ_ZF		0xB
2163859Sml29623 #define	CFGRX_EQ_ADAPTIVE_LP_304MHZ_ZF		0xC
2173859Sml29623 #define	CFGRX_EQ_ADAPTIVE_LP_216MHZ_ZF		0xD
2183859Sml29623 #define	CFGRX_EQ_ADAPTIVE_LP_156MHZ_ZF		0xE
2193859Sml29623 #define	CFGRX_EQ_ADAPTIVE_LP_135HZ_ZF		0xF
2203859Sml29623 
2213859Sml29623 /* Rx Status Low 16-bit word */
2223859Sml29623 
2233859Sml29623 typedef	union _esr_ti_stsrx_l {
2243859Sml29623 	uint16_t value;
2253859Sml29623 
2263859Sml29623 	struct {
2273859Sml29623 #if defined(_BIT_FIELDS_HTOL)
2283859Sml29623 		uint16_t res		: 10;
2293859Sml29623 		uint16_t bsrxn		: 1;
2303859Sml29623 		uint16_t bsrxp		: 1;
2313859Sml29623 		uint16_t losdtct	: 1;
2323859Sml29623 		uint16_t oddcg		: 1;
2333859Sml29623 		uint16_t sync		: 1;
2343859Sml29623 		uint16_t testfail	: 1;
2353859Sml29623 #elif defined(_BIT_FIELDS_LTOH)
2363859Sml29623 		uint16_t testfail	: 1;
2373859Sml29623 		uint16_t sync		: 1;
2383859Sml29623 		uint16_t oddcg		: 1;
2393859Sml29623 		uint16_t losdtct	: 1;
2403859Sml29623 		uint16_t bsrxp		: 1;
2413859Sml29623 		uint16_t bsrxn		: 1;
2423859Sml29623 		uint16_t res		: 10;
2433859Sml29623 #endif
2443859Sml29623 	} bits;
2453859Sml29623 } esr_ti_stsrx_l_t;
2463859Sml29623 
2473859Sml29623 /* Tx Configuration Low 16-bit word */
2483859Sml29623 
2493859Sml29623 typedef	union _esr_ti_cfgtx_l {
2503859Sml29623 	uint16_t value;
2513859Sml29623 
2523859Sml29623 	struct {
2533859Sml29623 #if defined(_BIT_FIELDS_HTOL)
2543859Sml29623 		uint16_t de		: 4;
2553859Sml29623 		uint16_t swing		: 3;
2563859Sml29623 		uint16_t cm		: 1;
2573859Sml29623 		uint16_t invpair	: 1;
2583859Sml29623 		uint16_t rate		: 2;
2593859Sml29623 		uint16_t buswwidth	: 3;
2603859Sml29623 		uint16_t entest		: 1;
2613859Sml29623 		uint16_t entx		: 1;
2623859Sml29623 #elif defined(_BIT_FIELDS_LTOH)
2633859Sml29623 		uint16_t entx		: 1;
2643859Sml29623 		uint16_t entest		: 1;
2653859Sml29623 		uint16_t buswwidth	: 3;
2663859Sml29623 		uint16_t rate		: 2;
2673859Sml29623 		uint16_t invpair	: 1;
2683859Sml29623 		uint16_t cm		: 1;
2693859Sml29623 		uint16_t swing		: 3;
2703859Sml29623 		uint16_t de		: 4;
2713859Sml29623 #endif
2723859Sml29623 	} bits;
2733859Sml29623 } esr_ti_cfgtx_l_t;
2743859Sml29623 
2753859Sml29623 /* Tx Configuration High 16-bit word */
2763859Sml29623 
2773859Sml29623 typedef	union _esr_ti_cfgtx_h {
2783859Sml29623 	uint16_t value;
2793859Sml29623 
2803859Sml29623 	struct {
2813859Sml29623 #if defined(_BIT_FIELDS_HTOL)
2823859Sml29623 		uint16_t res		: 14;
2833859Sml29623 		uint16_t bstx		: 1;
2843859Sml29623 		uint16_t enftp		: 1;
2853859Sml29623 #elif defined(_BIT_FIELDS_LTOH)
2863859Sml29623 		uint16_t enftp		: 1;
2873859Sml29623 		uint16_t bstx		: 1;
2883859Sml29623 		uint16_t res		: 14;
2893859Sml29623 #endif
2903859Sml29623 	} bits;
2913859Sml29623 } esr_ti_cfgtx_h_t;
2923859Sml29623 
2933859Sml29623 /* Transmit Configurations */
2943859Sml29623 #define	CFGTX_BUSWIDTH_10BIT		0
2953859Sml29623 #define	CFGTX_BUSWIDTH_8BIT		1
2963859Sml29623 #define	CFGTX_RATE_FULL			0
2973859Sml29623 #define	CFGTX_RATE_HALF			1
2983859Sml29623 #define	CFGTX_RATE_QUAD			2
2993859Sml29623 #define	CFGTX_SWING_125MV		0
3003859Sml29623 #define	CFGTX_SWING_250MV		1
3013859Sml29623 #define	CFGTX_SWING_500MV		2
3023859Sml29623 #define	CFGTX_SWING_625MV		3
3033859Sml29623 #define	CFGTX_SWING_750MV		4
3043859Sml29623 #define	CFGTX_SWING_1000MV		5
3053859Sml29623 #define	CFGTX_SWING_1250MV		6
3063859Sml29623 #define	CFGTX_SWING_1375MV		7
3073859Sml29623 #define	CFGTX_DE_0			0
3083859Sml29623 #define	CFGTX_DE_4P76			1
3093859Sml29623 #define	CFGTX_DE_9P52			2
3103859Sml29623 #define	CFGTX_DE_14P28			3
3113859Sml29623 #define	CFGTX_DE_19P04			4
3123859Sml29623 #define	CFGTX_DE_23P8			5
3133859Sml29623 #define	CFGTX_DE_28P56			6
3143859Sml29623 #define	CFGTX_DE_33P32			7
3153859Sml29623 
3163859Sml29623 /* Test Configuration */
3173859Sml29623 
3183859Sml29623 typedef	union _esr_ti_testcfg {
3193859Sml29623 	uint16_t value;
3203859Sml29623 
3213859Sml29623 	struct {
3223859Sml29623 #if defined(_BIT_FIELDS_HTOL)
3233859Sml29623 		uint16_t res1		: 1;
3243859Sml29623 		uint16_t invpat		: 1;
3253859Sml29623 		uint16_t rate		: 2;
3263859Sml29623 		uint16_t res		: 1;
3273859Sml29623 		uint16_t enbspls	: 1;
3283859Sml29623 		uint16_t enbsrx		: 1;
3293859Sml29623 		uint16_t enbstx		: 1;
3303859Sml29623 		uint16_t loopback	: 2;
3313859Sml29623 		uint16_t clkbyp		: 2;
3323859Sml29623 		uint16_t enrxpatt	: 1;
3333859Sml29623 		uint16_t entxpatt	: 1;
3343859Sml29623 		uint16_t testpatt	: 2;
3353859Sml29623 #elif defined(_BIT_FIELDS_LTOH)
3363859Sml29623 		uint16_t testpatt	: 2;
3373859Sml29623 		uint16_t entxpatt	: 1;
3383859Sml29623 		uint16_t enrxpatt	: 1;
3393859Sml29623 		uint16_t clkbyp		: 2;
3403859Sml29623 		uint16_t loopback	: 2;
3413859Sml29623 		uint16_t enbstx		: 1;
3423859Sml29623 		uint16_t enbsrx		: 1;
3433859Sml29623 		uint16_t enbspls	: 1;
3443859Sml29623 		uint16_t res		: 1;
3453859Sml29623 		uint16_t rate		: 2;
3463859Sml29623 		uint16_t invpat		: 1;
3473859Sml29623 		uint16_t res1		: 1;
3483859Sml29623 #endif
3493859Sml29623 	} bits;
3503859Sml29623 } esr_ti_testcfg_t;
3513859Sml29623 
3523859Sml29623 #define	TESTCFG_PAD_LOOPBACK		0x1
3533859Sml29623 #define	TESTCFG_INNER_CML_DIS_LOOPBACK	0x2
3543859Sml29623 #define	TESTCFG_INNER_CML_EN_LOOOPBACK	0x3
3553859Sml29623 
35611304SJanie.Lu@Sun.COM /*
35711304SJanie.Lu@Sun.COM  * Definitions for TI WIZ7c2xxn5x1 Macro Family (KT/NIU).
35811304SJanie.Lu@Sun.COM  */
35911304SJanie.Lu@Sun.COM 
36011304SJanie.Lu@Sun.COM /* PLL_CFG: PLL Configuration Low 16-bit word */
36111304SJanie.Lu@Sun.COM typedef	union _k_esr_ti_cfgpll_l {
36211304SJanie.Lu@Sun.COM 	uint16_t value;
36311304SJanie.Lu@Sun.COM 
36411304SJanie.Lu@Sun.COM 	struct {
36511304SJanie.Lu@Sun.COM #if defined(_BIT_FIELDS_HTOL)
36611304SJanie.Lu@Sun.COM 		uint16_t res2		: 1;
36711304SJanie.Lu@Sun.COM 		uint16_t clkbyp		: 2;
36811304SJanie.Lu@Sun.COM 		uint16_t lb		: 2;
36911304SJanie.Lu@Sun.COM 		uint16_t res1		: 1;
37011304SJanie.Lu@Sun.COM 		uint16_t vrange		: 1;
37111304SJanie.Lu@Sun.COM 		uint16_t divclken	: 1;
37211304SJanie.Lu@Sun.COM 		uint16_t mpy		: 7;
37311304SJanie.Lu@Sun.COM 		uint16_t enpll		: 1;
37411304SJanie.Lu@Sun.COM #elif defined(_BIT_FIELDS_LTOH)
37511304SJanie.Lu@Sun.COM 		uint16_t enpll		: 1;
37611304SJanie.Lu@Sun.COM 		uint16_t mpy		: 7;
37711304SJanie.Lu@Sun.COM 		uint16_t divclken	: 1;
37811304SJanie.Lu@Sun.COM 		uint16_t vrange		: 1;
37911304SJanie.Lu@Sun.COM 		uint16_t res1		: 1;
38011304SJanie.Lu@Sun.COM 		uint16_t lb		: 2;
38111304SJanie.Lu@Sun.COM 		uint16_t clkbyp		: 2;
38211304SJanie.Lu@Sun.COM 		uint16_t res2		: 1;
38311304SJanie.Lu@Sun.COM #endif
38411304SJanie.Lu@Sun.COM 	} bits;
38511304SJanie.Lu@Sun.COM } k_esr_ti_cfgpll_l_t;
38611304SJanie.Lu@Sun.COM 
38711304SJanie.Lu@Sun.COM /* PLL Configurations */
38811304SJanie.Lu@Sun.COM #define	K_CFGPLL_ENABLE_PLL		1
38911304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_4X			0x10
39011304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_5X			0x14
39111304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_6X			0x18
39211304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_8X			0x20
39311304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_8P25X		0x21
39411304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_10X		0x28
39511304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_12X		0x30
39611304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_12P5X		0x32
39711304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_15X		0x3c
39811304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_16X		0x40
39911304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_16P5X		0x42
40011304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_20X		0x50
40111304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_22X		0x58
40211304SJanie.Lu@Sun.COM #define	K_CFGPLL_MPY_25X		0x64
40311304SJanie.Lu@Sun.COM #define	K_CFGPLL_ENABLE_DIVCLKEN	0x100
40411304SJanie.Lu@Sun.COM 
40511304SJanie.Lu@Sun.COM /* PLL_STS */
40611304SJanie.Lu@Sun.COM typedef	union _k_esr_ti_pll_sts {
40711304SJanie.Lu@Sun.COM 	uint16_t value;
40811304SJanie.Lu@Sun.COM 
40911304SJanie.Lu@Sun.COM 	struct {
41011304SJanie.Lu@Sun.COM #if defined(_BIT_FIELDS_HTOL)
41111304SJanie.Lu@Sun.COM 		uint16_t res2		: 12;
41211304SJanie.Lu@Sun.COM 		uint16_t res1		: 2;
41311304SJanie.Lu@Sun.COM 		uint16_t divclk		: 1;
41411304SJanie.Lu@Sun.COM 		uint16_t lock		: 1;
41511304SJanie.Lu@Sun.COM #elif defined(_BIT_FIELDS_LTOH)
41611304SJanie.Lu@Sun.COM 		uint16_t lock		: 1;
41711304SJanie.Lu@Sun.COM 		uint16_t divclk		: 1;
41811304SJanie.Lu@Sun.COM 		uint16_t res1		: 2;
41911304SJanie.Lu@Sun.COM 		uint16_t res2		: 12;
42011304SJanie.Lu@Sun.COM #endif
42111304SJanie.Lu@Sun.COM 	} bits;
42211304SJanie.Lu@Sun.COM } k_esr_ti_pll_sts_t;
42311304SJanie.Lu@Sun.COM 
42411304SJanie.Lu@Sun.COM /* TEST_CFT */
42511304SJanie.Lu@Sun.COM typedef	union _kt_esr_ti_testcfg {
42611304SJanie.Lu@Sun.COM 	uint16_t value;
42711304SJanie.Lu@Sun.COM 
42811304SJanie.Lu@Sun.COM 	struct {
42911304SJanie.Lu@Sun.COM #if defined(_BIT_FIELDS_HTOL)
43011304SJanie.Lu@Sun.COM 		uint16_t res		: 7;
43111304SJanie.Lu@Sun.COM 		uint16_t testpatt2	: 3;
43211304SJanie.Lu@Sun.COM 		uint16_t testpatt1	: 3;
43311304SJanie.Lu@Sun.COM 		uint16_t enbspt		: 1;
43411304SJanie.Lu@Sun.COM 		uint16_t enbsrx		: 1;
43511304SJanie.Lu@Sun.COM 		uint16_t enbstx		: 1;
43611304SJanie.Lu@Sun.COM #elif defined(_BIT_FIELDS_LTOH)
43711304SJanie.Lu@Sun.COM 		uint16_t enbstx		: 1;
43811304SJanie.Lu@Sun.COM 		uint16_t enbsrx		: 1;
43911304SJanie.Lu@Sun.COM 		uint16_t enbspt		: 1;
44011304SJanie.Lu@Sun.COM 		uint16_t testpatt1	: 3;
44111304SJanie.Lu@Sun.COM 		uint16_t testpatt2	: 3;
44211304SJanie.Lu@Sun.COM 		uint16_t res		: 7;
44311304SJanie.Lu@Sun.COM #endif
44411304SJanie.Lu@Sun.COM 	} bits;
44511304SJanie.Lu@Sun.COM } k_esr_ti_testcfg_t;
44611304SJanie.Lu@Sun.COM 
44711304SJanie.Lu@Sun.COM #define	K_TESTCFG_ENBSTX		0x1
44811304SJanie.Lu@Sun.COM #define	K_TESTCFG_ENBSRX		0x2
44911304SJanie.Lu@Sun.COM #define	K_TESTCFG_ENBSPT		0x4
45011304SJanie.Lu@Sun.COM 
45111304SJanie.Lu@Sun.COM /* TX_CFG: Tx Configuration Low 16-bit word */
45211304SJanie.Lu@Sun.COM 
45311304SJanie.Lu@Sun.COM typedef	union _k_esr_ti_cfgtx_l {
45411304SJanie.Lu@Sun.COM 	uint16_t value;
45511304SJanie.Lu@Sun.COM 
45611304SJanie.Lu@Sun.COM 	struct {
45711304SJanie.Lu@Sun.COM #if defined(_BIT_FIELDS_HTOL)
45811304SJanie.Lu@Sun.COM 		uint16_t de		: 3;
45911304SJanie.Lu@Sun.COM 		uint16_t swing		: 4;
46011304SJanie.Lu@Sun.COM 		uint16_t cm		: 1;
46111304SJanie.Lu@Sun.COM 		uint16_t invpair	: 1;
46211304SJanie.Lu@Sun.COM 		uint16_t rate		: 2;
46311304SJanie.Lu@Sun.COM 		uint16_t buswwidth	: 4;
46411304SJanie.Lu@Sun.COM 		uint16_t entx		: 1;
46511304SJanie.Lu@Sun.COM #elif defined(_BIT_FIELDS_LTOH)
46611304SJanie.Lu@Sun.COM 		uint16_t entx		: 1;
46711304SJanie.Lu@Sun.COM 		uint16_t buswwidth	: 4;
46811304SJanie.Lu@Sun.COM 		uint16_t rate		: 2;
46911304SJanie.Lu@Sun.COM 		uint16_t invpair	: 1;
47011304SJanie.Lu@Sun.COM 		uint16_t cm		: 1;
47111304SJanie.Lu@Sun.COM 		uint16_t swing		: 4;
47211304SJanie.Lu@Sun.COM 		uint16_t de		: 3;
47311304SJanie.Lu@Sun.COM #endif
47411304SJanie.Lu@Sun.COM 	} bits;
47511304SJanie.Lu@Sun.COM } k_esr_ti_cfgtx_l_t;
47611304SJanie.Lu@Sun.COM 
47711304SJanie.Lu@Sun.COM /* Tx Configuration High 16-bit word */
47811304SJanie.Lu@Sun.COM 
47911304SJanie.Lu@Sun.COM typedef	union _k_esr_ti_cfgtx_h {
48011304SJanie.Lu@Sun.COM 	uint16_t value;
48111304SJanie.Lu@Sun.COM 
48211304SJanie.Lu@Sun.COM 	struct {
48311304SJanie.Lu@Sun.COM #if defined(_BIT_FIELDS_HTOL)
48411304SJanie.Lu@Sun.COM 		uint16_t res3		: 1;
48511304SJanie.Lu@Sun.COM 		uint16_t bstx		: 1;
48611304SJanie.Lu@Sun.COM 		uint16_t res2		: 1;
48711304SJanie.Lu@Sun.COM 		uint16_t loopback	: 2;
48811304SJanie.Lu@Sun.COM 		uint16_t rdtct		: 2;
48911304SJanie.Lu@Sun.COM 		uint16_t enidl		: 1;
49011304SJanie.Lu@Sun.COM 		uint16_t rsync		: 1;
49111304SJanie.Lu@Sun.COM 		uint16_t msync		: 1;
49211304SJanie.Lu@Sun.COM 		uint16_t res1		: 4;
49311304SJanie.Lu@Sun.COM 		uint16_t de		: 2;
49411304SJanie.Lu@Sun.COM #elif defined(_BIT_FIELDS_LTOH)
49511304SJanie.Lu@Sun.COM 		uint16_t de		: 2;
49611304SJanie.Lu@Sun.COM 		uint16_t res1		: 4;
49711304SJanie.Lu@Sun.COM 		uint16_t msync		: 1;
49811304SJanie.Lu@Sun.COM 		uint16_t rsync		: 1;
49911304SJanie.Lu@Sun.COM 		uint16_t enidl		: 1;
50011304SJanie.Lu@Sun.COM 		uint16_t rdtct		: 2;
50111304SJanie.Lu@Sun.COM 		uint16_t loopback	: 2;
50211304SJanie.Lu@Sun.COM 		uint16_t res2		: 1;
50311304SJanie.Lu@Sun.COM 		uint16_t bstx		: 1;
50411304SJanie.Lu@Sun.COM 		uint16_t res3		: 1;
50511304SJanie.Lu@Sun.COM #endif
50611304SJanie.Lu@Sun.COM 	} bits;
50711304SJanie.Lu@Sun.COM } k_esr_ti_cfgtx_h_t;
50811304SJanie.Lu@Sun.COM 
50911304SJanie.Lu@Sun.COM /* Transmit Configurations (TBD) */
51011304SJanie.Lu@Sun.COM #define	K_CFGTX_ENABLE_TX		0x1
51111304SJanie.Lu@Sun.COM #define	K_CFGTX_ENABLE_MSYNC		0x1
51211304SJanie.Lu@Sun.COM 
51311304SJanie.Lu@Sun.COM #define	K_CFGTX_BUSWIDTH_10BIT		0
51411304SJanie.Lu@Sun.COM #define	K_CFGTX_BUSWIDTH_8BIT		1
51511304SJanie.Lu@Sun.COM #define	K_CFGTX_RATE_FULL		0
51611304SJanie.Lu@Sun.COM #define	K_CFGTX_RATE_HALF		0x1
51711304SJanie.Lu@Sun.COM #define	K_CFGTX_RATE_QUAD		2
51811304SJanie.Lu@Sun.COM #define	K_CFGTX_SWING_125MV		0
51911304SJanie.Lu@Sun.COM #define	K_CFGTX_SWING_250MV		1
52011304SJanie.Lu@Sun.COM #define	K_CFGTX_SWING_500MV		2
52111304SJanie.Lu@Sun.COM #define	K_CFGTX_SWING_625MV		3
52211304SJanie.Lu@Sun.COM #define	K_CFGTX_SWING_750MV		4
52311304SJanie.Lu@Sun.COM #define	K_CFGTX_SWING_1000MV		5
52411304SJanie.Lu@Sun.COM #define	K_CFGTX_SWING_1250MV		6
52511304SJanie.Lu@Sun.COM #define	K_CFGTX_SWING_1375MV		7
52611304SJanie.Lu@Sun.COM #define	K_CFGTX_SWING_2000MV		0xf
52711304SJanie.Lu@Sun.COM #define	K_CFGTX_DE_0			0
52811304SJanie.Lu@Sun.COM #define	K_CFGTX_DE_4P76			1
52911304SJanie.Lu@Sun.COM #define	K_CFGTX_DE_9P52			2
53011304SJanie.Lu@Sun.COM #define	K_CFGTX_DE_14P28		3
53111304SJanie.Lu@Sun.COM #define	K_CFGTX_DE_19P04		4
53211304SJanie.Lu@Sun.COM #define	K_CFGTX_DE_23P8			5
53311304SJanie.Lu@Sun.COM #define	K_CFGTX_DE_28P56		6
53411304SJanie.Lu@Sun.COM #define	K_CFGTX_DE_33P32		7
53511304SJanie.Lu@Sun.COM #define	K_CFGTX_DIS_LOOPBACK		0x0
53611304SJanie.Lu@Sun.COM #define	K_CFGTX_BUMP_PAD_LOOPBACK	0x1
53711304SJanie.Lu@Sun.COM #define	K_CFGTX_INNER_CML_DIS_LOOPBACK	0x2
53811304SJanie.Lu@Sun.COM #define	K_CFGTX_INNER_CML_ENA_LOOPBACK	0x3
53911304SJanie.Lu@Sun.COM 
54011304SJanie.Lu@Sun.COM /* TX_STS */
54111304SJanie.Lu@Sun.COM typedef	union _k_esr_ti_tx_sts {
54211304SJanie.Lu@Sun.COM 	uint16_t value;
54311304SJanie.Lu@Sun.COM 
54411304SJanie.Lu@Sun.COM 	struct {
54511304SJanie.Lu@Sun.COM #if defined(_BIT_FIELDS_HTOL)
54611304SJanie.Lu@Sun.COM 		uint16_t res1		: 14;
54711304SJanie.Lu@Sun.COM 		uint16_t rdtctip	: 1;
54811304SJanie.Lu@Sun.COM 		uint16_t testfail	: 1;
54911304SJanie.Lu@Sun.COM #elif defined(_BIT_FIELDS_LTOH)
55011304SJanie.Lu@Sun.COM 		uint16_t testfail	: 1;
55111304SJanie.Lu@Sun.COM 		uint16_t rdtctip	: 1;
55211304SJanie.Lu@Sun.COM 		uint16_t res1		: 14;
55311304SJanie.Lu@Sun.COM #endif
55411304SJanie.Lu@Sun.COM 	} bits;
55511304SJanie.Lu@Sun.COM } k_esr_ti_tx_sts_t;
55611304SJanie.Lu@Sun.COM 
55711304SJanie.Lu@Sun.COM /* Rx Configuration Low 16-bit word */
55811304SJanie.Lu@Sun.COM 
55911304SJanie.Lu@Sun.COM typedef	union _k_esr_ti_cfgrx_l {
56011304SJanie.Lu@Sun.COM 	uint16_t value;
56111304SJanie.Lu@Sun.COM 
56211304SJanie.Lu@Sun.COM 	struct {
56311304SJanie.Lu@Sun.COM #if defined(_BIT_FIELDS_HTOL)
56411304SJanie.Lu@Sun.COM 		uint16_t los		: 3;
56511304SJanie.Lu@Sun.COM 		uint16_t align		: 2;
56611304SJanie.Lu@Sun.COM 		uint16_t term		: 3;
56711304SJanie.Lu@Sun.COM 		uint16_t invpair	: 1;
56811304SJanie.Lu@Sun.COM 		uint16_t rate		: 2;
56911304SJanie.Lu@Sun.COM 		uint16_t buswidth	: 4;
57011304SJanie.Lu@Sun.COM 		uint16_t enrx		: 1;
57111304SJanie.Lu@Sun.COM #elif defined(_BIT_FIELDS_LTOH)
57211304SJanie.Lu@Sun.COM 		uint16_t enrx		: 1;
57311304SJanie.Lu@Sun.COM 		uint16_t buswidth	: 4;
57411304SJanie.Lu@Sun.COM 		uint16_t rate		: 2;
57511304SJanie.Lu@Sun.COM 		uint16_t invpair	: 1;
57611304SJanie.Lu@Sun.COM 		uint16_t term		: 3;
57711304SJanie.Lu@Sun.COM 		uint16_t align		: 2;
57811304SJanie.Lu@Sun.COM 		uint16_t los		: 3;
57911304SJanie.Lu@Sun.COM #endif
58011304SJanie.Lu@Sun.COM 	} bits;
58111304SJanie.Lu@Sun.COM } k_esr_ti_cfgrx_l_t;
58211304SJanie.Lu@Sun.COM 
58311304SJanie.Lu@Sun.COM /* Rx Configuration High 16-bit word */
58411304SJanie.Lu@Sun.COM 
58511304SJanie.Lu@Sun.COM typedef	union _k_esr_ti_cfgrx_h {
58611304SJanie.Lu@Sun.COM 	uint16_t value;
58711304SJanie.Lu@Sun.COM 
58811304SJanie.Lu@Sun.COM 	struct {
58911304SJanie.Lu@Sun.COM #if defined(_BIT_FIELDS_HTOL)
59011304SJanie.Lu@Sun.COM 		uint16_t res2		: 1;
59111304SJanie.Lu@Sun.COM 		uint16_t bsinrxn	: 1;
59211304SJanie.Lu@Sun.COM 		uint16_t bsinrxp	: 1;
59311304SJanie.Lu@Sun.COM 		uint16_t loopback	: 2;
59411304SJanie.Lu@Sun.COM 		uint16_t res1		: 3;
59511304SJanie.Lu@Sun.COM 		uint16_t enoc		: 1;
59611304SJanie.Lu@Sun.COM 		uint16_t eq		: 4;
59711304SJanie.Lu@Sun.COM 		uint16_t cdr		: 3;
59811304SJanie.Lu@Sun.COM #elif defined(_BIT_FIELDS_LTOH)
59911304SJanie.Lu@Sun.COM 		uint16_t cdr		: 3;
60011304SJanie.Lu@Sun.COM 		uint16_t eq		: 4;
60111304SJanie.Lu@Sun.COM 		uint16_t enoc		: 1;
60211304SJanie.Lu@Sun.COM 		uint16_t res1		: 3;
60311304SJanie.Lu@Sun.COM 		uint16_t loopback	: 2;
60411304SJanie.Lu@Sun.COM 		uint16_t bsinrxp	: 1;
60511304SJanie.Lu@Sun.COM 		uint16_t bsinrxn	: 1;
60611304SJanie.Lu@Sun.COM 		uint16_t res2		: 1;
60711304SJanie.Lu@Sun.COM #endif
60811304SJanie.Lu@Sun.COM 	} bits;
60911304SJanie.Lu@Sun.COM } k_esr_ti_cfgrx_h_t;
61011304SJanie.Lu@Sun.COM 
61111304SJanie.Lu@Sun.COM /* Receive Configurations (TBD) */
61211304SJanie.Lu@Sun.COM #define	K_CFGRX_ENABLE_RX			0x1
61311304SJanie.Lu@Sun.COM 
61411304SJanie.Lu@Sun.COM #define	K_CFGRX_BUSWIDTH_10BIT			0
61511304SJanie.Lu@Sun.COM #define	K_CFGRX_BUSWIDTH_8BIT			1
61611304SJanie.Lu@Sun.COM #define	K_CFGRX_RATE_FULL			0
61711304SJanie.Lu@Sun.COM #define	K_CFGRX_RATE_HALF			1
61811304SJanie.Lu@Sun.COM #define	K_CFGRX_RATE_QUAD			2
61911304SJanie.Lu@Sun.COM #define	K_CFGRX_TERM_VDDT			0
62011304SJanie.Lu@Sun.COM #define	K_CFGRX_TERM_0P8VDDT			1
62111304SJanie.Lu@Sun.COM #define	K_CFGRX_TERM_FLOAT			3
62211304SJanie.Lu@Sun.COM #define	K_CFGRX_ALIGN_DIS			0x0
62311304SJanie.Lu@Sun.COM #define	K_CFGRX_ALIGN_EN			0x1
62411304SJanie.Lu@Sun.COM #define	K_CFGRX_ALIGN_JOG			0x2
62511304SJanie.Lu@Sun.COM #define	K_CFGRX_LOS_DIS				0x0
62611304SJanie.Lu@Sun.COM #define	K_CFGRX_LOS_ENABLE			0x2
62711304SJanie.Lu@Sun.COM #define	K_CFGRX_CDR_1ST_ORDER			0
62811304SJanie.Lu@Sun.COM #define	K_CFGRX_CDR_2ND_ORDER_HP		1
62911304SJanie.Lu@Sun.COM #define	K_CFGRX_CDR_2ND_ORDER_MP		2
63011304SJanie.Lu@Sun.COM #define	K_CFGRX_CDR_2ND_ORDER_LP		3
63111304SJanie.Lu@Sun.COM #define	K_CFGRX_CDR_1ST_ORDER_FAST_LOCK		4
63211304SJanie.Lu@Sun.COM #define	K_CFGRX_CDR_2ND_ORDER_HP_FAST_LOCK	5
63311304SJanie.Lu@Sun.COM #define	K_CFGRX_CDR_2ND_ORDER_MP_FAST_LOCK	6
63411304SJanie.Lu@Sun.COM #define	K_CFGRX_CDR_2ND_ORDER_LP_FAST_LOCK	7
63511304SJanie.Lu@Sun.COM #define	K_CFGRX_EQ_MAX_LF_ZF			0
63611304SJanie.Lu@Sun.COM #define	K_CFGRX_EQ_ADAPTIVE			0x1
63711304SJanie.Lu@Sun.COM #define	K_CFGRX_EQ_ADAPTIVE_LF_365MHZ_ZF	0x8
63811304SJanie.Lu@Sun.COM #define	K_CFGRX_EQ_ADAPTIVE_LF_275MHZ_ZF	0x9
63911304SJanie.Lu@Sun.COM #define	K_CFGRX_EQ_ADAPTIVE_LP_195MHZ_ZF	0xa
64011304SJanie.Lu@Sun.COM #define	K_CFGRX_EQ_ADAPTIVE_LP_140MHZ_ZF	0xb
64111304SJanie.Lu@Sun.COM #define	K_CFGRX_EQ_ADAPTIVE_LP_105MHZ_ZF	0xc
64211304SJanie.Lu@Sun.COM #define	K_CFGRX_EQ_ADAPTIVE_LP_75MHZ_ZF		0xd
64311304SJanie.Lu@Sun.COM #define	K_CFGRX_EQ_ADAPTIVE_LP_55MHZ_ZF		0xe
64411304SJanie.Lu@Sun.COM #define	K_CFGRX_EQ_ADAPTIVE_LP_50HZ_ZF		0xf
64511304SJanie.Lu@Sun.COM 
64611304SJanie.Lu@Sun.COM /* Rx Status Low 16-bit word */
64711304SJanie.Lu@Sun.COM 
64811304SJanie.Lu@Sun.COM typedef	union _k_esr_ti_stsrx_l {
64911304SJanie.Lu@Sun.COM 	uint16_t value;
65011304SJanie.Lu@Sun.COM 
65111304SJanie.Lu@Sun.COM 	struct {
65211304SJanie.Lu@Sun.COM #if defined(_BIT_FIELDS_HTOL)
65311304SJanie.Lu@Sun.COM 		uint16_t res2		: 10;
65411304SJanie.Lu@Sun.COM 		uint16_t bsrxn		: 1;
65511304SJanie.Lu@Sun.COM 		uint16_t bsrxp		: 1;
65611304SJanie.Lu@Sun.COM 		uint16_t losdtct	: 1;
65711304SJanie.Lu@Sun.COM 		uint16_t res1		: 1;
65811304SJanie.Lu@Sun.COM 		uint16_t sync		: 1;
65911304SJanie.Lu@Sun.COM 		uint16_t testfail	: 1;
66011304SJanie.Lu@Sun.COM #elif defined(_BIT_FIELDS_LTOH)
66111304SJanie.Lu@Sun.COM 		uint16_t testfail	: 1;
66211304SJanie.Lu@Sun.COM 		uint16_t sync		: 1;
66311304SJanie.Lu@Sun.COM 		uint16_t res1		: 1;
66411304SJanie.Lu@Sun.COM 		uint16_t losdtct	: 1;
66511304SJanie.Lu@Sun.COM 		uint16_t bsrxp		: 1;
66611304SJanie.Lu@Sun.COM 		uint16_t bsrxn		: 1;
66711304SJanie.Lu@Sun.COM 		uint16_t res		: 10;
66811304SJanie.Lu@Sun.COM #endif
66911304SJanie.Lu@Sun.COM 	} bits;
67011304SJanie.Lu@Sun.COM } k_esr_ti_stsrx_l_t;
67111304SJanie.Lu@Sun.COM 
67211304SJanie.Lu@Sun.COM #define	K_TESTCFG_INNER_CML_EN_LOOOPBACK	0x3
67311304SJanie.Lu@Sun.COM 
674*12452SSantwona.Behera@oracle.COM /*
675*12452SSantwona.Behera@oracle.COM  * struct for Serdes properties
676*12452SSantwona.Behera@oracle.COM  */
677*12452SSantwona.Behera@oracle.COM typedef struct _nxge_serdes_prop_t {
678*12452SSantwona.Behera@oracle.COM 	uint16_t	tx_cfg_l;
679*12452SSantwona.Behera@oracle.COM 	uint16_t	tx_cfg_h;
680*12452SSantwona.Behera@oracle.COM 	uint16_t	rx_cfg_l;
681*12452SSantwona.Behera@oracle.COM 	uint16_t	rx_cfg_h;
682*12452SSantwona.Behera@oracle.COM 	uint16_t	pll_cfg_l;
683*12452SSantwona.Behera@oracle.COM 	uint16_t	prop_set;
684*12452SSantwona.Behera@oracle.COM } nxge_serdes_prop_t, *p_nxge_serdes_prop_t;
685*12452SSantwona.Behera@oracle.COM 
686*12452SSantwona.Behera@oracle.COM /* Bit array with 1 bit for every serdes property set */
687*12452SSantwona.Behera@oracle.COM #define	NXGE_SRDS_TXCFGL	0x1
688*12452SSantwona.Behera@oracle.COM #define	NXGE_SRDS_TXCFGH	0x2
689*12452SSantwona.Behera@oracle.COM #define	NXGE_SRDS_RXCFGL	0x4
690*12452SSantwona.Behera@oracle.COM #define	NXGE_SRDS_RXCFGH	0x8
691*12452SSantwona.Behera@oracle.COM #define	NXGE_SRDS_PLLCFGL	0x10
692*12452SSantwona.Behera@oracle.COM 
6933859Sml29623 #ifdef	__cplusplus
6943859Sml29623 }
6953859Sml29623 #endif
6963859Sml29623 
6973859Sml29623 #endif	/* _SYS_NXGE_NXGE_N2_ESR_HW_H */
698