AM261x MCU+ SDK: enetphy.h File Reference

| AM261x MCU+ SDK 26.00.00 |

Data Structures | Macros | Typedefs | Enumerations | Functions
enetphy.h File Reference

## Introduction

This file contains the type definitions and helper macros for the Ethernet PHY interface.

Go to the source code of this file.

## Data Structures
struct | EnetPhy_Version
| PHY version (ID). More...
struct | EnetPhy_LinkCfg
| Link speed and duplexity configuration. More...
struct | EnetPhy_FsmTimeoutCfg
| PHY State-Machine time-out values. More...
struct | EnetPhy_Cfg
| PHY configuration parameters. More...
struct | EnetPhy_Mdio
| MDIO driver. More...
struct | EnetPhy_State
| PHY driver FSM state. More...
struct | EnetPhy_Obj
| PHY driver object. More...

## Macros
#define | ENETPHY_IS_ADDR_VALID(addr) ((addr) <= 31U)
| Check if PHY address is valid (0 - 31). More...
#define | ENETPHY_BIT(n) (1U << (n))
| Macro to set bit at given bit position. More...
#define | ENETPHY_IS_BIT_SET(val, n) (((val) & ENETPHY_BIT(n)) != 0U)
| Macro to check if bit at given bit position is set. More...
#define | ENETPHY_ARRAYSIZE(x) (sizeof(x) / sizeof(x[0]))
| Macro to get the size of an array. More...
#define | ENETPHY_EXTENDED_CFG_SIZE_MAX (128U)
| Max extended configuration size, arbitrarily chosen. More...
#define | ENETPHY_FSM_TICK_PERIOD_MS (100U)
| Enet PHY State Machine tick period. More...
#define | ENETPHY_INVALID_PHYADDR (~0U)
| Invalid PHY address indicator. More...
#define | ENETPHY_TIMEOUT_WAIT_FOREVER (0xFFFFFFFFU)
| State timeout value to set to disable timeout. More...
#define | ENETPHY_TIMEOUT_NO_WAIT (0U)
| State timeout value to set to expire immediately. More...
Ethernet PHY driver error codes
Error codes returned by the Ethernet PHY driver APIs.
#define | ENETPHY_SOK (CSL_PASS)
| Success. More...
#define | ENETPHY_EFAIL (CSL_EFAIL)
| Generic failure error condition (typically caused by hardware). More...
#define | ENETPHY_EBADARGS (CSL_EBADARGS)
| Bad arguments (i.e. NULL pointer). More...
#define | ENETPHY_EINVALIDPARAMS (CSL_EINVALID_PARAMS)
| Invalid parameters (i.e. value out-of-range). More...
#define | ENETPHY_ETIMEOUT (CSL_ETIMEOUT)
| Time out while waiting for a given condition to happen. More...
#define | ENETPHY_EALLOC (CSL_EALLOC)
| Allocation failure. More...
#define | ENETPHY_EPERM (CSL_EALLOC - 4)
| Operation not permitted. More...
#define | ENETPHY_ENOTSUPPORTED (CSL_EALLOC - 5)
| Operation not supported. More...
#define | ENETPHY_EUNAVAILABLE (CSL_EALLOC - 6)
| Operation not supported. More...
Ethernet PHY link capability masks
Error codes returned by the Ethernet PHY driver APIs.
#define | ENETPHY_LINK_CAP_HD10 ENETPHY_BIT(1)
| 10-Mbps, half-duplex capability mask. More...
#define | ENETPHY_LINK_CAP_FD10 ENETPHY_BIT(2)
| 10-Mbps, full-duplex capability mask. More...
#define | ENETPHY_LINK_CAP_HD100 ENETPHY_BIT(3)
| 100-Mbps, half-duplex capability mask. More...
#define | ENETPHY_LINK_CAP_FD100 ENETPHY_BIT(4)
| 100-Mbps, full-duplex capability mask. More...
#define | ENETPHY_LINK_CAP_HD1000 ENETPHY_BIT(5)
| 1-Gbps, half-duplex capability mask. More...
#define | ENETPHY_LINK_CAP_FD1000 ENETPHY_BIT(6)
| 1-Gbps, full-duplex capability mask. More...
#define | ENETPHY_LINK_CAP_10
| 10-Mbps, full and half-duplex capability mask. More...
#define | ENETPHY_LINK_CAP_100
| 100-Mbps, full and half-duplex capability mask. More...
#define | ENETPHY_LINK_CAP_1000
| 1-Gbps, full and half-duplex capability mask. More...
#define | ENETPHY_LINK_CAP_ALL
| Auto-negotiation mask with all duplexity and speed values set. More...

