Hi,
We have a custom board based on IMX.6 Freescale SoC. The device has a LAN9730 HSIC USB to ethernet controller connected to USBH2 of IMX.6 processor. The DATA line is connected to RGMII_TXC pin & STOBE line is connected to RGMII_TX_CTL pin.
I'm using the "rel_imx_5.4.70_2.3.7" kernel version & following is my DTS configuration
usbh2 {
pinctrl_usbh2_1: usbh2grp-1 {
fsl,pins = <
MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x13030
MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x13030
>;
};
pinctrl_usbh2_2: usbh2grp-2 {
fsl,pins = <
MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x13030
MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x17030
>;
};
};
&usbh2 {
pinctrl-names = "idle", "active";
pinctrl-0 = <&pinctrl_usbh2_1>;
pinctrl-1 = <&pinctrl_usbh2_2>;
status = "okay";
};
But USB enumeration fails with error -71.
[ 2.936707] imx_usb 2184400.usb: No over current polarity defined
[ 2.943332] imx_usb 2184400.usb: 2184400.usb supply vbus not found, using dummy regulator
[ 2.997053] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.04
[ 3.005439] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.012761] usb usb2: Product: EHCI Host Controller
[ 3.017677] usb usb2: Manufacturer: Linux 5.4.70-dirty ehci_hcd
[ 3.023689] usb usb2: SerialNumber: ci_hdrc.1
[ 3.291087] usb 2-1: new high-speed USB device number 2 using ci_hdrc
[ 3.410432] usbcore: registered new interface driver usbhid
[ 3.416442] usbhid: USB HID core driver
[ 3.471091] usb 2-1: device no response, device descriptor read/64, error -71
[ 3.761847] usb 2-1: device no response, device descriptor read/64, error -71
[ 4.030978] usb 2-1: new high-speed USB device number 3 using ci_hdrc
[ 4.222852] usb 2-1: device no response, device descriptor read/64, error -71
[ 4.500983] usb 2-1: device no response, device descriptor read/64, error -71
[ 4.631182] usb usb2-port1: attempt power cycle
[ 5.121689] usb 2-1: new high-speed USB device number 4 using ci_hdrc
[ 5.571209] usb 2-1: device not accepting address 4, error -71
[ 5.721762] usb 2-1: new high-speed USB device number 5 using ci_hdrc
[ 6.171139] usb 2-1: device not accepting address 5, error -71
[ 6.181358] usb usb2-port1: unable to enumerate USB device
I've also tried with the older IMX kernel "rel_imx_4.14.98_2.0.0_ga" & also tried the 5.15 mainline kernel & I get exact same error with all. I'm not sure why the enumeration is falling. Am I missing any settings in the device tree or in the kernel config? Any help is appreciated.
Thanks,
Vishnu
@Rita_Wang . Thanks for your reply. I've tried following command mentioned in the post but It did not work. Getting same error
# echo ci_hdrc.1 > /sys/bus/platform/drivers/ci_hdrc/unbind
ci_hdrc ci_hdrc.1: remove, state 4
usb usb2: USB disconnect, device number 1
ci_hdrc ci_hdrc.1: USB bus 2 deregistered
# echo ci_hdrc.1 > /sys/bus/platform/drivers/ci_hdrc/bind
ci_hdrc ci_hdrc.1: EHCI Host Controller
ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 2
ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15
usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb2: Product: EHCI Host Controller
usb usb2: Manufacturer: Linux 5.15.79-rt54-g65e3421f494d-dirty ehci_hcd
usb usb2: SerialNumber: ci_hdrc.1
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
usb 2-1: new high-speed USB device number 2 using ci_hdrc
usb 2-1: device descriptor read/64, error -71
usb 2-1: device descriptor read/64, error -71
usb 2-1: new high-speed USB device number 3 using ci_hdrc
usb 2-1: device descriptor read/64, error -71
usb 2-1: device descriptor read/64, error -71
usb usb2-port1: attempt power cycle
usb 2-1: new high-speed USB device number 4 using ci_hdrc
usb 2-1: device not accepting address 4, error -71
usb 2-1: new high-speed USB device number 5 using ci_hdrc
usb 2-1: device not accepting address 5, error -71
usb usb2-port1: unable to enumerate USB device