Add dap8211r_write_ext() to write extended registers via the indirect access registers of the phy. This will be used to write extended registers of the dap8211r. No functional change. Signed-off-by: Artem Shimko --- drivers/net/phy/dap8211r.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/net/phy/dap8211r.c b/drivers/net/phy/dap8211r.c index 0bf770f8ebbb..4eb50c26397f 100644 --- a/drivers/net/phy/dap8211r.c +++ b/drivers/net/phy/dap8211r.c @@ -88,6 +88,32 @@ static int dap8211r_read_ext(struct phy_device *phydev, u16 reg) return ret; } +/** + * dap8211r_write_ext() - Write extended register + * @phydev: PHY device structure + * @reg: Extended register address + * @data: Data to write + * + * Writes a PHY extended register using the indirect access method. + * The caller must hold the MDIO bus lock. + * + * Return: 0 on success, or negative error code + */ +static int dap8211r_write_ext(struct phy_device *phydev, u16 reg, u16 data) +{ + int ret; + + phy_lock_mdio_bus(phydev); + ret = __phy_write(phydev, DAP8211R_EXT_ADD, reg); + if (ret < 0) + goto out; + + ret = __phy_write(phydev, DAP8211R_EXT_DATA, data); +out: + phy_unlock_mdio_bus(phydev); + return ret; +} + /** * dap8211r_modify_ext() - Modify extended register bits * @phydev: PHY device structure -- 2.43.0