AnsweredAssumed Answered

Problem connecting USB 2.0HUB to i.MX28 custom board.

Question asked by Marcin Bis on Oct 3, 2013
Latest reply on Oct 3, 2013 by Fabio Estevam

Hi

 

We have a problem connecting a USB HUB to i.MX28 - it is not detected. Detailed description follows:

 

We are working with custom board using i.MX286 or i.MX287 (both tested).

Our hardware resembles i.MX28EVK with the few exceptions:

- we have a USB HUB chip (SMSC) connected immediately to USB1 - it is configured according to its spec. (same as on some evaluation kit we have)

- we do not connect usb overcurrent signal to i.MX28 - it is handled automatically

- we do not use power regulators for USB - in i.MX28 EVK GPIO has to be toggled to turn on USB power, in our case it is powered after reset.

The device is wall-powered (I mean, it is not using battery or power from USB)

 

So the only important signals that we are using are USB D+ and D-.

As for hardware - we have a few prototypes and we have tested the pcb design - there are no errors.

 

I tried various kernel versions:

- 2.6.35 (from Freescale web page)

- 3.X with devicetree (I tried 3.7, 3.10, 3.11, and 3.12-rc3)

Devicetree or platform_data - reflects our configuration (no OCS, no vbus_reg).

 

The following log is from 3.11:

[ 0.444107] usbcore: registered new interface driver usbfs
[ 0.449812] usbcore: registered new interface driver hub
[ 0.455667] usbcore: registered new device driver usb
[ 6.054820] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 6.200821] usbcore: registered new interface driver usb-storage
[ 6.460739] ci_hdrc ci_hdrc.0: doesn't support gadget
[ 6.465869] ci_hdrc ci_hdrc.0: EHCI Host Controller
[ 6.487847] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
[ 6.519975] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00, overcurrent ignored
[ 6.527703] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 6.536378] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 6.544602] usb usb1: Product: EHCI Host Controller
[ 6.549537] usb usb1: Manufacturer: Linux 3.10.0 ehci_hcd
[ 6.556252] usb usb1: SerialNumber: ci_hdrc.0
[ 6.572324] hub 1-0:1.0: USB hub found
[ 6.576166] hub 1-0:1.0: 1 port detected
[ 6.620675] ci_hdrc ci_hdrc.1: doesn't support gadget
[ 6.625806] ci_hdrc ci_hdrc.1: EHCI Host Controller
[ 6.641677] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 2
[ 6.660018] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00, overcurrent ignored
[ 6.667799] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[ 6.676584] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 6.684941] usb usb2: Product: EHCI Host Controller
[ 6.690793] usb usb2: Manufacturer: Linux 3.10.0 ehci_hcd
[ 6.696249] usb usb2: SerialNumber: ci_hdrc.1
[ 6.713557] hub 2-0:1.0: USB hub found
[ 6.717395] hub 2-0:1.0: 1 port detected
[ 7.069970] usb 2-1: new high-speed USB device number 2 using ci_hdrc
[ 7.230926] usb 2-1: New USB device found, idVendor=0424, idProduct=2517
[ 7.237730] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 7.320277] hub 2-1:1.0: USB hub found
[ 7.339322] hub 2-1:1.0: 7 ports detected

The hub has been detected.

 

# lsusb
Bus 002 Device 002: ID 0424:2517 Standard Microsystems Corp. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

But if I connect something to the HUB:

