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

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

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

2,983 Views
marcinbis
Contributor I

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

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

799 Views
fabio_estevam
NXP Employee
NXP Employee

mx23-olinuxino board has a smsc usb hub and it works fine.

It would help if you post your device tree.

Other suggestion is to post this to the linux-usb@vger.kernel.org list.

Regards,

Fabio Estevam

0 Kudos