You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.8 KiB
C
88 lines
2.8 KiB
C
16 years ago
|
/*!
|
||
|
* \file eth.h
|
||
|
* \brief Definitions for Ethernet Physical Layer Interface
|
||
|
* \version $Revision: 1.3 $
|
||
|
* \author Michael Norman
|
||
|
*/
|
||
|
|
||
|
#ifndef _ETH_PHY_H
|
||
|
#define _ETH_PHY_H
|
||
|
|
||
|
/*******************************************************************/
|
||
|
|
||
|
int
|
||
|
eth_phy_autoneg(int phy_addr, MII_SPEED speed, MII_DUPLEX duplex);
|
||
|
|
||
|
int
|
||
|
eth_phy_manual(int phy_addr, MII_SPEED speed, MII_DUPLEX duplex, int loop);
|
||
|
|
||
|
int
|
||
|
eth_phy_get_speed(int, int*);
|
||
|
|
||
|
int
|
||
|
eth_phy_get_duplex(int, int*);
|
||
|
|
||
|
int
|
||
|
eth_phy_reg_dump(int);
|
||
|
|
||
|
/*******************************************************************/
|
||
|
|
||
|
/* MII Register Addresses */
|
||
|
#define PHY_BMCR (0x00)
|
||
|
#define PHY_BMSR (0x01)
|
||
|
#define PHY_PHYIDR1 (0x02)
|
||
|
#define PHY_PHYIDR2 (0x03)
|
||
|
#define PHY_ANAR (0x04)
|
||
|
#define PHY_ANLPAR (0x05)
|
||
|
|
||
|
/* Bit definitions and macros for PHY_CTRL */
|
||
|
#define PHY_BMCR_RESET (0x8000)
|
||
|
#define PHY_BMCR_LOOP (0x4000)
|
||
|
#define PHY_BMCR_SPEED (0x2000)
|
||
|
#define PHY_BMCR_AN_ENABLE (0x1000)
|
||
|
#define PHY_BMCR_POWERDOWN (0x0800)
|
||
|
#define PHY_BMCR_ISOLATE (0x0400)
|
||
|
#define PHY_BMCR_AN_RESTART (0x0200)
|
||
|
#define PHY_BMCR_FDX (0x0100)
|
||
|
#define PHY_BMCR_COL_TEST (0x0080)
|
||
|
|
||
|
/* Bit definitions and macros for PHY_STAT */
|
||
|
#define PHY_BMSR_100BT4 (0x8000)
|
||
|
#define PHY_BMSR_100BTX_FDX (0x4000)
|
||
|
#define PHY_BMSR_100BTX (0x2000)
|
||
|
#define PHY_BMSR_10BT_FDX (0x1000)
|
||
|
#define PHY_BMSR_10BT (0x0800)
|
||
|
#define PHY_BMSR_NO_PREAMBLE (0x0040)
|
||
|
#define PHY_BMSR_AN_COMPLETE (0x0020)
|
||
|
#define PHY_BMSR_REMOTE_FAULT (0x0010)
|
||
|
#define PHY_BMSR_AN_ABILITY (0x0008)
|
||
|
#define PHY_BMSR_LINK (0x0004)
|
||
|
#define PHY_BMSR_JABBER (0x0002)
|
||
|
#define PHY_BMSR_EXTENDED (0x0001)
|
||
|
|
||
|
/* Bit definitions and macros for PHY_AN_ADV */
|
||
|
#define PHY_ANAR_NEXT_PAGE (0x8001)
|
||
|
#define PHY_ANAR_REM_FAULT (0x2001)
|
||
|
#define PHY_ANAR_PAUSE (0x0401)
|
||
|
#define PHY_ANAR_100BT4 (0x0201)
|
||
|
#define PHY_ANAR_100BTX_FDX (0x0101)
|
||
|
#define PHY_ANAR_100BTX (0x0081)
|
||
|
#define PHY_ANAR_10BT_FDX (0x0041)
|
||
|
#define PHY_ANAR_10BT (0x0021)
|
||
|
#define PHY_ANAR_802_3 (0x0001)
|
||
|
|
||
|
/* Bit definitions and macros for PHY_AN_LINK_PAR */
|
||
|
#define PHY_ANLPAR_NEXT_PAGE (0x8000)
|
||
|
#define PHY_ANLPAR_ACK (0x4000)
|
||
|
#define PHY_ANLPAR_REM_FAULT (0x2000)
|
||
|
#define PHY_ANLPAR_PAUSE (0x0400)
|
||
|
#define PHY_ANLPAR_100BT4 (0x0200)
|
||
|
#define PHY_ANLPAR_100BTX_FDX (0x0100)
|
||
|
#define PHY_ANLPAR_100BTX (0x0080)
|
||
|
#define PHY_ANLPAR_10BTX_FDX (0x0040)
|
||
|
#define PHY_ANLPAR_10BT (0x0020)
|
||
|
|
||
|
/*******************************************************************/
|
||
|
|
||
|
#endif /* _ETH_PHY_H */
|