diff options
Diffstat (limited to 'libs')
-rw-r--r-- | libs/Network/include/Network.h | 1 | ||||
-rw-r--r-- | libs/Network/ports.c | 17 |
2 files changed, 18 insertions, 0 deletions
diff --git a/libs/Network/include/Network.h b/libs/Network/include/Network.h index 0d13a90..ec57a17 100644 --- a/libs/Network/include/Network.h +++ b/libs/Network/include/Network.h @@ -111,6 +111,7 @@ void Network_resetRX(NetworkPort_t *port, reload_type_t reset_phy); void Network_checkPortState(NetworkPort_t *port); bool Network_updatePortState(NetworkPort_t *port); +bool Network_checkEnableState(NetworkPort_t *port); bool Network_isLinkUp(NetworkPort_t *port); void Network_resetLink(NetworkPort_t *port); diff --git a/libs/Network/ports.c b/libs/Network/ports.c index 0e93bf9..460d2d4 100644 --- a/libs/Network/ports.c +++ b/libs/Network/ports.c @@ -846,6 +846,23 @@ void Network_resetRX(NetworkPort_t *port, reload_type_t reset_phy) } } +bool Network_checkEnableState(NetworkPort_t *port) +{ + // Ensure APE mode is set properly + if ((APE.Mode.r32 & port->APEModeEnable.r32) != port->APEModeEnable.r32) + { + return false; + } + + // Ensure APE mode2 is set properly + if ((APE.Mode2.r32 & port->APEMode2Enable.r32) != port->APEMode2Enable.r32) + { + return false; + } + + return true; +} + void Network_InitPort(NetworkPort_t *port, reload_type_t reset_phy) { RegMIIStatus_t stat; |