Zephyr API Documentation 4.1.99
A Scalable Open Source RTOS
|
|
4.1.99 |
Ethernet PHY Interface . More...
Data Structures | |
struct | phy_link_state |
Link state. More... | |
struct | phy_plca_cfg |
PLCA (Physical Layer Collision Avoidance) Reconciliation Sublayer configurations. 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. | |
#define | PHY_LINK_IS_SPEED_10M(x) |
Check if phy link speed is 10 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 = BIT(0) , LINK_FULL_10BASE = BIT(1) , LINK_HALF_100BASE = BIT(2) , LINK_FULL_100BASE = BIT(3) , LINK_HALF_1000BASE = BIT(4) , LINK_FULL_1000BASE = BIT(5) , LINK_FULL_2500BASE = BIT(6) , LINK_FULL_5000BASE = BIT(7) } |
Ethernet link speeds. More... | |
Functions | |
int | genphy_get_plca_cfg (const struct device *dev, struct phy_plca_cfg *plca_cfg) |
Write PHY PLCA configuration. | |
int | genphy_set_plca_cfg (const struct device *dev, struct phy_plca_cfg *plca_cfg) |
Read PHY PLCA configuration. | |
int | genphy_get_plca_sts (const struct device *dev, bool *plca_status) |
Read PHY PLCA status. | |
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. | |
static int | phy_read_c45 (const struct device *dev, uint8_t devad, uint16_t regad, uint16_t *data) |
Read PHY C45 register. | |
static int | phy_write_c45 (const struct device *dev, uint8_t devad, uint16_t regad, uint16_t data) |
Write PHY C45 register. | |
static int | phy_set_plca_cfg (const struct device *dev, struct phy_plca_cfg *plca_cfg) |
Write PHY PLCA configuration. | |
static int | phy_get_plca_cfg (const struct device *dev, struct phy_plca_cfg *plca_cfg) |
Read PHY PLCA configuration. | |
static int | phy_get_plca_sts (const struct device *dev, bool *plca_status) |
Read PHY PLCA status. | |
Ethernet PHY Interface .
#define PHY_LINK_IS_FULL_DUPLEX | ( | x | ) |
#include <zephyr/net/phy.h>
Check if phy link is full duplex.
x | Link capabilities |
#define PHY_LINK_IS_SPEED_1000M | ( | x | ) |
#include <zephyr/net/phy.h>
Check if phy link speed is 1 Gbit/sec.
x | Link capabilities |
#define PHY_LINK_IS_SPEED_100M | ( | x | ) |
#include <zephyr/net/phy.h>
Check if phy link speed is 100 Mbit/sec.
x | Link capabilities |
#define PHY_LINK_IS_SPEED_10M | ( | x | ) |
#include <zephyr/net/phy.h>
Check if phy link speed is 10 Mbit/sec.
x | Link capabilities |
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.
dev | PHY device structure |
state | Pointer to link_state structure. |
user_data | Pointer to data specified by user |
enum phy_link_speed |
#include <zephyr/net/phy.h>
Ethernet link speeds.
int genphy_get_plca_cfg | ( | const struct device * | dev, |
struct phy_plca_cfg * | plca_cfg ) |
#include <zephyr/net/phy.h>
Write PHY PLCA configuration.
This routine provides a generic interface to configure PHY PLCA settings.
[in] | dev | PHY device structure |
[in] | plca_cfg | Pointer to plca configuration structure |
0 | If successful. |
-EIO | If communication with PHY failed. |
#include <zephyr/net/phy.h>
Read PHY PLCA status.
This routine provides a generic interface to get PHY PLCA status.
[in] | dev | PHY device structure |
plca_status | Pointer to plca status |
0 | If successful. |
-EIO | If communication with PHY failed. |
int genphy_set_plca_cfg | ( | const struct device * | dev, |
struct phy_plca_cfg * | plca_cfg ) |
#include <zephyr/net/phy.h>
Read PHY PLCA configuration.
This routine provides a generic interface to get PHY PLCA settings.
[in] | dev | PHY device structure |
plca_cfg | Pointer to plca configuration structure |
0 | If successful. |
-EIO | If communication with PHY failed. |
|
inlinestatic |
#include <zephyr/net/phy.h>
Configure PHY link.
This route configures the advertised link speeds.
[in] | dev | PHY device structure |
speeds | OR'd link speeds to be advertised by the PHY |
0 | If successful. |
-EIO | If communication with PHY failed. |
-ENOTSUP | If not supported. |
|
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.
[in] | dev | PHY device structure |
state | Pointer to receive PHY state |
0 | If successful. |
-EIO | If communication with PHY failed. |
|
inlinestatic |
#include <zephyr/net/phy.h>
Read PHY PLCA configuration.
This routine provides a generic interface to get PHY PLCA settings.
[in] | dev | PHY device structure |
plca_cfg | Pointer to plca configuration structure |
0 | If successful. |
-EIO | If communication with PHY failed. |
#include <zephyr/net/phy.h>
Read PHY PLCA status.
This routine provides a generic interface to get PHY PLCA status.
[in] | dev | PHY device structure |
plca_status | Pointer to plca status |
0 | If successful. |
-EIO | If communication with PHY failed. |
|
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. The callback will be invoked once after setting it, even if link state has not changed. There can only one callback function set and active at a time. This function is mainly used by ethernet drivers to register a callback to be notified of link state changes and should therefore not be used by applications.
[in] | dev | PHY device structure |
callback | Callback handler | |
user_data | Pointer to data specified by user. |
0 | If successful. |
-ENOTSUP | If not supported. |
#include <zephyr/net/phy.h>
Read PHY registers.
This routine provides a generic interface to read from a PHY register.
[in] | dev | PHY device structure |
[in] | reg_addr | Register address |
value | Pointer to receive read value |
0 | If successful. |
-EIO | If communication with PHY failed. |
|
inlinestatic |
#include <zephyr/net/phy.h>
Read PHY C45 register.
This routine provides a generic interface to read to a PHY C45 register.
[in] | dev | PHY device structure |
[in] | devad | Device address |
[in] | regad | Register address |
data | Pointer to receive read data |
0 | If successful. |
-EIO | If communication with PHY failed. |
|
inlinestatic |
#include <zephyr/net/phy.h>
Write PHY PLCA configuration.
This routine provides a generic interface to configure PHY PLCA settings.
[in] | dev | PHY device structure |
[in] | plca_cfg | Pointer to plca configuration structure |
0 | If successful. |
-EIO | If communication with PHY failed. |
#include <zephyr/net/phy.h>
Write PHY register.
This routine provides a generic interface to write to a PHY register.
[in] | dev | PHY device structure |
[in] | reg_addr | Register address |
[in] | value | Value to write |
0 | If successful. |
-EIO | If communication with PHY failed. |
|
inlinestatic |
#include <zephyr/net/phy.h>
Write PHY C45 register.
This routine provides a generic interface to write to a PHY C45 register.
[in] | dev | PHY device structure |
[in] | devad | Device address |
[in] | regad | Register address |
[in] | data | Data to write |
0 | If successful. |
-EIO | If communication with PHY failed. |