diff --git a/drivers/net/ipq807x/ipq807x_aquantia_phy.c b/drivers/net/ipq807x/ipq807x_aquantia_phy.c index 5396c16c64..624bf9f17d 100644 --- a/drivers/net/ipq807x/ipq807x_aquantia_phy.c +++ b/drivers/net/ipq807x/ipq807x_aquantia_phy.c @@ -238,6 +238,20 @@ static int do_load_fw(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) return 0; } +static int do_aq_phy_restart(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{ + unsigned int phy_addr = AQU_PHY_ADDR; + int node, aquantia_port; + if (argc > 2) + return CMD_RET_USAGE; + + if (argc == 2) + phy_addr = simple_strtoul(argv[1], NULL, 16); + + aquantia_phy_restart_autoneg(phy_addr); + return 0; +} + int ipq_board_fw_download(unsigned int phy_addr) { char runcmd[256]; @@ -539,3 +553,9 @@ U_BOOT_CMD( "LOAD aq-fw-binary", "" ); + +U_BOOT_CMD( + aq_phy_restart, 5, 1, do_aq_phy_restart, + "Restart Aquantia phy", + "" +);