Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
Ethernet PHY Interface

Ethernet PHY Interface . More...

Data Structures

struct  phy_link_state
 Link state. More...
 

Macros

#define PHY_LINK_IS_FULL_DUPLEX(x)
 Check if phy link is full duplex.
 
#define PHY_LINK_IS_SPEED_1000M(x)
 Check if phy link speed is 1 Gbit/sec.
 
#define PHY_LINK_IS_SPEED_100M(x)
 Check if phy link speed is 100 Mbit/sec.
 

Typedefs

typedef void(* phy_callback_t) (const struct device *dev, struct phy_link_state *state, void *user_data)
 Define the callback function signature for phy_link_callback_set() function.
 

Enumerations

enum  phy_link_speed {
  LINK_HALF_10BASE_T = BIT(0) , LINK_FULL_10BASE_T = BIT(1) , LINK_HALF_100BASE_T = BIT(2) , LINK_FULL_100BASE_T = BIT(3) ,
  LINK_HALF_1000BASE_T = BIT(4) , LINK_FULL_1000BASE_T = BIT(5) , LINK_FULL_2500BASE_T = BIT(6) , LINK_FULL_5000BASE_T = BIT(7)
}
 Ethernet link speeds. More...
 

Functions

static int phy_configure_link (const struct device *dev, enum phy_link_speed speeds)
 Configure PHY link.
 
static int phy_get_link_state (const struct device *dev, struct phy_link_state *state)
 Get PHY link state.
 
static int phy_link_callback_set (const struct device *dev, phy_callback_t callback, void *user_data)
 Set link state change callback.
 
static int phy_read (const struct device *dev, uint16_t reg_addr, uint32_t *value)
 Read PHY registers.
 
static int phy_write (const struct device *dev, uint16_t reg_addr, uint32_t value)
 Write PHY register.
 

Detailed Description

Ethernet PHY Interface .

Since
2.7
Version
0.8.0

Macro Definition Documentation

◆ PHY_LINK_IS_FULL_DUPLEX

#define PHY_LINK_IS_FULL_DUPLEX ( x)

#include <zephyr/net/phy.h>

Value:
(x & (BIT(1) | BIT(3) | BIT(5) | BIT(6) | BIT(7)))
#define BIT(n)
Unsigned integer with bit position n set (signed in assembly language).
Definition util_macro.h:44

Check if phy link is full duplex.

Parameters
xLink capabilities
Returns
True if link is full duplex, false if not.

◆ PHY_LINK_IS_SPEED_1000M

#define PHY_LINK_IS_SPEED_1000M ( x)

#include <zephyr/net/phy.h>

Value:
(x & (BIT(4) | BIT(5)))

Check if phy link speed is 1 Gbit/sec.

Parameters
xLink capabilities
Returns
True if link is 1 Gbit/sec, false if not.

◆ PHY_LINK_IS_SPEED_100M

#define PHY_LINK_IS_SPEED_100M ( x)

#include <zephyr/net/phy.h>

Value:
(x & (BIT(2) | BIT(3)))

Check if phy link speed is 100 Mbit/sec.

Parameters
xLink capabilities
Returns
True if link is 1 Mbit/sec, false if not.

Typedef Documentation

◆ phy_callback_t

typedef void(* phy_callback_t) (const struct device *dev, struct phy_link_state *state, void *user_data)

#include <zephyr/net/phy.h>

Define the callback function signature for phy_link_callback_set() function.

Parameters
devPHY device structure
statePointer to link_state structure.
user_dataPointer to data specified by user

Enumeration Type Documentation

◆ phy_link_speed

#include <zephyr/net/phy.h>

Ethernet link speeds.

Enumerator
LINK_HALF_10BASE_T 

10Base-T Half-Duplex

LINK_FULL_10BASE_T 

10Base-T Full-Duplex

LINK_HALF_100BASE_T 

100Base-T Half-Duplex

LINK_FULL_100BASE_T 

100Base-T Full-Duplex

LINK_HALF_1000BASE_T 

1000Base-T Half-Duplex

LINK_FULL_1000BASE_T 

1000Base-T Full-Duplex

LINK_FULL_2500BASE_T 

2.5GBase-T Full-Duplex

LINK_FULL_5000BASE_T 

5GBase-T Full-Duplex

Function Documentation

◆ phy_configure_link()

static int phy_configure_link ( const struct device * dev,
enum phy_link_speed speeds )
inlinestatic

#include <zephyr/net/phy.h>

Configure PHY link.

This route configures the advertised link speeds.

Parameters
[in]devPHY device structure
speedsOR'd link speeds to be advertised by the PHY
Return values
0If successful.
-EIOIf communication with PHY failed.
-ENOTSUPIf not supported.

◆ phy_get_link_state()

static int phy_get_link_state ( const struct device * dev,
struct phy_link_state * state )
inlinestatic

#include <zephyr/net/phy.h>

Get PHY link state.

Returns the current state of the PHY link. This can be used by to determine when a link is up and the negotiated link speed.

Parameters
[in]devPHY device structure
statePointer to receive PHY state
Return values
0If successful.
-EIOIf communication with PHY failed.

◆ phy_link_callback_set()

static int phy_link_callback_set ( const struct device * dev,
phy_callback_t callback,
void * user_data )
inlinestatic

#include <zephyr/net/phy.h>

Set link state change callback.

Sets a callback that is invoked when link state changes. This is the preferred method for ethernet drivers to be notified of the PHY link state change.

Parameters
[in]devPHY device structure
callbackCallback handler
user_dataPointer to data specified by user.
Return values
0If successful.
-ENOTSUPIf not supported.

◆ phy_read()

static int phy_read ( const struct device * dev,
uint16_t reg_addr,
uint32_t * value )
inlinestatic

#include <zephyr/net/phy.h>

Read PHY registers.

This routine provides a generic interface to read from a PHY register.

Parameters
[in]devPHY device structure
[in]reg_addrRegister address
valuePointer to receive read value
Return values
0If successful.
-EIOIf communication with PHY failed.

◆ phy_write()

static int phy_write ( const struct device * dev,
uint16_t reg_addr,
uint32_t value )
inlinestatic

#include <zephyr/net/phy.h>

Write PHY register.

This routine provides a generic interface to write to a PHY register.

Parameters
[in]devPHY device structure
[in]reg_addrRegister address
[in]valueValue to write
Return values
0If successful.
-EIOIf communication with PHY failed.