LPCOpen Platform
LPCOpen Platform for NXP LPC Microcontrollers
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
lpc_phy_smsc87x0.c File Reference
#include "chip.h"
#include "lpc_phy.h"

Go to the source code of this file.

Macros

#define LAN8_BCR_REG   0x0
 
#define LAN8_BSR_REG   0x1
 
#define LAN8_PHYID1_REG   0x2
 
#define LAN8_PHYID2_REG   0x3
 
#define LAN8_PHYSPLCTL_REG   0x1F
 
#define LAN8_RESET   (1 << 15)
 
#define LAN8_LOOPBACK   (1 << 14)
 
#define LAN8_SPEED_SELECT   (1 << 13)
 
#define LAN8_AUTONEG   (1 << 12)
 
#define LAN8_POWER_DOWN   (1 << 11)
 
#define LAN8_ISOLATE   (1 << 10)
 
#define LAN8_RESTART_AUTONEG   (1 << 9)
 
#define LAN8_DUPLEX_MODE   (1 << 8)
 
#define LAN8_100BASE_T4   (1 << 15)
 
#define LAN8_100BASE_TX_FD   (1 << 14)
 
#define LAN8_100BASE_TX_HD   (1 << 13)
 
#define LAN8_10BASE_T_FD   (1 << 12)
 
#define LAN8_10BASE_T_HD   (1 << 11)
 
#define LAN8_AUTONEG_COMP   (1 << 5)
 
#define LAN8_RMT_FAULT   (1 << 4)
 
#define LAN8_AUTONEG_ABILITY   (1 << 3)
 
#define LAN8_LINK_STATUS   (1 << 2)
 
#define LAN8_JABBER_DETECT   (1 << 1)
 
#define LAN8_EXTEND_CAPAB   (1 << 0)
 
#define LAN8_SPEEDMASK   (7 << 2)
 
#define LAN8_SPEED100F   (6 << 2)
 
#define LAN8_SPEED10F   (5 << 2)
 
#define LAN8_SPEED100H   (2 << 2)
 
#define LAN8_SPEED10H   (1 << 2)
 
#define LAN8_PHYID1_OUI   0x0007
 
#define LAN8_PHYID2_OUI   0xC0F0
 

Functions

static Status lpc_mii_write (uint8_t reg, uint16_t data)
 
static Status lpc_mii_read (uint8_t reg, uint16_t *data)
 
static void smsc_update_phy_sts (uint16_t linksts, uint16_t sdsts)
 
uint32_t lpc_phy_init (bool rmii, p_msDelay_func_t pDelayMsFunc)
 Initialize the PHY.
 
uint32_t lpcPHYStsPoll (void)
 Phy status update state machine.
 

Variables

static uint32_t physts
 
static uint32_t olddphysts
 
static int32_t phyustate
 
static p_msDelay_func_t pDelayMs