## Typedefs
typedef struct Mdio_Obj_s | Mdio_Obj
typedef EnetPhy_Mdio * | EnetPhy_MdioHandle
| MDIO driver handle. More...
typedef struct EnetPhy_Obj_s * | EnetPhy_Handle
| PHY driver object handle. More...

## Enumerations
enum | EnetPhy_Magic { ENETPHY_MAGIC = 0xCADACADAU, ENETPHY_NO_MAGIC = 0x0U }
| EnetPhy driver magic value, used to indicate if driver is open or not. More...
enum | EnetPhy_Mii { ENETPHY_MAC_MII_MII = PHY_MAC_MII_MII, ENETPHY_MAC_MII_RMII = PHY_MAC_MII_RMII, ENETPHY_MAC_MII_GMII = PHY_MAC_MII_GMII, ENETPHY_MAC_MII_RGMII = PHY_MAC_MII_RGMII, ENETPHY_MAC_MII_SGMII = PHY_MAC_MII_SGMII, ENETPHY_MAC_MII_QSGMII = PHY_MAC_MII_QSGMII }
| MAC Media-Independent Interface (MII). More...
enum | EnetPhy_Speed { ENETPHY_SPEED_10MBIT = 0U, ENETPHY_SPEED_100MBIT, ENETPHY_SPEED_1GBIT, ENETPHY_SPEED_AUTO }
| MAC interface speed. More...
enum | EnetPhy_Duplexity { ENETPHY_DUPLEX_HALF = 0U, ENETPHY_DUPLEX_FULL, ENETPHY_DUPLEX_AUTO }
| MAC interface duplexity. More...
enum | EnetPhy_LinkStatus { ENETPHY_GOT_LINK = 0U, ENETPHY_LINK_UP, ENETPHY_LOST_LINK, ENETPHY_LINK_DOWN }
| PHY link status. More...
enum | EnetPhy_FsmState { ENETPHY_FSM_STATE_INIT = 0U, ENETPHY_FSM_STATE_FINDING, ENETPHY_FSM_STATE_RESET_WAIT, ENETPHY_FSM_STATE_ENABLE, ENETPHY_FSM_STATE_FOUND, ENETPHY_FSM_STATE_NWAY_START, ENETPHY_FSM_STATE_NWAY_WAIT, ENETPHY_FSM_STATE_LINK_WAIT, ENETPHY_FSM_STATE_LINKED, ENETPHY_FSM_STATE_LOOPBACK, ENETPHY_FSM_STATE_ISOLATE }
| PHY driver state-machine states. More...

## Functions
void | EnetPhy_initCfg (EnetPhy_Cfg *phyCfg)
| Initialize PHY config params. More...
void | EnetPhy_setExtendedCfg (EnetPhy_Cfg *phyCfg, const void *extendedCfg, uint32_t extendedCfgSize)
| Set PHY extended parameters. More...
EnetPhy_Handle | EnetPhy_open (const EnetPhy_Cfg *phyCfg, EnetPhy_Mii mii, const EnetPhy_LinkCfg *linkCfg, uint32_t macPortCaps, EnetPhy_MdioHandle hMdio, Mdio_Obj *mdioArgs)
| Open the PHY driver. More...
void | EnetPhy_close (EnetPhy_Handle hPhy)
| Close the PHY driver. More...
EnetPhy_LinkStatus | EnetPhy_tick (EnetPhy_Handle hPhy)
| Run PHY state machine. More...
int32_t | EnetPhy_getId (EnetPhy_Handle hPhy, EnetPhy_Version *version)
| Get PHY id. More...
bool | EnetPhy_isAlive (EnetPhy_Handle hPhy)
| Get PHY alive status. More...
bool | EnetPhy_isLinked (EnetPhy_Handle hPhy)
| Get link status. More...
int32_t | EnetPhy_getLinkCfg (EnetPhy_Handle hPhy, EnetPhy_LinkCfg *linkCfg)
| Get link configuration. More...
int32_t | EnetPhy_getLinkStatus (EnetPhy_Handle hPhy, EnetPhy_Speed *speed, EnetPhy_Duplexity *duplex)
| Get link speed, duplex from phy registers. More...
int32_t | EnetPhy_readReg (void *pArgs, uint32_t reg, uint16_t *val)
| Read PHY register. More...
int32_t | EnetPhy_writeReg (void *pArgs, uint32_t reg, uint16_t val)
| Write PHY register. More...
int32_t | EnetPhy_rmwReg (void *pArgs, uint32_t reg, uint16_t mask, uint16_t val)
| Read-modify-write PHY register. More...
int32_t | EnetPhy_readExtReg (void *pArgs, uint32_t reg, uint16_t *val)
| Read PHY extended register. More...
int32_t | EnetPhy_writeExtReg (void *pArgs, uint32_t reg, uint16_t val)
| Write PHY extended register. More...
int32_t | EnetPhy_rmwExtReg (EnetPhy_Handle hPhy, uint32_t reg, uint16_t mask, uint16_t val)
| Read-modify-write PHY extended register. More...
int32_t | EnetPhy_readC45Reg (EnetPhy_Handle hPhy, uint8_t mmd, uint32_t reg, uint16_t *val)
| Read PHY register using Clause-45 frame. More...
int32_t | EnetPhy_writeC45Reg (EnetPhy_Handle hPhy, uint8_t mmd, uint32_t reg, uint16_t val)
| Write PHY register using Clause-45 frame. More...
int32_t | EnetPhy_rmwC45Reg (EnetPhy_Handle hPhy, uint8_t mmd, uint32_t reg, uint16_t mask, uint16_t val)
| Read-modify-write PHY register using Clause-45 frame. More...
void | EnetPhy_printRegs (EnetPhy_Handle hPhy)
| Print all PHY registers. More...
int32_t | EnetPhy_adjPtpFreq (EnetPhy_Handle hPhy, int64_t ppb)
| Adjust PHY PTP clock frequency. More...
int32_t | EnetPhy_adjPtpPhase (EnetPhy_Handle hPhy, int64_t offset)
| Adjust PHY PTP clock phase. More...
int32_t | EnetPhy_getPtpTime (EnetPhy_Handle hPhy, uint64_t *ts64)
| Get current PHY PTP clock time. More...
int32_t | EnetPhy_setPtpTime (EnetPhy_Handle hPhy, uint64_t ts64)
| Set PHY PTP clock time. More...
int32_t | EnetPhy_getPtpTxTime (EnetPhy_Handle hPhy, uint32_t domain, uint32_t msgType, uint32_t seqId, uint64_t *ts64)
| Get PHY PTP TX packet timestamp. More...
int32_t | EnetPhy_getPtpRxTime (EnetPhy_Handle hPhy, uint32_t domain, uint32_t msgType, uint32_t seqId, uint64_t *ts64)
| Get PHY PTP RX packet timestamp. More...
int32_t | EnetPhy_waitPtpTxTime (EnetPhy_Handle hPhy, uint32_t domain, uint32_t msgType, uint32_t seqId)
| Add PHY PTP TX packet info to a waiting TX timestamp list. More...
int32_t | EnetPhy_procStatusFrame (EnetPhy_Handle hPhy, uint8_t *frame, uint32_t size, uint32_t *types)
| Process PHY status frame. More...
int32_t | EnetPhy_getStatusFrameEthHeader (EnetPhy_Handle hPhy, uint8_t *ethhdr, uint32_t size)
| Get PHY status frame header. More...
int32_t | EnetPhy_enablePtp (EnetPhy_Handle hPhy, bool on, uint32_t srcMacStatusFrameType)
| Enable/Disable PHY PTP module. More...
int32_t | EnetPhy_tickDriver (EnetPhy_Handle hPhy)
| Provide timer tick to the driver. More...
int32_t | EnetPhy_enableEventCapture (EnetPhy_Handle hPhy, uint32_t eventIdx, bool falling, bool on)
| Enable/Disable an event capture on a PHY GPIO pin. More...
int32_t | EnetPhy_enableTriggerOutput (EnetPhy_Handle hPhy, uint32_t triggerIdx, uint64_t start, uint64_t period, bool repeat)
| Enable/Disable clock trigger on a GPIO pin. More...
int32_t | EnetPhy_getEventTs (EnetPhy_Handle hPhy, uint32_t *eventIdx, uint32_t *seqId, uint64_t *ts64)
| Get event timestamp. More...
int32_t | EnetPhy_configMediaClock (EnetPhy_Handle hPhy, bool isMaster, uint8_t *streamIDMatchValue, bool enTrigOut)
| config Media Clock More...
int32_t | EnetPhy_nudgeCodecClock (EnetPhy_Handle hPhy, int8_t nudgeValue)
| Nudge Codec Clock. More...