*/
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
*
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