xref: /titanic_52/usr/src/uts/sun/io/eri/eri_phy.h (revision 297a64e7779d7bd7140d1f3f2fa5db171aa21569)
1*297a64e7Sgd78059 /*
2*297a64e7Sgd78059  * CDDL HEADER START
3*297a64e7Sgd78059  *
4*297a64e7Sgd78059  * The contents of this file are subject to the terms of the
5*297a64e7Sgd78059  * Common Development and Distribution License, Version 1.0 only
6*297a64e7Sgd78059  * (the "License").  You may not use this file except in compliance
7*297a64e7Sgd78059  * with the License.
8*297a64e7Sgd78059  *
9*297a64e7Sgd78059  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*297a64e7Sgd78059  * or http://www.opensolaris.org/os/licensing.
11*297a64e7Sgd78059  * See the License for the specific language governing permissions
12*297a64e7Sgd78059  * and limitations under the License.
13*297a64e7Sgd78059  *
14*297a64e7Sgd78059  * When distributing Covered Code, include this CDDL HEADER in each
15*297a64e7Sgd78059  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*297a64e7Sgd78059  * If applicable, add the following below this CDDL HEADER, with the
17*297a64e7Sgd78059  * fields enclosed by brackets "[]" replaced with your own identifying
18*297a64e7Sgd78059  * information: Portions Copyright [yyyy] [name of copyright owner]
19*297a64e7Sgd78059  *
20*297a64e7Sgd78059  * CDDL HEADER END
21*297a64e7Sgd78059  */
22*297a64e7Sgd78059 /*
23*297a64e7Sgd78059  * Copyright (c) 1999-2000 by Sun Microsystems, Inc.
24*297a64e7Sgd78059  * All rights reserved.
25*297a64e7Sgd78059  */
26*297a64e7Sgd78059 
27*297a64e7Sgd78059 #ifndef	_SYS_ERI_PHY_H
28*297a64e7Sgd78059 #define	_SYS_ERI_PHY_H
29*297a64e7Sgd78059 
30*297a64e7Sgd78059 #pragma ident	"%Z%%M%	%I%	%E% SMI"
31*297a64e7Sgd78059 
32*297a64e7Sgd78059 #ifdef	__cplusplus
33*297a64e7Sgd78059 extern "C" {
34*297a64e7Sgd78059 #endif
35*297a64e7Sgd78059 
36*297a64e7Sgd78059 /*
37*297a64e7Sgd78059  * MII supports a 16-bit register stack of upto 32, addressable through the
38*297a64e7Sgd78059  * MDIO and MDC serial port.
39*297a64e7Sgd78059  */
40*297a64e7Sgd78059 #define	ERI_PHY_BMCR	00	/* Basic Mode Control Register */
41*297a64e7Sgd78059 #define	ERI_PHY_BMSR	01	/* Basic Mode Status Register */
42*297a64e7Sgd78059 #define	ERI_PHY_IDR1	02	/* PHY Identifier Register 1 */
43*297a64e7Sgd78059 #define	ERI_PHY_IDR2	03	/* PHY Identifier Register 2 */
44*297a64e7Sgd78059 #define	ERI_PHY_ANAR	04	/* Auto-Negotiation Advertisement Register */
45*297a64e7Sgd78059 #define	ERI_PHY_ANLPAR	05	/* Auto-Negotiation Link Partner Ability Reg */
46*297a64e7Sgd78059 #define	ERI_PHY_ANER	06	/* Auto-Negotiation Expansion Register */
47*297a64e7Sgd78059 
48*297a64e7Sgd78059 /* Registers 7-15 are reserved for future assignments by MII working group */
49*297a64e7Sgd78059 /* Do not write to these registers */
50*297a64e7Sgd78059 
51*297a64e7Sgd78059 /* Registers 16-17 are reserved for future assignment by Vendor */
52*297a64e7Sgd78059 /* Do not write to these registers */
53*297a64e7Sgd78059 
54*297a64e7Sgd78059 #define	ERI_PHY_DIS	18	/* Disconnect Counter */
55*297a64e7Sgd78059 #define	ERI_PHY_FCSC	19	/* False Carrier Sense Counter */
56*297a64e7Sgd78059 #define	ERI_PHY_NWAYTR	20	/* NWay Test Register */
57*297a64e7Sgd78059 #define	ERI_PHY_REC	21	/* RX_ER Counter */
58*297a64e7Sgd78059 #define	ERI_PHY_SRR	22	/* Silicon Revision Register */
59*297a64e7Sgd78059 #define	ERI_PHY_CSC	23	/* CS Configuration Register */
60*297a64e7Sgd78059 #define	ERI_PHY_LBREMR	24	/* Loopback, Bypass, Receiver Error Mask Reg */
61*297a64e7Sgd78059 #define	ERI_PHY_AR	25	/* PHY Address Register */
62*297a64e7Sgd78059 #define	ERI_PHY_VRES1	26	/* Reserverd for future assignement by vendor */
63*297a64e7Sgd78059 #define	ERI_PHY_TPISR	27	/* 10 Mbps TPI Status Register */
64*297a64e7Sgd78059 #define	ERI_PHY_NICR	28	/* 10 Mbps Network I/F Configuration Register */
65*297a64e7Sgd78059 
66*297a64e7Sgd78059 /* Registers 29-31 are reserved for future assignment by Vendor */
67*297a64e7Sgd78059 /* Do not write to these registers */
68*297a64e7Sgd78059 
69*297a64e7Sgd78059 
70*297a64e7Sgd78059 /* ************************************************************************ */
71*297a64e7Sgd78059 /*  Register 00	 Basic Mode Control Register */
72*297a64e7Sgd78059 
73*297a64e7Sgd78059 #define	PHY_BMCR_RESET	(1 << 15)	/* Reset */
74*297a64e7Sgd78059 #define	PHY_BMCR_LPBK	(1 << 14)	/* Loopback of TXD<3:0> */
75*297a64e7Sgd78059 #define	PHY_BMCR_100M	(1 << 13)	/* Speed selection, 1=100Mbps */
76*297a64e7Sgd78059 #define	PHY_BMCR_ANE	(1 << 12)	/* Auto Negotiation Enable */
77*297a64e7Sgd78059 #define	PHY_BMCR_PWRDN	(1 << 11)	/* Power down */
78*297a64e7Sgd78059 #define	PHY_BMCR_ISOLATE (1 << 10)	/* Isolate PHY from MII */
79*297a64e7Sgd78059 #define	PHY_BMCR_RAN	(1 << 9)	/* Restart Auto Negotiation */
80*297a64e7Sgd78059 #define	PHY_BMCR_FDX	(1 << 8)	/* Full Duplex */
81*297a64e7Sgd78059 #define	PHY_BMCR_COLTST	(1 << 7)	/* Collision Test */
82*297a64e7Sgd78059 #define	PHY_BMCR_RES1	(0x7f << 0)	/* 0-6 Reserved */
83*297a64e7Sgd78059 
84*297a64e7Sgd78059 /* ************************************************************************ */
85*297a64e7Sgd78059 /* Register 01	 Basic Mode Status Register */
86*297a64e7Sgd78059 
87*297a64e7Sgd78059 #define	PHY_BMSR_100T4	(1 << 15)	/* PHY able to perform 100Base-T4 */
88*297a64e7Sgd78059 #define	PHY_BMSR_100FDX	(1 << 14)	/* PHY able to perform 100Base-TX FDX */
89*297a64e7Sgd78059 #define	PHY_BMSR_100HDX	(1 << 13)	/* PHY able to perform 100Base-TX HDX */
90*297a64e7Sgd78059 #define	PHY_BMSR_10FDX	(1 << 12)	/* PHY able to perform 10Base-T FDX */
91*297a64e7Sgd78059 #define	PHY_BMSR_10HDX	(1 << 11)	/* PHY able to perform 10Base-T HDX */
92*297a64e7Sgd78059 #define	PHY_BMSR_RES1	(0x1f << 6)	/* 6-10 reserved */
93*297a64e7Sgd78059 #define	PHY_BMSR_ANC	(1 << 5)	/* Auto Negotiation Completed */
94*297a64e7Sgd78059 #define	PHY_BMSR_REMFLT	(1 << 4)	/* Remote Fault detected */
95*297a64e7Sgd78059 #define	PHY_BMSR_ACFG	(1 << 3)	/* Able to do Auto Link Negotiation */
96*297a64e7Sgd78059 #define	PHY_BMSR_LNKSTS	(1 << 2)	/* Link Status */
97*297a64e7Sgd78059 #define	PHY_BMSR_JABDET	(1 << 1)	/* Jabber Condition Detected */
98*297a64e7Sgd78059 #define	PHY_BMSR_EXTCAP	(1 << 0)	/* Extended Register Capability */
99*297a64e7Sgd78059 
100*297a64e7Sgd78059 #define	PHY_CAPABILITY_MASK (PHY_BMSR_100FDX | PHY_BMSR_100HDX \
101*297a64e7Sgd78059 				| PHY_BMSR_10FDX | PHY_BMSR_10HDX)
102*297a64e7Sgd78059 
103*297a64e7Sgd78059 /* ************************************************************************ */
104*297a64e7Sgd78059 /*
105*297a64e7Sgd78059  * Registers 2 and 3 provide a 32 bit value which is a unique identifier
106*297a64e7Sgd78059  * for a particular type of PHY. A 24-bit Organizationally Unique Identifier
107*297a64e7Sgd78059  * (OUI) is defined with bit 1 as the MSB and bit 24 as the LSB. Bits 3-18 of
108*297a64e7Sgd78059  * the OUI are found in PHY Identifier Register 1 and bits 19-24 are found in
109*297a64e7Sgd78059  * PHY Identifier Register 2.
110*297a64e7Sgd78059  *
111*297a64e7Sgd78059  * The hexadecimal OUI code for NSC is 0x080017 .
112*297a64e7Sgd78059  */
113*297a64e7Sgd78059 /* Register 02	 PHY Identifier Register 1 */
114*297a64e7Sgd78059 
115*297a64e7Sgd78059 /* Register 03	 PHY Identifier Register 2 */
116*297a64e7Sgd78059 
117*297a64e7Sgd78059 #define	PHY_IDR2_OUILSB (0x3f << 10)	/* Bits 19-24 of OUI */
118*297a64e7Sgd78059 #define	PHY_IDR2_VNDMDL (0x3f << 4)	/* vendor Model no. */
119*297a64e7Sgd78059 #define	PHY_IDR2_MDLREV (0xf << 0)	/* Model revision no. */
120*297a64e7Sgd78059 
121*297a64e7Sgd78059 /* ************************************************************************ */
122*297a64e7Sgd78059 /*
123*297a64e7Sgd78059  * Register 04	Auto-Negotiation Advertisement Register (nway1Reg)
124*297a64e7Sgd78059  * This register will hold the different modes of operation to be advertised to
125*297a64e7Sgd78059  * the far-end PHY.
126*297a64e7Sgd78059  */
127*297a64e7Sgd78059 
128*297a64e7Sgd78059 #define	PHY_ANAR_NP	(1 << 15)	/* Next Page bit */
129*297a64e7Sgd78059 #define	PHY_ANAR_ACK	(1 << 14)	/* Acks reception of Link Partner */
130*297a64e7Sgd78059 					/* Capability word  */
131*297a64e7Sgd78059 #define	PHY_ANAR_RF	(1 << 13)	/* Advertise Remote Fault det. cap. */
132*297a64e7Sgd78059 #define	PHY_ANAR_RES1	(0x7 << 10)	/* 10-12 reserved */
133*297a64e7Sgd78059 #define	PHY_ANAR_T4	(1 << 9)	/* Advertise 100Base-T4 Capability */
134*297a64e7Sgd78059 #define	PHY_ANAR_TXFDX	(1 << 8)	/* Advertise 100Base-TX FDX Cap. */
135*297a64e7Sgd78059 #define	PHY_ANAR_TX	(1 << 7)	/* Advertise 100Base-TX Cap. */
136*297a64e7Sgd78059 #define	PHY_ANAR_10FDX	(1 << 6)	/* Advertise 10Base-T FDX Cap. */
137*297a64e7Sgd78059 #define	PHY_ANAR_10	(1 << 5)	/* Advertise 10Base-T Cap. */
138*297a64e7Sgd78059 #define	PHY_ANAR_SELECT	(0x1f << 0)	/* Binary Encoded selector supported */
139*297a64e7Sgd78059 					/* this node. Currently only CSMA/CD */
140*297a64e7Sgd78059 					/* <00001> is specified  */
141*297a64e7Sgd78059 
142*297a64e7Sgd78059 #define	PHY_SELECTOR	1	/* Default selector for CSMA/CD */
143*297a64e7Sgd78059 /*
144*297a64e7Sgd78059  * Priority scheme (from highest to lowest) for Auto Link Negotiation:
145*297a64e7Sgd78059  *	1 - 100Base-TX Full Duplex
146*297a64e7Sgd78059  *	2 - 100Base-T4
147*297a64e7Sgd78059  *	3 - 100Base-TX
148*297a64e7Sgd78059  *	4 - 10Base-T Full Duplex
149*297a64e7Sgd78059  *	5 - 10Base-T
150*297a64e7Sgd78059  */
151*297a64e7Sgd78059 
152*297a64e7Sgd78059 /* ************************************************************************ */
153*297a64e7Sgd78059 /*
154*297a64e7Sgd78059  * Register 05	 Auto-Negotiation Link Partner Ability Reg
155*297a64e7Sgd78059  * This register contains the Link Partners capabilities after NWay
156*297a64e7Sgd78059  * Auto-Negotiation is complete.
157*297a64e7Sgd78059  */
158*297a64e7Sgd78059 
159*297a64e7Sgd78059 #define	PHY_ANLPAR_NP	(1 << 15)	/* Next page Bit */
160*297a64e7Sgd78059 #define	PHY_ANLPAR_ACK	(1 << 14)	/* Link Partner acks reception of our */
161*297a64e7Sgd78059 					/* capability data word  */
162*297a64e7Sgd78059 #define	PHY_ANLPAR_RF	(1 << 13)	/* LP indicates Remote fault */
163*297a64e7Sgd78059 #define	PHY_ANLPAR_RES1	(0x7 << 10)	/* 10-12 reserved */
164*297a64e7Sgd78059 #define	PHY_ANLPAR_T4 	(1 << 9)	/* 100Base-T4 supported by LP */
165*297a64e7Sgd78059 #define	PHY_ANLPAR_TXFDX (1 << 8)	/* 100Base-TX FDX supp. by LP */
166*297a64e7Sgd78059 #define	PHY_ANLPAR_TX	(1 << 7)	/* 100Base-TX supp. by LP */
167*297a64e7Sgd78059 #define	PHY_ANLPAR_10FDX (1 << 6)	/* 10Base-T FDX supp. by LP */
168*297a64e7Sgd78059 #define	PHY_ANLPAR_10	(1 << 5)	/* 10Base-T supp. by LP */
169*297a64e7Sgd78059 #define	PHY_ANLPAR_SELECT (0x1f << 0)	/* LP's binary encoded node selector */
170*297a64e7Sgd78059 					/* Currently only CSMA/CD is <00001> */
171*297a64e7Sgd78059 					/* is specified  */
172*297a64e7Sgd78059 
173*297a64e7Sgd78059 /* ************************************************************************ */
174*297a64e7Sgd78059 /*
175*297a64e7Sgd78059  * Register 06	 Auto-Negotiation Expansion Register
176*297a64e7Sgd78059  * This register contains additional status for NWay Auto-Negotiation
177*297a64e7Sgd78059  */
178*297a64e7Sgd78059 
179*297a64e7Sgd78059 #define	PHY_ANER_RES1	(0x7ff << 5)	/* 5-15 reserved */
180*297a64e7Sgd78059 #define	PHY_ANER_MLF	(1 << 4)	/* Multiple Link faults occured */
181*297a64e7Sgd78059 #define	PHY_ANER_LPNP	(1 << 3)	/* LP supports Next Page negotiation */
182*297a64e7Sgd78059 #define	PHY_ANER_NPABLE	(1 << 2)	/* This node can send additional */
183*297a64e7Sgd78059 				/* Next Pages. Should be 0 for DP83840  */
184*297a64e7Sgd78059 #define	PHY_ANER_PAGERX	(1 << 1)	/* new LINK Code Word Page recvd. */
185*297a64e7Sgd78059 #define	PHY_ANER_LPNW	(1 << 0)	/* LP supports NWay Auto-negotiation */
186*297a64e7Sgd78059 
187*297a64e7Sgd78059 
188*297a64e7Sgd78059 /* ************************************************************************ */
189*297a64e7Sgd78059 
190*297a64e7Sgd78059 /* Registers 7-15 are reserved for future assignments by MII working group */
191*297a64e7Sgd78059 /* Do not write to these registers */
192*297a64e7Sgd78059 
193*297a64e7Sgd78059 /* DP83840 - 10/100 Mbps Physical layer from National semiconductor */
194*297a64e7Sgd78059 /* Registers 16-17 are reserved for future assignment by Vendor */
195*297a64e7Sgd78059 /* Do not write to these registers */
196*297a64e7Sgd78059 
197*297a64e7Sgd78059 /* ************************************************************************ */
198*297a64e7Sgd78059 
199*297a64e7Sgd78059 /*
200*297a64e7Sgd78059  * Register 18	 Disconnect Counter
201*297a64e7Sgd78059  * This 16-bit counter is incremented for every disconnect event. It rolls over
202*297a64e7Sgd78059  * when full.
203*297a64e7Sgd78059  */
204*297a64e7Sgd78059 
205*297a64e7Sgd78059 /* ************************************************************************ */
206*297a64e7Sgd78059 /*
207*297a64e7Sgd78059  * Register 19	 False Carrier Sense Counter
208*297a64e7Sgd78059  * This 16-bit counter is incremented for each false carrier event (i.e. carrier
209*297a64e7Sgd78059  * assertion without JK detect). It freezes when full.
210*297a64e7Sgd78059  */
211*297a64e7Sgd78059 
212*297a64e7Sgd78059 /* ************************************************************************ */
213*297a64e7Sgd78059 /*
214*297a64e7Sgd78059  * Register 20	 NWay Test Register
215*297a64e7Sgd78059  */
216*297a64e7Sgd78059 #define	PHY_NWAYTR_RES1	(0xff << 8)	/* 8-15 reserved */
217*297a64e7Sgd78059 #define	PHY_NWAYTR_LPBK	(1 << 7)	/* Puts NWay into Loopback mode */
218*297a64e7Sgd78059 #define	PHY_NWAYTR_RES2	(0x7f << 0)	/* 0-6 reserved */
219*297a64e7Sgd78059 
220*297a64e7Sgd78059 /* ************************************************************************ */
221*297a64e7Sgd78059 /*
222*297a64e7Sgd78059  * Register 21	 RX_ER Counter
223*297a64e7Sgd78059  * This 16-bit counter is incremented once per valid packet (i.e. no collision
224*297a64e7Sgd78059  * occured during packet reception), if there is one or more receive error
225*297a64e7Sgd78059  * condition during the packet reception. The counter is incremented at the end
226*297a64e7Sgd78059  * of the packet reception.
227*297a64e7Sgd78059  */
228*297a64e7Sgd78059 
229*297a64e7Sgd78059 /* ************************************************************************ */
230*297a64e7Sgd78059 /*
231*297a64e7Sgd78059  * Register 22	 Silicon Revision Register
232*297a64e7Sgd78059  * Contains information on silicon revision
233*297a64e7Sgd78059  * This register will be incremented for any change made to the device.
234*297a64e7Sgd78059  */
235*297a64e7Sgd78059 /* ************************************************************************ */
236*297a64e7Sgd78059 /*
237*297a64e7Sgd78059  * Register 23	 CS Configuration Register
238*297a64e7Sgd78059  */
239*297a64e7Sgd78059 
240*297a64e7Sgd78059 #define	PHY_CSCR_NRZIDIS (1 << 15)	/* NRZI disabled (for FDDI) */
241*297a64e7Sgd78059 #define	PHY_CSCR_RES1	(1 << 14)	/* reserved */
242*297a64e7Sgd78059 #define	PHY_CSCR_TOCDIS	(1 << 13)	/* disable Timeout counter */
243*297a64e7Sgd78059 					/* in descrambler  */
244*297a64e7Sgd78059 #define	PHY_CSCR_REPTR	(1 << 12)	/* Mode1: Node = 0, repeater = 1 */
245*297a64e7Sgd78059 #define	PHY_CSCR_ENCSEL	(1 << 11)	/* encoder: 0 = MLT-3, 1 = binary */
246*297a64e7Sgd78059 #define	PHY_CSCR_RES2	(0x7 << 8)	/* 8-10 reserved */
247*297a64e7Sgd78059 #define	PHY_CSCR_CLK25M	(1 << 7)	/* Tristates CLK25M */
248*297a64e7Sgd78059 #define	PHY_CSCR_FLN100	(1 << 6)	/* 0 = force good link in 100Mbps */
249*297a64e7Sgd78059 #define	PHY_CSCR_FCONN	(1 << 5)	/* 1 = bypass disconnect function */
250*297a64e7Sgd78059 #define	PHY_CSCR_TXOFF	(1 << 4)	/* 1 = Pulls TD from phaser ckt low */
251*297a64e7Sgd78059 #define	PHY_CSCR_RES3	(1 << 3)	/* reserved */
252*297a64e7Sgd78059 #define	PHY_CSCR_CSTSEN	(1 << 2)	/* LED1 pin for connection status */
253*297a64e7Sgd78059 #define	PHY_CSCR_10FDXE	(1 << 1)	/* LED4 pin for 10Base-T FDX */
254*297a64e7Sgd78059 #define	PHY_CSCR_RES4	(1 << 0)	/* reserved */
255*297a64e7Sgd78059 
256*297a64e7Sgd78059 /* ************************************************************************ */
257*297a64e7Sgd78059 /*
258*297a64e7Sgd78059  * Register 24	 Loopback, Bypass, Receiver Error Mask Reg
259*297a64e7Sgd78059  * The high byte of this register configures the DP83840 whilst its low byte
260*297a64e7Sgd78059  * programs the receive error types to be reported in real time as a HEX code
261*297a64e7Sgd78059  * across the MII RXD<3:0> interface.
262*297a64e7Sgd78059  */
263*297a64e7Sgd78059 
264*297a64e7Sgd78059 #define	PHY_LBREMR_BPEB	(1 << 15)	/* Bypass Elasticity buffer */
265*297a64e7Sgd78059 #define	PHY_LBREMR_BP4B5B (1 << 14)	/* Bypass 4B5B and 5B4B encoder */
266*297a64e7Sgd78059 #define	PHY_LBREMR_BPSCR (1 << 13)	/* Bypass scrambler/descrambler */
267*297a64e7Sgd78059 #define	PHY_LBREMR_BPALIGN (1 << 12)	/* Bypass symbol alignment ckt */
268*297a64e7Sgd78059 #define	PHY_LBREMR_EWRAP (1 << 11)	/* 10Base-T ENDEC Loopback */
269*297a64e7Sgd78059 #define	PHY_LBREMR_XWRAP (1 << 10)	/* 10Base-T Transceiver loopback */
270*297a64e7Sgd78059 #define	PHY_LBREMR_LB	(0x3 << 8)	/* Twister and remote loopback */
271*297a64e7Sgd78059 #define	PHY_LBREMR_RES1	(0x7 << 5)	/* Reserved */
272*297a64e7Sgd78059 #define	PHY_LBREMR_CODE	(1 << 4)	/* Report det. of Code Error */
273*297a64e7Sgd78059 #define	PHY_LBREMR_PME	(1 << 3)	/* Report det. of Pre-mature End err */
274*297a64e7Sgd78059 #define	PHY_LBREMR_LINK	(1 << 2)	/* Report det. of Link Error */
275*297a64e7Sgd78059 #define	PHY_LBREMR_PKT	(1 << 1)	/* Report det. of Packet error */
276*297a64e7Sgd78059 #define	PHY_LBREMR_EB	(1 << 0)	/* Report det. of Elasticty buf err */
277*297a64e7Sgd78059 
278*297a64e7Sgd78059 /* ************************************************************************ */
279*297a64e7Sgd78059 /*
280*297a64e7Sgd78059  * Register 25	 PHY Address Register
281*297a64e7Sgd78059  */
282*297a64e7Sgd78059 
283*297a64e7Sgd78059 #define	PHY_AR_RES1	(0x1ff << 7)	/* reserved */
284*297a64e7Sgd78059 #define	PHY_AR_SPEED10	(1 << 6)	/* speed : 1 = 10 Mbps, 0 - 100 Mbps */
285*297a64e7Sgd78059 #define	PHY_AR_CONSTS	(1 << 5)	/* status of the disconnect function */
286*297a64e7Sgd78059 #define	PHY_AR_ADDR	(0x1f << 0)	/* PHY Address */
287*297a64e7Sgd78059 
288*297a64e7Sgd78059 /*
289*297a64e7Sgd78059  * The PHYAD<4:0> allow 32 unique PHY addresses. The PHYAD<4:0> share the RX_ER,
290*297a64e7Sgd78059  * PHYAD3, CRS, ENCSEL ald LBEN pins of the PHY. By patching the PHYAD address
291*297a64e7Sgd78059  * pins with a light pull-up or pull-down resistor, the PMD address can be
292*297a64e7Sgd78059  * strobed and stored in these register location during Reset or Power-on reset
293*297a64e7Sgd78059  * time.
294*297a64e7Sgd78059  *
295*297a64e7Sgd78059  * The first PHY address bit transmitted or received is the MSB of the address.
296*297a64e7Sgd78059  * A PHY connected to a station management entity via an interface connector
297*297a64e7Sgd78059  * shall always respond to PHY address < 00000 > . A station management entity
298*297a64e7Sgd78059  * connected to multiple PHY entities must know the appropriate PHY address of
299*297a64e7Sgd78059  * each PHY entity. PHY address should be set to < 00001 > for a single
300*297a64e7Sgd78059  * PHY entity. A PHY address of < 00000 > will cause the Isolate bit 0: < 10 >
301*297a64e7Sgd78059  * to be set to one.
302*297a64e7Sgd78059  */
303*297a64e7Sgd78059 
304*297a64e7Sgd78059 /* ************************************************************************ */
305*297a64e7Sgd78059 /*
306*297a64e7Sgd78059  * Register 26	 Reserverd for future assignement by vendor
307*297a64e7Sgd78059  */
308*297a64e7Sgd78059 
309*297a64e7Sgd78059 /* ************************************************************************ */
310*297a64e7Sgd78059 /*
311*297a64e7Sgd78059  * Register 27	 10 Mbps TPI Status Register
312*297a64e7Sgd78059  */
313*297a64e7Sgd78059 
314*297a64e7Sgd78059 #define	PHY_TPISR_RES1	(0x3f << 10)	/* reserved */
315*297a64e7Sgd78059 #define	PHY_TPISR_10BTSER (1 << 9)	/* 10BASE-T Serial mode */
316*297a64e7Sgd78059 #define	PHY_TPISR_RES2	(0x1ff << 0)	/* reserved */
317*297a64e7Sgd78059 
318*297a64e7Sgd78059 /* ************************************************************************ */
319*297a64e7Sgd78059 /*
320*297a64e7Sgd78059  * Register 28	 10 Mbps Network I/F Configuration Register
321*297a64e7Sgd78059  */
322*297a64e7Sgd78059 
323*297a64e7Sgd78059 #define	PHY_NICR_RES1	(0x3ff << 6)	/* reserved */
324*297a64e7Sgd78059 #define	PHY_NICR_LD	(1 << 5)	/* Link disable */
325*297a64e7Sgd78059 #define	PHY_NICR_HBE	(1 << 4)	/* Enable Heart beat function */
326*297a64e7Sgd78059 #define	PHY_NICR_UTP	(1 << 3)	/* 1 = UTP, 0 = STP */
327*297a64e7Sgd78059 #define	PHY_NICR_LSS	(1 << 2)	/* Low Squelch select */
328*297a64e7Sgd78059 #define	PHY_NICR_RES2	(1 << 1)	/* reserved */
329*297a64e7Sgd78059 #define	PHY_NICR_JBEN	(1 << 0)	/* Enables Jabber function  in FDX */
330*297a64e7Sgd78059 					/* or xwrap mode  */
331*297a64e7Sgd78059 
332*297a64e7Sgd78059 /* ************************************************************************ */
333*297a64e7Sgd78059 
334*297a64e7Sgd78059 /* Registers 29-31 are reserved for future assignment by Vendor */
335*297a64e7Sgd78059 /* Do not write to these registers */
336*297a64e7Sgd78059 
337*297a64e7Sgd78059 /* ************************************************************************ */
338*297a64e7Sgd78059 
339*297a64e7Sgd78059 #ifdef	__cplusplus
340*297a64e7Sgd78059 }
341*297a64e7Sgd78059 #endif
342*297a64e7Sgd78059 
343*297a64e7Sgd78059 #endif	/* _SYS_ERI_PHY_H */
344