diff options
author | Wei Liang Lim <weiliang.lim@starfivetech.com> | 2023-10-20 13:54:42 +0300 |
---|---|---|
committer | Wei Liang Lim <weiliang.lim@starfivetech.com> | 2023-10-20 13:54:42 +0300 |
commit | 38368bc81339771df8a653c66798bf92f5005312 (patch) | |
tree | 23c07f269ede95649b466e4b4292554ada787a64 | |
parent | 1e2016ed0e6cb5f3cc0959a7db40bdd2fdf78432 (diff) | |
download | u-boot-38368bc81339771df8a653c66798bf92f5005312.tar.xz |
drivers: net: Dubhe GMAC Update
Signed-off-by: Wei Liang Lim <weiliang.lim@starfivetech.com>
-rw-r--r-- | drivers/net/dwc_eth_qos.c | 14 | ||||
-rw-r--r-- | drivers/net/phy/marvell.c | 6 | ||||
-rw-r--r-- | drivers/net/phy/phy.c | 10 |
3 files changed, 28 insertions, 2 deletions
diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c index 2b58dbb0f0..a29155ad6e 100644 --- a/drivers/net/dwc_eth_qos.c +++ b/drivers/net/dwc_eth_qos.c @@ -346,6 +346,7 @@ err: #endif } +#if 0 static int eqos_start_clks_jh7110(struct udevice *dev) { struct eqos_priv *eqos = dev_get_priv(dev); @@ -396,6 +397,7 @@ err: debug("%s: FAILED: %d\n", __func__, ret); return ret; } +#endif static int eqos_stop_clks_tegra186(struct udevice *dev) { @@ -431,6 +433,7 @@ static int eqos_stop_clks_stm32(struct udevice *dev) return 0; } +#if 0 static int eqos_stop_clks_jh7110(struct udevice *dev) { struct eqos_priv *eqos = dev_get_priv(dev); @@ -444,6 +447,7 @@ static int eqos_stop_clks_jh7110(struct udevice *dev) debug("%s: OK\n", __func__); return 0; } +#endif static int eqos_start_resets_tegra186(struct udevice *dev) { @@ -517,6 +521,7 @@ static int eqos_stop_resets_tegra186(struct udevice *dev) return 0; } +#if 0 static int eqos_stop_resets_jh7110(struct udevice *dev) { // struct eqos_priv *eqos = dev_get_priv(dev); @@ -526,6 +531,7 @@ static int eqos_stop_resets_jh7110(struct udevice *dev) return 0; } +#endif static int eqos_calibrate_pads_tegra186(struct udevice *dev) { @@ -1693,8 +1699,10 @@ err_free_clk_master_bus: clk_free(&eqos->clk_master_bus); err_free_gpio_phy_reset: /* dm_gpio_free(dev, &eqos->phy_reset_gpio); */ +#if 0 err_free_reset_eqos: - /* reset_free(&eqos->reset_ctl); */ + /* reset_release_bulk(&eqos->reset_bulk); */ +#endif return ret; } @@ -1704,7 +1712,7 @@ static phy_interface_t eqos_get_interface_tegra186(const struct udevice *dev) return PHY_INTERFACE_MODE_MII; } -static phy_interface_t eqos_get_interface_jh7110(struct udevice *dev) +static phy_interface_t eqos_get_interface_jh7110(const struct udevice *dev) { const char *phy_mode; phy_interface_t interface = PHY_INTERFACE_MODE_NA; @@ -1756,6 +1764,7 @@ static int eqos_remove_resources_stm32(struct udevice *dev) return 0; } +#if 0 static int eqos_remove_resources_jh7110(struct udevice *dev) { struct eqos_priv *eqos = dev_get_priv(dev); @@ -1771,6 +1780,7 @@ static int eqos_remove_resources_jh7110(struct udevice *dev) debug("%s: OK\n", __func__); return 0; } +#endif static int eqos_probe(struct udevice *dev) { diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c index 0a90f710df..66d415091c 100644 --- a/drivers/net/phy/marvell.c +++ b/drivers/net/phy/marvell.c @@ -424,6 +424,12 @@ static int m88e151x_config(struct phy_device *phydev) phy_write(phydev, MDIO_DEVAD_NONE, 16, 0x214D); phy_write(phydev, MDIO_DEVAD_NONE, 17, 0xCC0C); phy_write(phydev, MDIO_DEVAD_NONE, 16, 0x2159); + + /* Dubhe GMAC */ + phy_write(phydev, MDIO_DEVAD_NONE, MIIM_88E1118_PHY_PAGE, 18); //Switch to Page 18 + phy_write(phydev, MDIO_DEVAD_NONE, 18, 0x2); //Enable CRC checker on Copper Interface + phy_write(phydev, MDIO_DEVAD_NONE, 20, 0x0); //Set RGMII to Copper mode + phy_write(phydev, MDIO_DEVAD_NONE, MIIM_88E1118_PHY_PAGE, 0x0000); /* SGMII-to-Copper mode initialization */ diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index ae21acb059..c12bca6ef5 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -81,6 +81,10 @@ static int genphy_config_advert(struct phy_device *phydev) changed = 1; } + /* Dubhe GMAC */ + /* Enable MAC Pause and Auto-Negotiation Advertisement 10M Full Duplex */ + phy_write(phydev, MDIO_DEVAD_NONE, 4, 0x441); + bmsr = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMSR); if (bmsr < 0) return bmsr; @@ -101,6 +105,8 @@ static int genphy_config_advert(struct phy_device *phydev) adv &= ~(ADVERTISE_1000FULL | ADVERTISE_1000HALF); +/* Dubhe GMAC */ +#if 0 if (phydev->supported & (SUPPORTED_1000baseT_Half | SUPPORTED_1000baseT_Full)) { if (advertise & SUPPORTED_1000baseT_Half) @@ -108,6 +114,7 @@ static int genphy_config_advert(struct phy_device *phydev) if (advertise & SUPPORTED_1000baseT_Full) adv |= ADVERTISE_1000FULL; } +#endif if (adv != oldadv) changed = 1; @@ -585,6 +592,9 @@ struct phy_device *phy_device_create(struct mii_dev *bus, int addr, dev->autoneg = AUTONEG_ENABLE; + /* Dubhe GMAC */ + dev->speed = SPEED_10; + dev->addr = addr; dev->phy_id = phy_id; dev->is_c45 = is_c45; |