Zephyr Project API 4.0.99
A Scalable Open Source RTOS
|
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) (x & (BIT(1) | BIT(3) | BIT(5) | BIT(6) | BIT(7))) |
Check if phy link is full duplex. | |
#define | PHY_LINK_IS_SPEED_1000M(x) (x & (BIT(4) | BIT(5))) |
Check if phy link speed is 1 Gbit/sec. | |
#define | PHY_LINK_IS_SPEED_100M(x) (x & (BIT(2) | BIT(3))) |
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 | |
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.
#include <include/zephyr/net/phy.h>
Check if phy link is full duplex.
x | Link capabilities |
#include <include/zephyr/net/phy.h>
Check if phy link speed is 1 Gbit/sec.
x | Link capabilities |
#include <include/zephyr/net/phy.h>
Check if phy link speed is 100 Mbit/sec.
x | Link capabilities |
phy_callback_t |
#include <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 <include/zephyr/net/phy.h>
Ethernet link speeds.
int genphy_get_plca_cfg | ( | const struct device * | dev, |
struct phy_plca_cfg * | plca_cfg | ||
) |
#include <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 <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 <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 <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 <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 <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 <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 <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.
[in] | dev | PHY device structure |
callback | Callback handler | |
user_data | Pointer to data specified by user. |
0 | If successful. |
-ENOTSUP | If not supported. |
#include <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 <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 <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 <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 <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. |