On Wed, 2020-07-15 at 00:51 +0000, Peter Chen wrote: > > > The Toradex Colibri iMX6ULL board has a special USB hardware design. > > With runtime-pm enabled USB reset itself continuously. Furthermore > > the OTG port > > is also not enumerating devices if the Chipidea IP is in runtime > > sleep mode and a > > device or host gets plugged in. > > > > Hi Philippe, > > You may describe the detail what's the special USB hardware design for > your board, If I only knew the root-cause of that problem - unfortunately I don't. That's also why I have such a hard time to describe it. > and why it causes the problem, and why disable runtime pm could fix > this issue, then, I cannot provide the 'why' part yet. I'll try something more and hope I can provide you guys with the exact description. > the other users could know if it could apply to their platforms or not > in future. I only found out about it because you were pointing me in that direction. I debugged for hours now and didn't came to the root-cause of the issue. I think to really understand it I would need to know much more about the Chipidea IP. I'll get back to you guys with a proposal for a new description. Philippe > > Peter > > > This patch adds the opportunity to disable Runtime Power Management > > from > > devicetree > > > > Signed-off-by: Philippe Schenker <philippe.schenker@xxxxxxxxxxx> > > > > --- > > > > Changes in v2: > > - Change commit message to tell the use case for Colibri iMX6ULL > > > > drivers/usb/chipidea/ci_hdrc_imx.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c > > b/drivers/usb/chipidea/ci_hdrc_imx.c > > index 5ae16368a0c7..5078d0695eb7 100644 > > --- a/drivers/usb/chipidea/ci_hdrc_imx.c > > +++ b/drivers/usb/chipidea/ci_hdrc_imx.c > > @@ -434,6 +434,9 @@ static int ci_hdrc_imx_probe(struct > > platform_device *pdev) > > usb_phy_init(pdata.usb_phy); > > } > > > > + if (of_property_read_bool(np, "disable-runtime-pm")) > > + pdata.flags &= ~CI_HDRC_SUPPORTS_RUNTIME_PM; > > + > > if (pdata.flags & CI_HDRC_SUPPORTS_RUNTIME_PM) > > data->supports_runtime_pm = true; > > > > -- > > 2.27.0