aboutsummaryrefslogtreecommitdiff
path: root/net/mdio-uclass.c
diff options
context:
space:
mode:
authorMarek BehĂșn2022-04-07 00:32:58 +0200
committerRamon Fried2022-04-10 08:44:12 +0300
commit351bfa6ebdcc454441b32976e895002a5b0523b5 (patch)
tree31ad0bbc05cfd6b56c7575febad1b45fc1c21e06 /net/mdio-uclass.c
parentf3dd213e151ece2a382e730f5e75156536b2419d (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.c31
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