How to reset USB HUB?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to reset USB HUB?

3,841 Views
jiangshao
Contributor V

我在使用一块imx6 sabre-sd开发板,它有一个USB HUB芯片(USB2514B)。

大多数时候工作正常,但有时一段时间之后,USB口没有电源输出。

通过dmesg,可以看到如下信息。我如何能知道故障何时发生?

故障发生时,我如何通过软件复位USB HUB?

I am using a imx6 sabre-sd board , it has a USB HUB chip (USB2514B). Most of the time working well,

but sometimes after a period of time , USB port no power output.

use dmesg command, I can see the following messages.

How do I know when a fault occurs ?

When a fault occurs , how do I reset the USB HUB?

<6>android_work: sent uevent USB_STATE=DISCONNECTED

<7>fsl_gadget_disconnect_event: udc enter low power mode

<3>option: option_instat_callback: error -2

<3>option: option_instat_callback: error -2

<3>hub 2-1:1.0: hub_port_status failed (err = -110)

<3>hub 2-1:1.0: hub_port_status failed (err = -110)

<3>hub 2-1:1.0: cannot disable port 2 (err = -110)

<4>------------[ cut here ]------------

<4>WARNING: at /media/myandroid/work/20140609/kernel_imx/net/sched/sch_generic.c

:255 dev_watchdog+0x284/0x2a8()

<6>NETDEV WATCHDOG: eth1 (cdc_ether): transmit queue 0 timed out

<4>Modules linked in: cfg80211

<4>[<c004cfc4>] (unwind_backtrace+0x0/0x138) from [<c0081eec>] (warn_slowpath_co

mmon+0x4c/0x64)

<4>[<c0081eec>] (warn_slowpath_common+0x4c/0x64) from [<c0081f98>] (warn_slowpat

h_fmt+0x30/0x40)

<4>[<c0081f98>] (warn_slowpath_fmt+0x30/0x40) from [<c04aa038>] (dev_watchdog+0x

284/0x2a8)

<4>[<c04aa038>] (dev_watchdog+0x284/0x2a8) from [<c008d950>] (run_timer_softirq+

0xf8/0x248)

<4>[<c008d950>] (run_timer_softirq+0xf8/0x248) from [<c00879b8>] (__do_softirq+0

xac/0x140)

<4>[<c00879b8>] (__do_softirq+0xac/0x140) from [<c0087ef4>] (irq_exit+0x94/0x9c)

<4>[<c0087ef4>] (irq_exit+0x94/0x9c) from [<c00461b4>] (handle_IRQ+0x50/0xac)

<4>[<c00461b4>] (handle_IRQ+0x50/0xac) from [<c004534c>] (__irq_svc+0x4c/0xe8)

<4>[<c004534c>] (__irq_svc+0x4c/0xe8) from [<c0046468>] (default_idle+0x24/0x28)

<4>[<c0046468>] (default_idle+0x24/0x28) from [<c0046778>] (cpu_idle+0xc8/0x108)

<4>[<c0046778>] (cpu_idle+0xc8/0x108) from [<c00088bc>] (start_kernel+0x29c/0x2e

c)

<4>[<c00088bc>] (start_kernel+0x29c/0x2ec) from [<10008040>] (0x10008040)

<4>---[ end trace 1857336724a8d525 ]---

<3>hub 2-1:1.0: hub_port_status failed (err = -110)

<6>otg udc vbus rising wakeup

<7>try_wake_up_udc: udc out low power mode

<6>android_work: did not send uevent (0 0   (null))

<6>android_work: sent uevent USB_STATE=CONNECTED

<6>android_work: sent uevent USB_STATE=DISCONNECTED

<6>android_work: sent uevent USB_STATE=CONNECTED

<6>android_usb gadget: high speed config #1: android

<6>android_work: sent uevent USB_STATE=CONFIGURED

Labels (3)
Tags (2)
0 Kudos
1 Reply

1,739 Views
igorpadykov
NXP Employee
NXP Employee

Hi jiang

reset may occur due to insufficient current for hub

from i.MX6 side. I think one can try to reset hub by removing

power with signal USB_H1_PWR_EN, refer to p.11 SPF-27392

i.MX6_SABRE_SDP_DESIGNFILES : Design files, including hardware schematics

From software side, probably useful to look at attached Linux Manual

sect.34.3.2 How to Enable USB WakeUp System Ability,

sect.34.3.4 How to Close the USB Child Device Power

Best regards

igor

0 Kudos