AnsweredAssumed Answered

USB devices are not being detected on custom board

Question asked by Michael Worster on Oct 24, 2016
Latest reply on Jul 24, 2017 by Michael Worster

I have a board with an i.MX6DL part and I'm not seeing any USB devices being enumerated by the kernel when inserted into the USB ports. I've also adjusted the kernel to include more verbose USB debugging messages and I noticed the controller seems to continuously be going into and out of a suspend/resume cycle.

 

Here's the tail end of my dmesg where you can see the cycle going:

 

...

wakeup int at ci_hdrc.1
ci_hdrc ci_hdrc.1: at ci_controller_resume
ci_hdrc ci_hdrc.1: at ci_runtime_suspend
imx_usb 2184200.usb: at imx_controller_suspend
imx_usb 2184200.usb: at imx_controller_resume
wakeup int at ci_hdrc.1
ci_hdrc ci_hdrc.1: at ci_controller_resume
ci_hdrc ci_hdrc.1: at ci_runtime_suspend
imx_usb 2184200.usb: at imx_controller_suspend
imx_usb 2184200.usb: at imx_controller_resume
wakeup int at ci_hdrc.1

...

 

My setup in the device tree is pretty straight forward:

 

        pinctrl_usbotg: usbotggrp {
            fsl,pins = <
        MX6QDL_PAD_KEY_COL4__USB_OTG_OC        0x18000
        MX6QDL_PAD_KEY_ROW4__USB_OTG_PWR   0x8018
            >;
        };

 

    pinctrl_usbh: usbhgrp {
            fsl,pins = <
        MX6QDL_PAD_EIM_D30__USB_H1_OC        0x18000
        MX6QDL_PAD_EIM_D31__USB_H1_PWR      0x8018

            >;
    };

 

&usbh1 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_usbh>;
    vbus-supply = <&vbat>;
    status = "okay";
};

 

&usbotg {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_usbotg>;
    vbus-supply = <&vbat>;
    disable-over-current;
    srp-disable;
    hnp-disable;
    adp-disable;
    status = "okay";
};

 

The ID pin is not used in our design, which is why it's not present in the pinctrl setup.

Are there any obvious reasons why this issue of the USB going in and out of suspend might happen? I suspect that's related to the fact that no devices are registered on the USB interface when inserted as well.

Outcomes