Other network controllers have different clock settings when configuring
link speed for RMII vs. RGMII. Split up the callback like with Linux to
make future extension easier.

Signed-off-by: Ahmad Fatoum <[email protected]>
---
 drivers/net/designware_rockchip.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/net/designware_rockchip.c 
b/drivers/net/designware_rockchip.c
index a4c7bfe925db..09b53e2cc08d 100644
--- a/drivers/net/designware_rockchip.c
+++ b/drivers/net/designware_rockchip.c
@@ -18,7 +18,8 @@ struct rk_gmac_ops {
        void (*set_to_rgmii)(struct eqos *eqos,
                             int tx_delay, int rx_delay);
        void (*set_to_rmii)(struct eqos *eqos);
-       void (*set_speed)(struct eqos *eqos, int speed);
+       void (*set_rmii_speed)(struct eqos *eqos, int speed);
+       void (*set_rgmii_speed)(struct eqos *eqos, int speed);
        void (*integrated_phy_powerup)(struct eqos *eqos);
 
        const struct clk_bulk_data *extra_clks;
@@ -182,7 +183,8 @@ static void rk3568_set_gmac_speed(struct eqos *eqos, int 
speed)
 static const struct rk_gmac_ops rk3568_ops = {
        .set_to_rgmii = rk3568_set_to_rgmii,
        .set_to_rmii = rk3568_set_to_rmii,
-       .set_speed = rk3568_set_gmac_speed,
+       .set_rmii_speed = rk3568_set_gmac_speed,
+       .set_rgmii_speed = rk3568_set_gmac_speed,
 
        .extra_clks = rk3568_gmac_clks,
        .num_extra_clks = ARRAY_SIZE(rk3568_gmac_clks),
@@ -228,7 +230,10 @@ static void eqos_rk_adjust_link(struct eth_device *edev)
        struct eqos *eqos = edev->priv;
        struct eqos_rk_gmac *priv = to_rk_gmac(eqos);
 
-       priv->ops->set_speed(eqos, edev->phydev->speed);
+       if (phy_interface_mode_is_rgmii(eqos->interface))
+               priv->ops->set_rgmii_speed(eqos, edev->phydev->speed);
+       else
+               priv->ops->set_rmii_speed(eqos, edev->phydev->speed);
 
        eqos_adjust_link(edev);
 }
-- 
2.29.2


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to