2010-11-02 06:43:51 Recover of USB connection with USB device after VBUS_ERROR on BF526.
Sergei Zenkevich (BELARUS)
Message: 95480
Hello,
We are using the 2010R1 RC1 kernel, BF526 and custom board. On our board every few days there is the VBUS_ERROR interrupts (it seem shortly temporal voltage drop) after which we can not recover USB device connection (reset of USB device and reload of musb_hdrc driver does not help, only board reboot help). We enable USB HOST mode. Our USB device is non-removable. USB_VBUS pin is permanently fed to 5 V. Source of the problem seems to be in our hardware, but we want to be able to recover USB device connection.
My question is, whether it is possible to recover connection with USB device after VBUS_ERROR or it is fatal error?
Thanks.
QuoteReplyEditDelete
2010-11-02 23:43:38 Re: Recover of USB connection with USB device after VBUS_ERROR on BF526.
Sonic Zhang (CHINA)
Message: 95504
What do you mean board reboot? hit the hardware reset button or run reboot command in Linux?
Do you configure the gpio_vresel properly in your board file? It may differ in diferent boards.
Could you turn on debug in driver/usb/musb/blackfin.c to see if bfin_set_vbus() is called after VBUS_ERROR is triggered?
QuoteReplyEditDelete
2010-11-03 04:06:59 Re: Recover of USB connection with USB deviceafter VBUS_ERROR on BF526.
Michael Hennerich (GERMANY)
Message: 95521 I think he mentioned that VBUS supply is permanently connected.
So he doesn't use VBUS switching.
However I think this is necessary to recover properly.
If you can't add this to your hardware, try to use a 120uF Low ESR Capacitor,
Across your 5 Volt supply, close to the device and where VBUS is sensed.
-Michael
QuoteReplyEditDelete
2010-11-03 10:09:30 Re: Recover of USB connection with USB device after VBUS_ERROR on BF526.
Sergei Zenkevich (BELARUS)
Message: 95526
Hi,
Thank you for your comments.
We have added a temporary VBUS switching to our board. We found that the connection recover if to do following steps after VBUS_ERROR:
1.remove musb_hdrc module
2.load musb_hdrc module
3.reset USB device
(We set VBUSERR_RETRY_COUNT = 0 in driver/usb/musb/musb_core.h. Only reset of USB device does not help.)
Now we will increase the VBUS capacitor and If it helps to avoid VBUS_ERROR, we will not install the VBUS switching. Whether it will be correct?
To Sonic Zhang:
> What do you mean board reboot? hit the hardware reset button or run reboot command in Linux?
reboot command in Linux.
> Do you configure the gpio_vresel properly in your board file? It may differ in diferent boards.
I hope yes. (We have inverted logic than on the BF526 EZBRD. We set gpio_vrsel_active = 1 and invert "value" in all gpio_set_value, gpio_direction_output calls in driver/usb/musb/blackfin.c except in bfin_set_vbus)
Could you turn on debug in driver/usb/musb/blackfin.c to see if bfin_set_vbus() is called after VBUS_ERROR is triggered?
We do not see bfin_set_vbus call after VBUS_ERROR with VBUSERR_RETRY_COUNT = 3.
Thanks.