[U-Boot] [PATCH v6 1/4] usb: hub: make minimum power-on delay configurable
Kuo-Jung Su
dantesu at gmail.com
Mon May 13 04:07:23 CEST 2013
From: Kuo-Jung Su <dantesu at faraday-tech.com>
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 at faraday-tech.com>
CC: Marek Vasut <marex at denx.de>
---
Changes for v6:
- Simplify CONFIG_USB_HUB_MIN_POWER_ON_DELAY default value setup.
Changes for v5:
- Split up from Faraday EHCI patch
- Replace the Faraday EHCI ifdef for the long delay
in usb_hub_configure() with the new configuration option:
USB_HUB_MIN_POWER_ON_DELAY, which is used in usb_hub_power_on()
to control the minimum usb hub power-on delay.
Changes for v2 - v4:
- See 'usb: ehci: add Faraday USB 2.0 EHCI support'
README | 3 +++
common/usb_hub.c | 8 ++++++--
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/README b/README
index 0d37d56..455163b 100644
--- a/README
+++ b/README
@@ -1244,6 +1244,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.(100msec by default)
+
- 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 b5eeb62..f240d8c 100644
--- a/common/usb_hub.c
+++ b/common/usb_hub.c
@@ -61,6 +61,10 @@
#define USB_HUB_DEBUG 0
#endif
+#ifndef CONFIG_USB_HUB_MIN_POWER_ON_DELAY
+#define CONFIG_USB_HUB_MIN_POWER_ON_DELAY 100
+#endif
+
#define USB_PRINTF(fmt, args...) debug_cond(USB_DEBUG, fmt, ##args)
#define USB_HUB_PRINTF(fmt, args...) debug_cond(USB_HUB_DEBUG, fmt, ##args)
@@ -120,8 +124,8 @@ static void usb_hub_power_on(struct usb_hub_device *hub)
USB_HUB_PRINTF("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)
--
1.7.9.5
More information about the U-Boot
mailing list