summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2014-03-12 10:45:41 +0100
committerTom Rini <trini@ti.com>2014-03-12 16:22:12 -0400
commitec716e33d6ce46c9b60db4cf35af81d8812b414e (patch)
treec1ef2385803d2201fa6b78bbc3a9f261904019e9 /board
parentef59bb7cc830b563530cd8bbfff22139f5e98b0a (diff)
downloadu-boot-imx-ec716e33d6ce46c9b60db4cf35af81d8812b414e.zip
u-boot-imx-ec716e33d6ce46c9b60db4cf35af81d8812b414e.tar.gz
u-boot-imx-ec716e33d6ce46c9b60db4cf35af81d8812b414e.tar.bz2
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: Stefan Roese <sr@denx.de> Cc: Roger Meier <r.meier@siemens.com> Cc: Lukas Stockmann <lukas.stockmann@siemens.com> Cc: Tom Rini <trini@ti.com>
Diffstat (limited to 'board')
-rw-r--r--board/siemens/dxr2/board.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/board/siemens/dxr2/board.c b/board/siemens/dxr2/board.c
index 2172379..38ac93d 100644
--- a/board/siemens/dxr2/board.c
+++ b/board/siemens/dxr2/board.c
@@ -232,13 +232,6 @@ int board_eth_init(bd_t *bis)
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 */
writel((RMII_MODE_ENABLE | RMII_CHIPCKL_ENABLE), &cdev->miisel);
@@ -249,6 +242,25 @@ int board_eth_init(bd_t *bis)
n += rv;
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) && !defined(CONFIG_SPL_BUILD)) */