xref: /rk3399_rockchip-uboot/include/miiphy.h (revision fc3e2165efda62670d447617a7d44c5666178ea4)
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);
49*fc3e2165Swdenk #ifdef CFG_FAULT_ECHO_LINK_DOWN
50*fc3e2165Swdenk int  miiphy_link(unsigned char addr);
51*fc3e2165Swdenk #endif
52214ec6bbSwdenk 
53214ec6bbSwdenk 
54214ec6bbSwdenk /* phy seed setup */
55214ec6bbSwdenk #define AUTO			99
56214ec6bbSwdenk #define _100BASET		100
57214ec6bbSwdenk #define _10BASET		10
58214ec6bbSwdenk #define HALF			22
59214ec6bbSwdenk #define FULL			44
60214ec6bbSwdenk 
61214ec6bbSwdenk /* phy register offsets */
62214ec6bbSwdenk #define PHY_BMCR		0x00
63214ec6bbSwdenk #define PHY_BMSR		0x01
64214ec6bbSwdenk #define PHY_PHYIDR1		0x02
65214ec6bbSwdenk #define PHY_PHYIDR2		0x03
66214ec6bbSwdenk #define PHY_ANAR		0x04
67214ec6bbSwdenk #define PHY_ANLPAR		0x05
68214ec6bbSwdenk #define PHY_ANER		0x06
69214ec6bbSwdenk #define PHY_ANNPTR		0x07
70214ec6bbSwdenk #define PHY_PHYSTS		0x10
71214ec6bbSwdenk #define PHY_MIPSCR		0x11
72214ec6bbSwdenk #define PHY_MIPGSR		0x12
73214ec6bbSwdenk #define PHY_DCR			0x13
74214ec6bbSwdenk #define PHY_FCSCR		0x14
75214ec6bbSwdenk #define PHY_RECR		0x15
76214ec6bbSwdenk #define PHY_PCSR		0x16
77214ec6bbSwdenk #define PHY_LBR			0x17
78214ec6bbSwdenk #define PHY_10BTSCR		0x18
79214ec6bbSwdenk #define PHY_PHYCTRL		0x19
80214ec6bbSwdenk 
81214ec6bbSwdenk /* PHY BMCR */
82214ec6bbSwdenk #define PHY_BMCR_RESET		0x8000
83214ec6bbSwdenk #define PHY_BMCR_LOOP		0x4000
84214ec6bbSwdenk #define PHY_BMCR_100MB		0x2000
85214ec6bbSwdenk #define PHY_BMCR_AUTON		0x1000
86214ec6bbSwdenk #define PHY_BMCR_POWD		0x0800
87214ec6bbSwdenk #define PHY_BMCR_ISO		0x0400
88214ec6bbSwdenk #define PHY_BMCR_RST_NEG	0x0200
89214ec6bbSwdenk #define PHY_BMCR_DPLX		0x0100
90214ec6bbSwdenk #define PHY_BMCR_COL_TST	0x0080
91214ec6bbSwdenk 
92214ec6bbSwdenk /* phy BMSR */
93214ec6bbSwdenk #define PHY_BMSR_100T4		0x8000
94214ec6bbSwdenk #define PHY_BMSR_100TXF		0x4000
95214ec6bbSwdenk #define PHY_BMSR_100TXH		0x2000
96214ec6bbSwdenk #define PHY_BMSR_10TF		0x1000
97214ec6bbSwdenk #define PHY_BMSR_10TH		0x0800
98214ec6bbSwdenk #define PHY_BMSR_PRE_SUP	0x0040
99214ec6bbSwdenk #define PHY_BMSR_AUTN_COMP	0x0020
100214ec6bbSwdenk #define PHY_BMSR_RF		0x0010
101214ec6bbSwdenk #define PHY_BMSR_AUTN_ABLE	0x0008
102214ec6bbSwdenk #define PHY_BMSR_LS		0x0004
103214ec6bbSwdenk #define PHY_BMSR_JD		0x0002
104214ec6bbSwdenk #define PHY_BMSR_EXT		0x0001
105214ec6bbSwdenk 
106214ec6bbSwdenk /*phy ANLPAR */
107214ec6bbSwdenk #define PHY_ANLPAR_NP		0x8000
108214ec6bbSwdenk #define PHY_ANLPAR_ACK		0x4000
109214ec6bbSwdenk #define PHY_ANLPAR_RF		0x2000
110214ec6bbSwdenk #define PHY_ANLPAR_T4		0x0200
111214ec6bbSwdenk #define PHY_ANLPAR_TXFD		0x0100
112214ec6bbSwdenk #define PHY_ANLPAR_TX		0x0080
113214ec6bbSwdenk #define PHY_ANLPAR_10FD		0x0040
114214ec6bbSwdenk #define PHY_ANLPAR_10		0x0020
115214ec6bbSwdenk #define PHY_ANLPAR_100		0x0380	    /* we can run at 100 */
116214ec6bbSwdenk #endif
117