Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources
This commit is contained in:
53
sdk/lib/net/ethphy/eth_mdio_bus.c
Normal file
53
sdk/lib/net/ethphy/eth_mdio_bus.c
Normal file
@@ -0,0 +1,53 @@
|
||||
#include "typesdef.h"
|
||||
#include "list.h"
|
||||
#include "errno.h"
|
||||
#include "dev.h"
|
||||
#include "osal/string.h"
|
||||
#include "osal/semaphore.h"
|
||||
#include "osal/mutex.h"
|
||||
#include "osal/task.h"
|
||||
#include "hal/netdev.h"
|
||||
#include "lib/net/ethphy/eth_phy.h"
|
||||
#include "lib/net/ethphy/eth_mdio_bus.h"
|
||||
|
||||
__init int32 eth_mdio_bus_attach(uint32 dev_id, struct ethernet_mdio_bus *p_mdio_bus)
|
||||
{
|
||||
dev_register(dev_id, (struct dev_obj *)p_mdio_bus);
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int32 eth_mdio_bus_open(struct ethernet_mdio_bus *p_mdio_bus, struct netdev *p_netdev)
|
||||
{
|
||||
struct netdev_hal_ops *ndev_ops = (struct netdev_hal_ops *)p_netdev->dev.ops;
|
||||
if(!(p_netdev && ndev_ops->mdio_read && ndev_ops->mdio_write && p_mdio_bus)) {
|
||||
return RET_ERR;
|
||||
}
|
||||
|
||||
p_mdio_bus->priv = p_netdev;
|
||||
p_mdio_bus->read = (int (*)(void *, uint16, uint16))ndev_ops->mdio_read;
|
||||
p_mdio_bus->write = (int (*)(void *, uint16, uint16, uint16))ndev_ops->mdio_write;
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int32 eth_mdio_bus_close(struct ethernet_mdio_bus *p_mdio_bus)
|
||||
{
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int32 eth_mdio_bus_write(struct ethernet_mdio_bus *p_mdio_bus, uint16 phy_addr, uint16 reg_addr, uint16 data)
|
||||
{
|
||||
if(p_mdio_bus && p_mdio_bus->write) {
|
||||
return p_mdio_bus->write(p_mdio_bus->priv, phy_addr, reg_addr, data);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32 eth_mdio_bus_read(struct ethernet_mdio_bus *p_mdio_bus, uint16 phy_addr, uint16 reg_addr)
|
||||
{
|
||||
if(p_mdio_bus && p_mdio_bus->read) {
|
||||
return p_mdio_bus->read(p_mdio_bus->priv, phy_addr, reg_addr);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user