[36.471069] ci_hdrc ci_hdrc.1: port 1 reset error -110
[37.371075] ci_hdrc ci_hdrc.1: port 1 reset error -110
[38.211111] ci_hdrc ci_hdrc.1: port 1 reset error -110
[39.051062] ci_hdrc ci_hdrc.1: port 1 reset error -110
[39.891067] ci_hdrc ci_hdrc.1: port 1 reset error -110
[40.520051] hub 2-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
[40.581111] ci_hdrc ci_hdrc.1: port 1 reset error -110
[41.481078] ci_hdrc ci_hdrc.1: port 1 reset error -110
[42.321115] ci_hdrc ci_hdrc.1: port 1 reset error -110
[43.161069] ci_hdrc ci_hdrc.1: port 1 reset error -110
[44.001067] ci_hdrc ci_hdrc.1: port 1 reset error -110
[44.630083] hub 2-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
[44.691110] ci_hdrc ci_hdrc.1: port 1 reset error -110
[45.591115] ci_hdrc ci_hdrc.1: port 1 reset error -110
[46.431069] ci_hdrc ci_hdrc.1: port 1 reset error -110
[47.271113] ci_hdrc ci_hdrc.1: port 1 reset error -110
[48.111058] ci_hdrc ci_hdrc.1: port 1 reset error -110
[48.740084] hub 2-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
[48.801115] ci_hdrc ci_hdrc.1: port 1 reset error -110
[49.701071] ci_hdrc ci_hdrc.1: port 1 reset error -110
[50.541121] ci_hdrc ci_hdrc.1: port 1 reset error -110
[51.381078] ci_hdrc ci_hdrc.1: port 1 reset error -110
[52.221115] ci_hdrc ci_hdrc.1: port 1 reset error -110
[52.850042] hub 2-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?
[52.857100] hub 2-0:1.0: unable to enumerate USB device on port 1

 

Connection to HUB is lost.

Sometimes the hub is not even recognized.

 

Same results for 2.6.35:

[    0.370000] usb DR wakeup device is registered
[    0.370000] IMX usb wakeup probe
[    0.440000] Freescale USB OTG Driver loaded, $Revision: 1.55 $
[    0.460000] usbcore: registered new interface driver usbfs
[    0.460000] usbcore: registered new interface driver hub
[    0.470000] usbcore: registered new device driver usb
[    0.890000] IMX usb wakeup probe
[    0.890000] usb h1 wakeup device is registered
[   13.730000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[   13.740000] fsl-ehci fsl-ehci: new USB bus registered, assigned bus number 1
[   13.800000] fsl-ehci fsl-ehci: USB 2.0 started, EHCI 1.00
[   13.800000] hub 1-0:1.0: USB hub found
[   13.810000] hub 1-0:1.0: 1 port detected
[   13.830000] fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 2
[   13.890000] fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
[   13.890000] hub 2-0:1.0: USB hub found
[   13.900000] hub 2-0:1.0: 1 port detected
[   13.930000] Initializing USB Mass Storage driver...
[   13.940000] usbcore: registered new interface driver usb-storage
[   13.940000] USB Mass Storage support registered.
[   13.950000] ARC USBOTG Device Controller driver (1 August 2005)
[   14.230000] usb 2-1: new full speed USB device using fsl-ehci and address 2
[   14.610000] usb 2-1: device descriptor read/64, error -71
[   14.940000] usb 2-1: device descriptor read/64, error -71
[   15.140000] usbcore: registered new interface driver hiddev
[   15.180000] usb 2-1: new full speed USB device using fsl-ehci and address 3
[   15.240000] usbcore: registered new interface driver usbhid
[   15.250000] usbhid: USB HID core driver
[   15.410000] usb 2-1: device descriptor read/64, error -71
[   15.730000] usb 2-1: device descriptor read/64, error -71
[   15.960000] usb 2-1: new full speed USB device using fsl-ehci and address 4
[   16.450000] usb 2-1: device not accepting address 4, error -71
[   16.570000] usb 2-1: new full speed USB device using fsl-ehci and address 5
[   17.050000] usb 2-1: device not accepting address 5, error -71
[   17.050000] hub 2-0:1.0: unable to enumerate USB device on port 1

Not even HUB is detected here.

 

The same happens if we connect a SMSC hub to USB0 acting as a host. Same messagess no matter the hub is active or not.

 

Is there somebody out there, having some experience with USB Host at i.MX28?

 

Regards

--

Marcin Bis

Outcomes