diff options
author | Samuel Holland <samuel@sholland.org> | 2023-01-23 01:51:03 +0300 |
---|---|---|
committer | Andre Przywara <andre.przywara@arm.com> | 2023-04-12 02:17:21 +0300 |
commit | c5ac4b160f85b78d865318201a219b549e75cf0d (patch) | |
tree | ba7aaddd4c40ed54b4c1466e2e0b636dcf54a9e6 /drivers | |
parent | c86d47328eb9b6d674b4b23311201161c5a9b3aa (diff) | |
download | u-boot-c5ac4b160f85b78d865318201a219b549e75cf0d.tar.xz |
net: sun8i-emac: Add a flag for RMII support
Describe this feature instead of using the SoC ID.
Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/sun8i_emac.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c index 986e565cd8..f232b8f087 100644 --- a/drivers/net/sun8i_emac.c +++ b/drivers/net/sun8i_emac.c @@ -137,6 +137,7 @@ enum emac_variant_id { struct emac_variant { enum emac_variant_id variant; + bool support_rmii; }; struct emac_dma_desc { @@ -337,9 +338,7 @@ static int sun8i_emac_set_syscon(struct sun8i_eth_pdata *pdata, reg = sun8i_emac_set_syscon_ephy(priv, reg); reg &= ~(SC_ETCS_MASK | SC_EPIT); - if (priv->variant->variant == H3_EMAC || - priv->variant->variant == A64_EMAC || - priv->variant->variant == H6_EMAC) + if (priv->variant->support_rmii) reg &= ~SC_RMII_EN; switch (priv->interface) { @@ -353,13 +352,10 @@ static int sun8i_emac_set_syscon(struct sun8i_eth_pdata *pdata, reg |= SC_EPIT | SC_ETCS_INT_GMII; break; case PHY_INTERFACE_MODE_RMII: - if (priv->variant->variant == H3_EMAC || - priv->variant->variant == A64_EMAC || - priv->variant->variant == H6_EMAC) { + if (priv->variant->support_rmii) { reg |= SC_RMII_EN | SC_ETCS_EXT_GMII; - break; + break; } - /* RMII not supported on A83T */ default: debug("%s: Invalid PHY interface\n", __func__); return -EINVAL; @@ -910,6 +906,7 @@ static const struct emac_variant emac_variant_a83t = { static const struct emac_variant emac_variant_h3 = { .variant = H3_EMAC, + .support_rmii = true, }; static const struct emac_variant emac_variant_r40 = { @@ -918,10 +915,12 @@ static const struct emac_variant emac_variant_r40 = { static const struct emac_variant emac_variant_a64 = { .variant = A64_EMAC, + .support_rmii = true, }; static const struct emac_variant emac_variant_h6 = { .variant = H6_EMAC, + .support_rmii = true, }; static const struct udevice_id sun8i_emac_eth_ids[] = { |