net: mdio-uclass: add wrappers for read/write/reset operations
Add wrappers dm_mdio_read(), dm_mdio_write() and dm_mdio_reset() for DM MDIO's .read(), .write() and .reset() operations. Signed-off-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
This commit is contained in:
parent
f3dd213e15
commit
351bfa6ebd
@ -157,6 +157,37 @@ struct mdio_ops {
|
||||
*/
|
||||
void dm_mdio_probe_devices(void);
|
||||
|
||||
/**
|
||||
* dm_mdio_read - Wrapper over .read() operation for DM MDIO
|
||||
*
|
||||
* @mdiodev: mdio device
|
||||
* @addr: PHY address on MDIO bus
|
||||
* @devad: device address on PHY if C45; should be MDIO_DEVAD_NONE if C22
|
||||
* @reg: register address
|
||||
* Return: register value if non-negative, -error code otherwise
|
||||
*/
|
||||
int dm_mdio_read(struct udevice *mdio_dev, int addr, int devad, int reg);
|
||||
|
||||
/**
|
||||
* dm_mdio_write - Wrapper over .write() operation for DM MDIO
|
||||
*
|
||||
* @mdiodev: mdio device
|
||||
* @addr: PHY address on MDIO bus
|
||||
* @devad: device address on PHY if C45; should be MDIO_DEVAD_NONE if C22
|
||||
* @reg: register address
|
||||
* @val: value to write
|
||||
* Return: 0 on success, -error code otherwise
|
||||
*/
|
||||
int dm_mdio_write(struct udevice *mdio_dev, int addr, int devad, int reg, u16 val);
|
||||
|
||||
/**
|
||||
* dm_mdio_reset - Wrapper over .reset() operation for DM MDIO
|
||||
*
|
||||
* @mdiodev: mdio device
|
||||
* Return: 0 on success, -error code otherwise
|
||||
*/
|
||||
int dm_mdio_reset(struct udevice *mdio_dev);
|
||||
|
||||
/**
|
||||
* dm_mdio_phy_connect - Wrapper over phy_connect for DM MDIO
|
||||
*
|
||||
|
@ -57,6 +57,37 @@ static int dm_mdio_post_bind(struct udevice *dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int dm_mdio_read(struct udevice *mdio_dev, int addr, int devad, int reg)
|
||||
{
|
||||
struct mdio_ops *ops = mdio_get_ops(mdio_dev);
|
||||
|
||||
if (!ops->read)
|
||||
return -ENOSYS;
|
||||
|
||||
return ops->read(mdio_dev, addr, devad, reg);
|
||||
}
|
||||
|
||||
int dm_mdio_write(struct udevice *mdio_dev, int addr, int devad, int reg,
|
||||
u16 val)
|
||||
{
|
||||
struct mdio_ops *ops = mdio_get_ops(mdio_dev);
|
||||
|
||||
if (!ops->write)
|
||||
return -ENOSYS;
|
||||
|
||||
return ops->write(mdio_dev, addr, devad, reg, val);
|
||||
}
|
||||
|
||||
int dm_mdio_reset(struct udevice *mdio_dev)
|
||||
{
|
||||
struct mdio_ops *ops = mdio_get_ops(mdio_dev);
|
||||
|
||||
if (!ops->reset)
|
||||
return 0;
|
||||
|
||||
return ops->reset(mdio_dev);
|
||||
}
|
||||
|
||||
/*
|
||||
* Following read/write/reset functions are registered with legacy MII code.
|
||||
* These are called for PHY operations by upper layers and we further call the
|
||||
|
Loading…
Reference in New Issue
Block a user