diff options
author | Kuo-Jung Su <dantesu@faraday-tech.com> | 2013-05-15 15:29:22 +0800 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2013-06-12 22:22:51 +0200 |
commit | aa1550588cc60549bf3a97dc6dccb7de4c022aa6 (patch) | |
tree | 650492a00e6157d45caba48bb1320e52b555a1a3 | |
parent | 1dde1423ad341b5d157ed7ee1f1b136f4ee7dbb4 (diff) | |
download | u-boot-imx-aa1550588cc60549bf3a97dc6dccb7de4c022aa6.zip u-boot-imx-aa1550588cc60549bf3a97dc6dccb7de4c022aa6.tar.gz u-boot-imx-aa1550588cc60549bf3a97dc6dccb7de4c022aa6.tar.bz2 |
usb: hub: make minimum power-on delay configurable
This patch makes the minimum power-on delay for USB HUB
become configurable. The original design waits at least
100 msec here, but some EHCI controlers(e.g. Faraday EHCI)
are known to require much longer delay interval.
Signed-off-by: Kuo-Jung Su <dantesu@faraday-tech.com>
CC: Marek Vasut <marex@denx.de>
-rw-r--r-- | README | 3 | ||||
-rw-r--r-- | common/usb_hub.c | 8 |
2 files changed, 9 insertions, 2 deletions
@@ -1261,6 +1261,9 @@ The following options need to be configured: CONFIG_USB_EHCI_TXFIFO_THRESH enables setting of the txfilltuning field in the EHCI controller on reset. + CONFIG_USB_HUB_MIN_POWER_ON_DELAY defines the minimum + interval for usb hub power-on delay.(minimum 100msec) + - USB Device: Define the below if you wish to use the USB console. Once firmware is rebuilt from a serial console issue the diff --git a/common/usb_hub.c b/common/usb_hub.c index 0d79ec3..fc3a8c1 100644 --- a/common/usb_hub.c +++ b/common/usb_hub.c @@ -53,6 +53,10 @@ #include <asm/4xx_pci.h> #endif +#ifndef CONFIG_USB_HUB_MIN_POWER_ON_DELAY +#define CONFIG_USB_HUB_MIN_POWER_ON_DELAY 100 +#endif + #define USB_BUFSIZ 512 static struct usb_hub_device hub_dev[USB_MAX_HUB]; @@ -148,8 +152,8 @@ static void usb_hub_power_on(struct usb_hub_device *hub) debug("port %d returns %lX\n", i + 1, dev->status); } - /* Wait at least 100 msec for power to become stable */ - mdelay(max(pgood_delay, (unsigned)100)); + /* Wait for power to become stable */ + mdelay(max(pgood_delay, CONFIG_USB_HUB_MIN_POWER_ON_DELAY)); } void usb_hub_reset(void) |