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 <s...@denx.de>
Cc: Roger Meier <r.me...@siemens.com>
Cc: Lukas Stockmann <lukas.stockm...@siemens.com>
Cc: Tom Rini <tr...@ti.com>
---
 board/siemens/dxr2/board.c | 26 +++++++++++++++++++-------
 1 file 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)) */
 
-- 
1.8.5.5

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to