diff options
author | Stefan Roese <sr@denx.de> | 2014-03-12 10:45:41 +0100 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-03-12 16:22:12 -0400 |
commit | ec716e33d6ce46c9b60db4cf35af81d8812b414e (patch) | |
tree | c1ef2385803d2201fa6b78bbc3a9f261904019e9 /board | |
parent | ef59bb7cc830b563530cd8bbfff22139f5e98b0a (diff) | |
download | u-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.c | 26 |
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)) */ |