AnsweredAssumed Answered

usbh1 only works when booted plugged in. (mainline linux 3.17)

Question asked by Joshua Clayton on Nov 17, 2014
Latest reply on Dec 17, 2014 by Joshua Clayton

I am in the process up porting an imx6q board from a 3.0.35 kernel to mainline 3.17

 

the board has usbotg and usbh1, with usbh1 connected to an onboard  usb hub chip (USB2513BI-AEZG).

 

usbh1 works when it is plugged in at boot, but not if it is plugged in later. It also does not work if I unplug it and plug it back in.

 

When I unplug the usb device:

root@EVi ~$ [  148.962971] usb 1-1.1: USB disconnect, device number 3

 

When I plug the usb device in:

root@EVi ~$ [  156.610650] usb 1-1: USB disconnect, device number 2

[  156.629883] usb usb1-port1: cannot reset (err = -32)

[  156.638274] usb usb1-port1: cannot reset (err = -32)

[  156.643533] usb usb1-port1: cannot reset (err = -32)

[  156.651132] usb usb1-port1: cannot reset (err = -32)

[  156.656248] usb usb1-port1: cannot reset (err = -32)

[  156.661331] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?

[  156.669355] usb usb1-port1: cannot reset (err = -32)

[  156.674603] usb usb1-port1: cannot reset (err = -32)

[  156.679698] usb usb1-port1: cannot reset (err = -32)

[  156.684947] usb usb1-port1: cannot reset (err = -32)

[  156.690039] usb usb1-port1: cannot reset (err = -32)

[  156.695087] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?

[  156.702029] usb usb1-port1: cannot reset (err = -32)

[  156.707118] usb usb1-port1: cannot reset (err = -32)

[  156.712595] usb usb1-port1: cannot reset (err = -32)

[  156.717799] usb usb1-port1: cannot reset (err = -32)

[  156.722846] usb usb1-port1: cannot reset (err = -32)

[  156.727822] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?

[  156.734516] usb usb1-port1: cannot reset (err = -32)

[  156.739540] usb usb1-port1: cannot reset (err = -32)

[  156.744586] usb usb1-port1: cannot reset (err = -32)

[  156.749609] usb usb1-port1: cannot reset (err = -32)

[  156.754654] usb usb1-port1: cannot reset (err = -32)

[  156.759628] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?

[  156.766248] usb usb1-port1: unable to enumerate USB device

 

 

I've tried everything I can think of in my dts.

 

...

                reg_5p0v: regulator@2 {

                        compatible = "regulator-fixed";

                        reg = <2>;

                        regulator-name = "5P0V";

                        regulator-min-microvolt = <5000000>;

                        regulator-max-microvolt = <5000000>;

                        regulator-boot-on;

                        regulator-always-on;

                };

 

&usbh1 {

        vbus-supply = <&reg_5p0v>;

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_usbh1>;

        disable-over-current;

        status = "okay";

};

 

There s a GPIO connected to the usb hubs reset line... but it was never used with 3.0.35 and the usbh1 worked.

I'm not sure how to use the gpio reset this way if it is needed. If there is an example I have not found it.

Outcomes