xref: /rk3399_rockchip-uboot/include/miiphy.h (revision 855a496fe9ba431772f1ff1aef21a5c001288bb0)
1214ec6bbSwdenk /*----------------------------------------------------------------------------+
2214ec6bbSwdenk |
3214ec6bbSwdenk |	This source code has been made available to you by IBM on an AS-IS
4214ec6bbSwdenk |	basis.	Anyone receiving this source is licensed under IBM
5214ec6bbSwdenk |	copyrights to use it in any way he or she deems fit, including
6214ec6bbSwdenk |	copying it, modifying it, compiling it, and redistributing it either
7214ec6bbSwdenk |	with or without modifications.	No license under IBM patents or
8214ec6bbSwdenk |	patent applications is to be implied by the copyright license.
9214ec6bbSwdenk |
10214ec6bbSwdenk |	Any user of this software should understand that IBM cannot provide
11214ec6bbSwdenk |	technical support for this software and will not be responsible for
12214ec6bbSwdenk |	any consequences resulting from the use of this software.
13214ec6bbSwdenk |
14214ec6bbSwdenk |	Any person who transfers this source code or any derivative work
15214ec6bbSwdenk |	must include the IBM copyright notice, this paragraph, and the
16214ec6bbSwdenk |	preceding two paragraphs in the transferred software.
17214ec6bbSwdenk |
18214ec6bbSwdenk |	COPYRIGHT   I B M   CORPORATION 1999
19214ec6bbSwdenk |	LICENSED MATERIAL  -  PROGRAM PROPERTY OF I B M
20214ec6bbSwdenk +----------------------------------------------------------------------------*/
21214ec6bbSwdenk /*----------------------------------------------------------------------------+
22214ec6bbSwdenk |
23214ec6bbSwdenk |  File Name:	miiphy.h
24214ec6bbSwdenk |
25214ec6bbSwdenk |  Function:	Include file defining PHY registers.
26214ec6bbSwdenk |
27214ec6bbSwdenk |  Author:	Mark Wisner
28214ec6bbSwdenk |
29214ec6bbSwdenk |  Change Activity-
30214ec6bbSwdenk |
31214ec6bbSwdenk |  Date	       Description of Change					BY
32214ec6bbSwdenk |  ---------   ---------------------					---
33214ec6bbSwdenk |  04-May-99   Created							MKW
34214ec6bbSwdenk |  07-Jul-99   Added full duplex support				MKW
35214ec6bbSwdenk |  08-Sep-01   Tweaks							gvb
36214ec6bbSwdenk |
37214ec6bbSwdenk +----------------------------------------------------------------------------*/
38214ec6bbSwdenk #ifndef _miiphy_h_
39214ec6bbSwdenk #define _miiphy_h_
40214ec6bbSwdenk 
41214ec6bbSwdenk 
42214ec6bbSwdenk int  miiphy_read(unsigned char addr, unsigned char reg, unsigned short * value);
43214ec6bbSwdenk int  miiphy_write(unsigned char addr, unsigned char reg, unsigned short value);
44214ec6bbSwdenk int  miiphy_info(unsigned char addr, unsigned int  *oui, unsigned char *model,
45214ec6bbSwdenk 		 unsigned char *rev);
46214ec6bbSwdenk int  miiphy_reset(unsigned char addr);
47214ec6bbSwdenk int  miiphy_speed(unsigned char addr);
48214ec6bbSwdenk int  miiphy_duplex(unsigned char addr);
49fc3e2165Swdenk #ifdef CFG_FAULT_ECHO_LINK_DOWN
50fc3e2165Swdenk int  miiphy_link(unsigned char addr);
51fc3e2165Swdenk #endif
52214ec6bbSwdenk 
53214ec6bbSwdenk 
54214ec6bbSwdenk /* phy seed setup */
55214ec6bbSwdenk #define AUTO			99
56*855a496fSwdenk #define _1000BASET              1000
57214ec6bbSwdenk #define _100BASET		100
58214ec6bbSwdenk #define _10BASET		10
59214ec6bbSwdenk #define HALF			22
60214ec6bbSwdenk #define FULL			44
61214ec6bbSwdenk 
62214ec6bbSwdenk /* phy register offsets */
63214ec6bbSwdenk #define PHY_BMCR		0x00
64214ec6bbSwdenk #define PHY_BMSR		0x01
65214ec6bbSwdenk #define PHY_PHYIDR1		0x02
66214ec6bbSwdenk #define PHY_PHYIDR2		0x03
67214ec6bbSwdenk #define PHY_ANAR		0x04
68214ec6bbSwdenk #define PHY_ANLPAR		0x05
69214ec6bbSwdenk #define PHY_ANER		0x06
70214ec6bbSwdenk #define PHY_ANNPTR		0x07
71*855a496fSwdenk #define PHY_ANLPNP              0x08
72*855a496fSwdenk #define PHY_1000BTCR            0x09
73*855a496fSwdenk #define PHY_1000BTSR            0x0A
74214ec6bbSwdenk #define PHY_PHYSTS		0x10
75214ec6bbSwdenk #define PHY_MIPSCR		0x11
76214ec6bbSwdenk #define PHY_MIPGSR		0x12
77214ec6bbSwdenk #define PHY_DCR			0x13
78214ec6bbSwdenk #define PHY_FCSCR		0x14
79214ec6bbSwdenk #define PHY_RECR		0x15
80214ec6bbSwdenk #define PHY_PCSR		0x16
81214ec6bbSwdenk #define PHY_LBR			0x17
82214ec6bbSwdenk #define PHY_10BTSCR		0x18
83214ec6bbSwdenk #define PHY_PHYCTRL		0x19
84214ec6bbSwdenk 
85214ec6bbSwdenk /* PHY BMCR */
86214ec6bbSwdenk #define PHY_BMCR_RESET		0x8000
87214ec6bbSwdenk #define PHY_BMCR_LOOP		0x4000
88214ec6bbSwdenk #define PHY_BMCR_100MB		0x2000
89214ec6bbSwdenk #define PHY_BMCR_AUTON		0x1000
90214ec6bbSwdenk #define PHY_BMCR_POWD		0x0800
91214ec6bbSwdenk #define PHY_BMCR_ISO		0x0400
92214ec6bbSwdenk #define PHY_BMCR_RST_NEG	0x0200
93214ec6bbSwdenk #define PHY_BMCR_DPLX		0x0100
94214ec6bbSwdenk #define PHY_BMCR_COL_TST	0x0080
95214ec6bbSwdenk 
96214ec6bbSwdenk /* phy BMSR */
97214ec6bbSwdenk #define PHY_BMSR_100T4		0x8000
98214ec6bbSwdenk #define PHY_BMSR_100TXF		0x4000
99214ec6bbSwdenk #define PHY_BMSR_100TXH		0x2000
100214ec6bbSwdenk #define PHY_BMSR_10TF		0x1000
101214ec6bbSwdenk #define PHY_BMSR_10TH		0x0800
102214ec6bbSwdenk #define PHY_BMSR_PRE_SUP	0x0040
103214ec6bbSwdenk #define PHY_BMSR_AUTN_COMP	0x0020
104214ec6bbSwdenk #define PHY_BMSR_RF		0x0010
105214ec6bbSwdenk #define PHY_BMSR_AUTN_ABLE	0x0008
106214ec6bbSwdenk #define PHY_BMSR_LS		0x0004
107214ec6bbSwdenk #define PHY_BMSR_JD		0x0002
108214ec6bbSwdenk #define PHY_BMSR_EXT		0x0001
109214ec6bbSwdenk 
110214ec6bbSwdenk /*phy ANLPAR */
111214ec6bbSwdenk #define PHY_ANLPAR_NP		0x8000
112214ec6bbSwdenk #define PHY_ANLPAR_ACK		0x4000
113214ec6bbSwdenk #define PHY_ANLPAR_RF		0x2000
114214ec6bbSwdenk #define PHY_ANLPAR_T4		0x0200
115214ec6bbSwdenk #define PHY_ANLPAR_TXFD		0x0100
116214ec6bbSwdenk #define PHY_ANLPAR_TX		0x0080
117214ec6bbSwdenk #define PHY_ANLPAR_10FD		0x0040
118214ec6bbSwdenk #define PHY_ANLPAR_10		0x0020
119214ec6bbSwdenk #define PHY_ANLPAR_100		0x0380	    /* we can run at 100 */
120*855a496fSwdenk 
121*855a496fSwdenk /* PHY_1000BTSR */
122*855a496fSwdenk #define PHY_1000BTSR_MSCF       0x8000
123*855a496fSwdenk #define PHY_1000BTSR_MSCR       0x4000
124*855a496fSwdenk #define PHY_1000BTSR_LRS        0x2000
125*855a496fSwdenk #define PHY_1000BTSR_RRS        0x1000
126*855a496fSwdenk #define PHY_1000BTSR_1000FD     0x0800
127*855a496fSwdenk #define PHY_1000BTSR_1000HD     0x0400
128*855a496fSwdenk 
129214ec6bbSwdenk #endif
130