
On Thu, Mar 17, 2022 at 2:50 PM Marek Behún kabel@kernel.org wrote:
From: Marek Behún marek.behun@nic.cz
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
include/miiphy.h | 31 +++++++++++++++++++++++++++++++ net/mdio-uclass.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+)
diff --git a/include/miiphy.h b/include/miiphy.h index 235ae066dd..110921f20d 100644 --- a/include/miiphy.h +++ b/include/miiphy.h @@ -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
diff --git a/net/mdio-uclass.c b/net/mdio-uclass.c index 233b70171b..887c228167 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
-- 2.34.1
Reviewed-by: Ramon Fried rfried.dev@gmail.com