📄 csl_mdio.h
字号:
/*****************************************************************************\* Copyright (C) 1999-2003 Texas Instruments Incorporated.* All Rights Reserved*------------------------------------------------------------------------------* FILENAME...... csl_mdio.h* DATE CREATED.. 02/08/2002* LAST MODIFIED. 05/09/2003*------------------------------------------------------------------------------* NOTE:* When used in an multitasking environment, no MDIO function may be* called while another MDIO function is operating on the same device* handle in another thread. It is the responsibility of the application* to assure adherence to this restriction.** ALSO NOTE:* When using the CSL EMAC module, the EMAC module will make use of this* MDIO module. It is not necessary for the application to call any MDIO* functions directly when the CSL EMAC module is in use.*\******************************************************************************/#ifndef _CSL_MDIO_H#define _CSL_MDIO_H_
#include <csl.h>#include <csl_chip.h>
#include <csl_irq.h>
#include <csl_mdiohal.h>
#if (MDIO_SUPPORT)/*-----------------------------------------------------------------------*\* NEW TYPES\*-----------------------------------------------------------------------*/#ifndef _CSL_EMAC_TYPES#define _CSL_EMAC_TYPEStypedef unsigned int uint;typedef void * Handle;#endif/*-----------------------------------------------------------------------*\* MDIO Configuration Mode Flags** These flags determine how the MDIO module behaves\*-----------------------------------------------------------------------*/#define MDIO_MODEFLG_AUTONEG 0x0001 /* Use Autonegotiate *//* The following bits are used for manual and fallback configuration */#define MDIO_MODEFLG_HD10 0x0002 /* Use 10Mb/s Half Duplex */#define MDIO_MODEFLG_FD10 0x0004 /* Use 10Mb/s Full Duplex */#define MDIO_MODEFLG_HD100 0x0008 /* Use 100Mb/s Half Duplex */#define MDIO_MODEFLG_FD100 0x0010 /* Use 100Mb/s Full Duplex */#define MDIO_MODEFLG_LOOPBACK 0x0020 /* Use PHY Loopback *//* The following bits are reserved for use by the MDIO module */#define MDIO_MODEFLG_NWAYACTIVE 0x0040 /* NWAY is currently active *//*-----------------------------------------------------------------------*\* MDIO Link Status Values** These values indicate current PHY link status\*-----------------------------------------------------------------------*/#define MDIO_LINKSTATUS_NOLINK 0#define MDIO_LINKSTATUS_HD10 1#define MDIO_LINKSTATUS_FD10 2#define MDIO_LINKSTATUS_HD100 3#define MDIO_LINKSTATUS_FD100 4/*-----------------------------------------------------------------------*\* MDIO Events** These events are returned by MDIO_timerTick() to allow the application* (or EMAC) to track MDIO status.\*-----------------------------------------------------------------------*/#define MDIO_EVENT_NOCHANGE 0 /* No change from previous status */#define MDIO_EVENT_LINKDOWN 1 /* Link down event */#define MDIO_EVENT_LINKUP 2 /* Link (or re-link) event */#define MDIO_EVENT_PHYERROR 3 /* No PHY connected *//*-----------------------------------------------------------------------*\* MDIO_open()** Opens the MDIO peripheral and start searching for a PHY device.** It is assumed that the MDIO module is reset prior to calling this* function.\*-----------------------------------------------------------------------*/CSLAPI Handle MDIO_open( uint mdioModeFlags );/*-----------------------------------------------------------------------*\* MDIO_close()** Close the MDIO peripheral and disable further operation.\*-----------------------------------------------------------------------*/CSLAPI void MDIO_close( Handle hMDIO );/*-----------------------------------------------------------------------*\* MDIO_getStatus()** Called to get the status of the MDIO/PHY\*-----------------------------------------------------------------------*/CSLAPI void MDIO_getStatus( Handle hMDIO, uint *pPhy, uint *pLinkStatus );/*-----------------------------------------------------------------------*\* MDIO_timerTick()** Called to signify that approx 100mS have elapsed** Returns an MDIO event code (see MDIO Events in CSL_MDIO.H).\*-----------------------------------------------------------------------*/CSLAPI uint MDIO_timerTick( Handle hMDIO );/*-----------------------------------------------------------------------*\* MDIO_initPHY()** Force a switch to the specified PHY, and start negotiation.** This call is only used to override the normal PHY detection process.** Returns 1 if the PHY selection completed OK, else 0\*-----------------------------------------------------------------------*/CSLAPI uint MDIO_initPHY( Handle hMDIO, uint phyAddr );/*-----------------------------------------------------------------------*\* MDIO_phyRegRead()** Raw data read of a PHY register.** Returns 1 if the PHY ACK'd the read, else 0\*-----------------------------------------------------------------------*/CSLAPI uint MDIO_phyRegRead( uint phyIdx, uint phyReg, Uint16 *pData );/*-----------------------------------------------------------------------*\* MDIO_phyRegWrite()** Raw data write of a PHY register.** Returns 1 if the PHY ACK'd the write, else 0\*-----------------------------------------------------------------------*/CSLAPI uint MDIO_phyRegWrite( uint phyIdx, uint phyReg, Uint16 data );#endif /* MDIO_SUPPORT */#endif /* _CSL_MDIO_H_ *//******************************************************************************\* End of mdio.h\******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -