diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2012-11-09 15:37:05 +0100 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2012-11-09 15:37:05 +0100 |
commit | 9680bdaeeb0af9d41f6b96ce45dc72b268a6aafa (patch) | |
tree | 2b7813430f92c6ad5164b257c228d47c1cf11f9f | |
parent | 4fbbacf8fd32cf14771c791b922c8e3e828b3add (diff) |
colibri_t20: USB: fix Ethernet detection fault
Turns out we completely missed properly resetting the ASIX USB to FastEthernet chip which from time-to-time on certain modules caused severe Ethernet detection faults only a complete hardware reset or power-cycle could eliminate. Properly resetting the chip for 5 microseconds after VBUS is stable seems to fix the issue.
-rw-r--r-- | board/toradex/common/usb.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/board/toradex/common/usb.c b/board/toradex/common/usb.c index 63accf83944..f0f4a474537 100644 --- a/board/toradex/common/usb.c +++ b/board/toradex/common/usb.c @@ -212,6 +212,15 @@ void usbf_reset_controller(enum periph_id id, struct usb_ctlr *usbctlr) /* Enable ASIX AX88772B V_BUS */ gpio_direction_output(GPIO_PBB1, 1); pinmux_tristate_disable(PINGRP_DTE); + + /* Reset */ + gpio_direction_output(GPIO_PV4, 0); + pinmux_tristate_disable(PINGRP_GPV); + + udelay(5); + + /* Unreset */ + gpio_set_value(GPIO_PV4, 1); } /* |