diff options
author | Marek BehĂșn | 2022-04-07 00:32:58 +0200 |
---|---|---|
committer | Ramon Fried | 2022-04-10 08:44:12 +0300 |
commit | 351bfa6ebdcc454441b32976e895002a5b0523b5 (patch) | |
tree | 31ad0bbc05cfd6b56c7575febad1b45fc1c21e06 /net/mdio-uclass.c | |
parent | f3dd213e151ece2a382e730f5e75156536b2419d (diff) |
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>
Diffstat (limited to 'net/mdio-uclass.c')
-rw-r--r-- | net/mdio-uclass.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/net/mdio-uclass.c b/net/mdio-uclass.c index 233b70171b5..887c2281674 100644 --- a/net/mdio-uclass.c +++ b/net/mdio-uclass.c @@ -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 |