imx6 HSIC usb2 probe hang

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

imx6 HSIC usb2 probe hang

跳至解决方案
3,146 次查看
andreacollamati
Contributor II

Hi All,

we are porting the imx_3.14.28_1.0.0_ga kernel on a  custom board based on a imx6dl processor.

On our board we connected the USB2 HSIC port to a microchip USB3503 HSIC HUB.

We attached our device tree.

 

The kernel hangs during the probe of usbhc2 inside the ci_hdrc_imx_probe.

Using kgdb we found  that the exact point is the call of device_add:

 

ci_hdrc_imx_probe -> ci_hdrc_imx_probe -> ci_hdrc_add_device   -> platform_device_add -> device_add

 

 

Do you have any suggestions?

Best Regards

            Andrea

Original Attachment has been moved to: devicetree.dts.zip

标签 (2)
1 解答
1,468 次查看
sagar_jariwala
Contributor I

Hello Andrea,

I have had the similar problem described by you. I was able to fix this issue with following changes.

Please review your changes against patch mentioned here. Re: imx6: usbhc2/3 and HSIC — ARM, OMAP, Xscale Linux Kernel

Changes in /drivers/usb/chipidea/usbmisc_imx.c are important to fix this hang issue.

It helped me resolve my hang issue. I hope it helps you as well.

Thanks,
Sagar

在原帖中查看解决方案

3 回复数
1,469 次查看
sagar_jariwala
Contributor I

Hello Andrea,

I have had the similar problem described by you. I was able to fix this issue with following changes.

Please review your changes against patch mentioned here. Re: imx6: usbhc2/3 and HSIC — ARM, OMAP, Xscale Linux Kernel

Changes in /drivers/usb/chipidea/usbmisc_imx.c are important to fix this hang issue.

It helped me resolve my hang issue. I hope it helps you as well.

Thanks,
Sagar

1,468 次查看
andreacollamati
Contributor II

Thank you very much Sagar.

It worked!

You are right the most important part is the patch inside /drivers/usb/chipidea/usbmisc_imx.c

+ if (usbdev->index == 2 || usbdev->index == 3) {

     + writel(0x00003000, usbmisc->base + usbdev->index * 4);

     + writel(0x80001842, usbmisc->base + 0x8 + usbdev->index * 4);

+ }

that enables the HSIC clock and HW and write also in reserved control bits...

Thank you again.

0 项奖励
回复
1,468 次查看
CarlosCasillas
NXP Employee
NXP Employee

Hi Andrea,

HSIC is supported in i.MX6 BSPs; please refer to attached i.MX6 Linux Reference Manual

Chapter 34 "ARC USB Driver" and <usb_hsic_xcvr.c> “HSIC featured phy's interface”.

Additionally, please take a look at the following thread which has related information:

HSIC under linux (imx6d)


Hope this will be useful for you.
Best regards!
/Carlos

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