[U-Boot] [PATCH v5 1/4] usb: hub: make minimum power-on delay configurable

Kuo-Jung Su dantesu at gmail.com
Mon May 13 03:11:25 CEST 2013


2013/5/10 Marek Vasut <marex at denx.de>:
> Dear Kuo-Jung Su,
>
>> 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.
>>
>> NOTE:
>> The minimal delay is still 100 msec, a small value defined
>> in CONFIG_USB_HUB_MIN_POWER_ON_DELAY would be automatically
>> justified in common/usb_hub.c.
>>
>> Signed-off-by: Kuo-Jung Su <dantesu at faraday-tech.com>
>> CC: Marek Vasut <marex at denx.de>
>> ---
>> 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, 10 insertions(+), 1 deletion(-)
>>
>> diff --git a/README b/README
>> index 0d37d56..c70a59b 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.(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 b5eeb62..0db3530 100644
>> --- a/common/usb_hub.c
>> +++ b/common/usb_hub.c
>> @@ -61,6 +61,12 @@
>>  #define USB_HUB_DEBUG        0
>>  #endif
>>
>> +#if CONFIG_USB_HUB_MIN_POWER_ON_DELAY > 100
>> +# define USB_HUB_MIN_POWER_ON_DELAY  CONFIG_USB_HUB_MIN_POWER_ON_DELAY
>> +#else
>> +# define USB_HUB_MIN_POWER_ON_DELAY  100
>> +#endif
>
> Even better (and easier) solution here would be:
>
> ifndef CONFIG_USB_HUB_MIN_POWER_ON_DELAY
> #define CONFIG_USB_HUB_MIN_POWER_ON_DELAY 100
> #endif
>
> no ? ;-)
>

Yep, it looks better, I'll have it fixed.

>>  #define USB_PRINTF(fmt, args...)     debug_cond(USB_DEBUG, fmt, ##args)
>>  #define USB_HUB_PRINTF(fmt, args...) debug_cond(USB_HUB_DEBUG, fmt,
>> ##args)
>>
>> @@ -121,7 +127,7 @@ static void usb_hub_power_on(struct usb_hub_device
>> *hub) }
>>
>>       /* Wait at least 100 msec for power to become stable */
>> -     mdelay(max(pgood_delay, (unsigned)100));
>> +     mdelay(max(pgood_delay, USB_HUB_MIN_POWER_ON_DELAY));
>>  }
>>
>>  void usb_hub_reset(void)
>> --
>> 1.7.9.5
>
> Best regards,
> Marek Vasut



--
Best wishes,
Kuo-Jung Su


More information about the U-Boot mailing list