Hello,
We have customized board based on Mistral OMAP EVM with AM3715 processor module connect USB3320 to the port 2 of the EHCI USB controller. We also connect the port 1 with the same PHY of USB3320 and it works fine iwth WinCE6.0 by modifying omap_usbhs.reg. Now I want to make USBHS port 1 work with Android (The port2 is OK). I modified kernel/arch/arm/mach-omap2/board-omap3evm.c like the follwing:
static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
.port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
.port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
.port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
.phy_reset = true,
/* PHY reset GPIO will be runtime programmed based on EVM version */
.reset_gpio_port[0] = OMAP3_EVM_EHCI_HSUSB1_RESET,
.reset_gpio_port[1] = OMAP3_EVM_EHCI_HSUSB2_RESET,
.reset_gpio_port[2] = -EINVAL
};
static void __init omap3_evm_init(void)
{
.....
omap_mux_init_gpio(OMAP3_EVM_EHCI_HSUSB1_RESET, OMAP_PIN_OUTPUT);
omap_mux_init_gpio(OMAP3_EVM_EHCI_HSUSB2_RESET, OMAP_PIN_OUTPUT);
.....
}
I built kernel and the message is the following when kernel is launching:
[ 0.000000] setup_ehci_io_mux - EHCI_HCD_OMAP_MODE_PHY - port_mode[0]
[ 0.000000] setup_ehci_io_mux - EHCI_HCD_OMAP_MODE_PHY - port_mode[1]
[ 1.894622] usbcore: registered new interface driver asix
[ 1.900451] usbcore: registered new interface driver cdc_ether
[ 1.906768] usbcore: registered new interface driver net1080
[ 1.912902] usbcore: registered new interface driver cdc_subset
[ 1.919311] usbcore: registered new interface driver zaurus
[ 1.925354] usbcore: registered new interface driver zd1201
[ 1.931182] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.938110] ehci-omap.0 supply hsusb0 not found, using dummy regulator
[ 3.956146] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
[ 3.962158] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
[ 3.970031] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
[ 3.987518] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00
[ 3.993621] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 4.000762] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 4.008331] usb usb1: Product: OMAP-EHCI Host Controller
[ 4.013916] usb usb1: Manufacturer: Linux 2.6.37-g5c414d7-dirty ehci_hcd
[ 4.020935] usb usb1: SerialNumber: ehci-omap.0
[ 4.026611] hub 1-0:1.0: USB hub found
[ 4.030578] hub 1-0:1.0: 3 ports detected
[ 4.065795] Initializing USB Mass Storage driver...
[ 4.071136] usbcore: registered new interface driver usb-storage
[ 4.077484] USB Mass Storage support registered.
[ 4.082702] usbcore: registered new interface driver usbtest
It seems that 3 ports are detected.
When I plug in the HS USB power hub into port2, the message is:
[ 105.917266] usb 1-2: new high speed USB device using ehci-omap and address 2
[ 106.082122] usb 1-2: New USB device found, idVendor=0409, idProduct=005a
[ 106.089111] usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 106.100280] hub 1-2:1.0: USB hub found
[ 106.104583] hub 1-2:1.0: 4 ports detected
[ 108.193511] usb 1-2: USB disconnect, address 2
However when I plug in the same HS USB power hub to port1, the message is:
[ 111.417297] usb 1-1: new high speed USB device using ehci-omap and address 3
[ 111.565734] usb 1-1: device descriptor read/64, error -71
[ 111.807922] usb 1-1: device descriptor read/64, error -71
[ 112.042266] usb 1-1: new high speed USB device using ehci-omap and address 4
[ 112.182952] usb 1-1: device descriptor read/64, error -71
[ 112.425140] usb 1-1: device descriptor read/64, error -71
[ 112.659484] usb 1-1: new high speed USB device using ehci-omap and address 5
[ 113.089050] usb 1-1: device not accepting address 5, error -71
[ 113.214202] usb 1-1: new high speed USB device using ehci-omap and address 6
[ 113.643859] usb 1-1: device not accepting address 6, error -71
[ 113.649932] ehci-omap ehci-omap.0: port 1 cannot be enabled
[ 113.655761] ehci-omap ehci-omap.0: Maybe your device is not a high speed device?
[ 113.663452] ehci-omap ehci-omap.0: USB host (EHCI) controller does not support full speed or low speed device on it's root port.
[ 113.675506] ehci-omap ehci-omap.0: Please connect full/low speed device via a high speed hub.
[ 113.684387] hub 1-0:1.0: unable to enumerate USB device on port 1
It failed to enumerate USB hub.
Can anyone tell me what I'm missing here and how to fix the issue?
Thanks,
James