79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
|  * NOTE:	MICREL ethernet Physical layer
 | |
|  *
 | |
|  * Version:	KS8721.h
 | |
|  *
 | |
|  * Authors:	Eric Benard (based on dm9161.h)
 | |
|  *
 | |
|  *		This program is free software; you can redistribute it and/or
 | |
|  *		modify it under the terms of the GNU General Public License
 | |
|  *		as published by the Free Software Foundation; either version
 | |
|  *		2 of the License, or (at your option) any later version.
 | |
|  */
 | |
| 
 | |
| /* MICREL PHYSICAL LAYER TRANSCEIVER KS8721 */
 | |
| 
 | |
| #define	KS8721_BMCR		0
 | |
| #define KS8721_BMSR		1
 | |
| #define KS8721_PHYID1		2
 | |
| #define KS8721_PHYID2		3
 | |
| #define KS8721_ANAR		4
 | |
| #define KS8721_ANLPAR		5
 | |
| #define KS8721_ANER		6
 | |
| #define KS8721_RECR		15
 | |
| #define KS8721_MDINTR		27
 | |
| #define KS8721_100BT		31
 | |
| 
 | |
| /* --Bit definitions: KS8721_BMCR */
 | |
| #define KS8721_RESET		(1 << 15)
 | |
| #define KS8721_LOOPBACK		(1 << 14)
 | |
| #define KS8721_SPEED_SELECT	(1 << 13)
 | |
| #define KS8721_AUTONEG		(1 << 12)
 | |
| #define KS8721_POWER_DOWN	(1 << 11)
 | |
| #define KS8721_ISOLATE		(1 << 10)
 | |
| #define KS8721_RESTART_AUTONEG	(1 << 9)
 | |
| #define KS8721_DUPLEX_MODE	(1 << 8)
 | |
| #define KS8721_COLLISION_TEST	(1 << 7)
 | |
| #define	KS8721_DISABLE		(1 << 0)
 | |
| 
 | |
| /*--Bit definitions: KS8721_BMSR */
 | |
| #define KS8721_100BASE_T4	(1 << 15)
 | |
| #define KS8721_100BASE_TX_FD	(1 << 14)
 | |
| #define KS8721_100BASE_T4_HD	(1 << 13)
 | |
| #define KS8721_10BASE_T_FD	(1 << 12)
 | |
| #define KS8721_10BASE_T_HD	(1 << 11)
 | |
| #define KS8721_MF_PREAMB_SUPPR	(1 << 6)
 | |
| #define KS8721_AUTONEG_COMP	(1 << 5)
 | |
| #define KS8721_REMOTE_FAULT	(1 << 4)
 | |
| #define KS8721_AUTONEG_ABILITY	(1 << 3)
 | |
| #define KS8721_LINK_STATUS	(1 << 2)
 | |
| #define KS8721_JABBER_DETECT	(1 << 1)
 | |
| #define KS8721_EXTEND_CAPAB	(1 << 0)
 | |
| 
 | |
| /*--Bit definitions: KS8721_PHYID */
 | |
| #define KS8721_PHYID_OUI	0x0885
 | |
| #define KS8721_LSB_MASK		0x3F
 | |
| 
 | |
| #define	KS8721BL_MODEL		0x21
 | |
| #define	KS8721_MODELMASK	0x3F0
 | |
| #define	KS8721BL_REV		0x9
 | |
| #define KS8721_REVMASK		0xF
 | |
| 
 | |
| /*--Bit definitions: KS8721_ANAR, KS8721_ANLPAR */
 | |
| #define KS8721_NP		(1 << 15)
 | |
| #define KS8721_ACK		(1 << 14)
 | |
| #define KS8721_RF		(1 << 13)
 | |
| #define KS8721_PAUSE		(1 << 10)
 | |
| #define KS8721_T4		(1 << 9)
 | |
| #define KS8721_TX_FDX		(1 << 8)
 | |
| #define KS8721_TX_HDX		(1 << 7)
 | |
| #define KS8721_10_FDX		(1 << 6)
 | |
| #define KS8721_10_HDX		(1 << 5)
 | |
| #define KS8721_AN_IEEE_802_3	0x0001
 | |
| 
 | |
| /******************  function prototypes **********************/
 | |
| unsigned int  ks8721_isphyconnected(AT91PS_EMAC p_mac);
 | |
| unsigned char ks8721_getlinkspeed(AT91PS_EMAC p_mac);
 | |
| unsigned char ks8721_autonegotiate(AT91PS_EMAC p_mac, int *status);
 | |
| unsigned char ks8721_initphy(AT91PS_EMAC p_mac);
 |