Error in enumerating usb4604 to imx6sx

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

Error in enumerating usb4604 to imx6sx

1,636 Views
czur
Contributor III

Hi,

I am trying to get a microchip usb4604 hub working with a custom imx6sx board over HSIC, I have added the device tree and the pin control as below to get to enumerate the hub. The usb4604 has a I2C driver that resets the hub and sends a message to confirm that the hub is in 'hub mode'. Although I have included the hub driver, the I2C pins are not connected to the controller since I am using the driver only to reset the hub. The downstream USB ports are hard connected to other devices on board.

in the boot sequence I see the below errors from the hub driver. I wanted to check if the device tree configuration is correct and the IMX6SX USB controller will be configured correctly to use the HSIC interface, does the device tree config need any other parameters that I am missing? I am using linux-rel_imx_4.9.x1.0.0_ga kernel.

Thanks for the help!

Arun 

hub 3-0:1.0: USB hub found
hub 3-0:1.0: 1 port detected

usb 3-1: new high-speed USB device number 2 using ci_hdrc

usb 3-1: device no response, device descriptor read/64, error -71

usb 3-1: device no response, device descriptor read/64, error -71

usb 3-1: new high-speed USB device number 3 using ci_hdrc

usb 3-1: device no response, device descriptor read/64, error -71

usb 3-1: device no response, device descriptor read/64, error -71

usb 3-1: new high-speed USB device number 4 using ci_hdrc

usb 3-1: device not accepting address 4, error -71

usb 3-1: new high-speed USB device number 5 using ci_hdrc

usb 3-1: device not accepting address 5, error -71

usb usb3-port1: unable to enumerate USB device

&usbh {
pinctrl-names = "idle", "active";
pinctrl-0 = <&pinctrl_usbh_1>;
pinctrl-1 = <&pinctrl_usbh_2>;
osc-clkgate-delay = <0x3>;
status = "okay";
};

.

.

.

.

.

pinctrl_usbh_1: usbhgrp-1 {
fsl,pins = <
MX6SX_PAD_USB_H_DATA__USB_H_DATA 0x00083030
MX6SX_PAD_USB_H_STROBE__USB_H_STROBE 0x00083030
>;
};

pinctrl_usbh_2: usbhgrp-2 {
fsl,pins = <
MX6SX_PAD_USB_H_STROBE__USB_H_STROBE 0x00083030
>;
};

4 Replies

1,084 Views
czur
Contributor III

The enumeration issue got resolved after adding the "pad-supply" parameter as below.

I did not get any documentation regarding why we would need this parameter, but the example in imx6sx-14x14-arm2.dts has this set.

can any expert on imx please comment on this parameter?

Thanks

Arun

&usbh {
pinctrl-names = "idle", "active";
pinctrl-0 = <&pinctrl_usbh_1>;
pinctrl-1 = <&pinctrl_usbh_2>;
osc-clkgate-delay = <0x3>;
pad-supply = <&vgen1_reg>;
status = "okay";
};

0 Kudos

1,084 Views
igorpadykov
NXP Employee
NXP Employee

Hi Arun

one can check suggestions provided on

Need proper initialization for USB Host2 (HSIC) in i.MX6x 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

1,084 Views
czur
Contributor III

Hi Igor,

Thanks for the response, it looks like the link you shared is to get the HSIC interface working in Uboot. 

I am looking for changes needed in the device tree in linux kernel, also the mux configuration.

I set the Data and strobe pin configuration by generating them on Pin tool. I see that it generated the PAD control, but where do I need to set the MUX register as shown below?

Table 5. i.MX 6SoloX HSIC I/O settings
HSIC signal IOMUX register Mode for HSIC Register Address
USB_H_DATA IOMUXC_SW_MUX_CTL_PAD_USB_H_DATA Alt 0 0000 0000h 020E 02A4h
USB_H_STROBE IOMUXC_SW_MUX_CTL_PAD_USB_H_STROBE Alt 0 0000 0000h 020E 02A8h
— I/O pad settings — — —
USB_H_DATA IOMUXC_SW_PAD_CTL_PAD_USB_H_DATA LPDDR2-CMOS 0008 3030h 020E 05ECh
USB_H_STROBE IOMUXC_SW_PAD_CTL_PAD_USB_H_STROBE LPDDR2-CMOS 0008 3030h 020E 05F0h

0 Kudos

1,084 Views
igorpadykov
NXP Employee
NXP Employee

Hi Arun

so it is working in uboot in your case ? It is easier to start with uboot.

~igor

0 Kudos