Skip to content
Snippets Groups Projects
Commit ec716e33 authored by Stefan Roese's avatar Stefan Roese Committed by Tom Rini
Browse files

arm: am335x: DXR2: Move unconditional LAN9303 reset into command


The switch HW reset results in a disconnection of the switch port daisy-
chain for a few seconds. This is not desired in the normal field use
case. So lets remove this switch reset from the normal bootup sequence
and move it into a board specific command. This way it can be executed
in the development environment when really needed.

Signed-off-by: default avatarStefan Roese <sr@denx.de>
Cc: Roger Meier <r.meier@siemens.com>
Cc: Lukas Stockmann <lukas.stockmann@siemens.com>
Cc: Tom Rini <trini@ti.com>
parent ef59bb7c
Branches
Tags
No related merge requests found
...@@ -232,13 +232,6 @@ int board_eth_init(bd_t *bis) ...@@ -232,13 +232,6 @@ int board_eth_init(bd_t *bis)
factoryset_setenv(); factoryset_setenv();
/* Reset SMSC LAN9303 switch for default configuration */
gpio_request(GPIO_LAN9303_NRST, "nRST");
gpio_direction_output(GPIO_LAN9303_NRST, 0);
/* assert active low reset for 200us */
udelay(200);
gpio_set_value(GPIO_LAN9303_NRST, 1);
/* Set rgmii mode and enable rmii clock to be sourced from chip */ /* Set rgmii mode and enable rmii clock to be sourced from chip */
writel((RMII_MODE_ENABLE | RMII_CHIPCKL_ENABLE), &cdev->miisel); writel((RMII_MODE_ENABLE | RMII_CHIPCKL_ENABLE), &cdev->miisel);
...@@ -249,6 +242,25 @@ int board_eth_init(bd_t *bis) ...@@ -249,6 +242,25 @@ int board_eth_init(bd_t *bis)
n += rv; n += rv;
return n; return n;
} }
static int do_switch_reset(cmd_tbl_t *cmdtp, int flag, int argc,
char *const argv[])
{
/* Reset SMSC LAN9303 switch for default configuration */
gpio_request(GPIO_LAN9303_NRST, "nRST");
gpio_direction_output(GPIO_LAN9303_NRST, 0);
/* assert active low reset for 200us */
udelay(200);
gpio_set_value(GPIO_LAN9303_NRST, 1);
return 0;
};
U_BOOT_CMD(
switch_rst, CONFIG_SYS_MAXARGS, 1, do_switch_reset,
"Reset LAN9303 switch via its reset pin",
""
);
#endif /* #if defined(CONFIG_DRIVER_TI_CPSW) */ #endif /* #if defined(CONFIG_DRIVER_TI_CPSW) */
#endif /* #if (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) */ #endif /* #if (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment