On Tue, Dec 15, 2015 at 09:19:39PM +0100, Maciej S. Szmigiero wrote: > Hi Peter, > > On 16.09.2015 05:05, Peter Chen wrote: > >> On Mon, Sep 14, 2015 at 11:32 PM, Fabio Estevam <festevam@xxxxxxxxx> > >> wrote: > >> > >>> This did not help. > >>> > >>> It is getting late here, so I will be able to try more things tomorrow. > >> > >> I was able to fix it. Your initial patch had a missing 'return 0' in > >> imx_prepare_enable_clks(), causing: > >> > >> clk_disable_unprepare(data->clk_ahb); > >> clk_disable_unprepare(data->clk_ipg); > >> > >> to always be called. > >> > >> Doing like this on top of your original patch: > >> > >> --- a/drivers/usb/chipidea/ci_hdrc_imx.c > >> +++ b/drivers/usb/chipidea/ci_hdrc_imx.c > >> @@ -212,6 +212,8 @@ static int imx_prepare_enable_clks(struct device *dev) > >> } > >> } > >> > >> + return 0; > >> + > >> err2: > >> clk_disable_unprepare(data->clk_ahb); > >> err1: > >> > >> , fixes the crash. > >> > >> Would you like to split your patch into dts and usb parts and then resend it > >> formally? > >> > > > > I have sent out the patches, one suggestion is you may need to add phandle > > for phy, you can use generic-phy, without clock information. > > > > Peter > > Can we now use this change for repairing the USB support on UDOO board? > > This seems to work fine if not 100% correct: > --- a/arch/arm/boot/dts/imx6qdl-udoo.dtsi > +++ b/arch/arm/boot/dts/imx6qdl-udoo.dtsi > @@ -122,7 +122,10 @@ > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_usbh>; > vbus-supply = <®_usb_h1_vbus>; > - clocks = <&clks 201>; > + clocks = <&clks IMX6QDL_CLK_USBOH3>, > + <&clks IMX6QDL_CLK_USBOH3>, > + <&clks 201>; > + clock-names = "ipg", "ahb", "per"; > status = "okay"; > }; > > Best regards, > Maciej Szmigiero > I think it can work, but it is just a workaround. I am working on a general solution for onboard USB device, the UDOO board can be its user. -- Best Regards, Peter Chen -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html