[PATCH 3/5] fixup! net: eqos: Rockchip support
Ahmad Fatoum
a.fatoum at pengutronix.de
Wed Jun 9 01:55:10 PDT 2021
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 <a.fatoum at pengutronix.de>
---
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
More information about the barebox
mailing list