> -----Original Message----- > From: Francesco Dolcini <francesco@xxxxxxxxxx> > Sent: Monday, May 8, 2023 7:17 PM > To: Jun Li <jun.li@xxxxxxx> > Cc: Francesco Dolcini <francesco@xxxxxxxxxx>; Luca Ceresoli > <luca.ceresoli@xxxxxxxxxxx>; devicetree@xxxxxxxxxxxxxxx; > festevam@xxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx; kernel@xxxxxxxxxxxxxx; > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>; > linux-kernel@xxxxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; > robh+dt@xxxxxxxxxx; s.hauer@xxxxxxxxxxxxxx; shawnguo@xxxxxxxxxx; > Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>; Francesco Dolcini > <francesco.dolcini@xxxxxxxxxxx>; Xu Yang <xu.yang_2@xxxxxxx> > Subject: Re: [PATCH v2 2/3] usb: chipidea: imx: support disabling runtime-pm > > On Sat, May 06, 2023 at 09:02:39AM +0000, Jun Li wrote: > > > -----Original Message----- > > > From: Francesco Dolcini <francesco@xxxxxxxxxx> > > > Sent: Friday, May 5, 2023 7:00 PM > > > To: Luca Ceresoli <luca.ceresoli@xxxxxxxxxxx>; Jun Li <jun.li@xxxxxxx> > > > Cc: Francesco Dolcini <francesco@xxxxxxxxxx>; > devicetree@xxxxxxxxxxxxxxx; > > > festevam@xxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx; > kernel@xxxxxxxxxxxxxx; > > > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; dl-linux-imx > <linux-imx@xxxxxxx>; > > > linux-kernel@xxxxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; > > > peter.chen@xxxxxxx; robh+dt@xxxxxxxxxx; s.hauer@xxxxxxxxxxxxxx; > > > shawnguo@xxxxxxxxxx; Krzysztof Kozlowski > <krzysztof.kozlowski@xxxxxxxxxx>; > > > Francesco Dolcini <francesco.dolcini@xxxxxxxxxxx> > > > Subject: Re: [PATCH v2 2/3] usb: chipidea: imx: support disabling > runtime-pm > > > > > > On Fri, May 05, 2023 at 12:06:18PM +0200, Luca Ceresoli wrote: > > > > On Fri, 5 May 2023 09:49:16 +0000 > > > > Jun Li <jun.li@xxxxxxx> wrote: > > > > > Is your board design similar like Francesco's as below? > > > > > > > > Possibly, but I'm afraid I can't say: I am using the Toradex Colibri > > > > i.MX6ULL SoM, whose schematics are not public. > > > > > > I can confirm that it's the same. > > > > Thanks Francesco for the confirmation, had a check with design team, > > there is no status bit which can be used to judge the VDD_USB_CAP is > > powered or not, so we have to add a board level dts property to tell > > this usb phy driver to bypass MXS_PHY_DISCONNECT_LINE_WITHOUT_VBUS. > > > > Before send a formal patch, I want to confirm this should work for your > > HW design, like below simple hack: > > Thanks Li Jun, I tested it with v6.3.1 kernel and it's all good. > I would be happy to test the patch as soon as you send it. > > > With that said I had another issue that I assume is unrelated. > In addition to the USB Host port, we have an additional OTG one. This > interface has the same circuit WRT to the VBUS, however in this case > it's possible to read the VBUS using extcon, e.g. a standard GPIO input. > > With that setup, while doing a role switch, I had a couple of time this > error: > > [ 187.310421] ci_hdrc ci_hdrc.0: USB bus 2 deregistered > [ 192.351452] ci_hdrc ci_hdrc.0: timeout waiting for 00000800 in OTGSC > > that was recovered only doing an additional transition. > > More complete logs here: > > [ 184.997619] usb 2-1: USB disconnect, device number 9 > [ 185.019620] ci_hdrc ci_hdrc.0: remove, state 1 > [ 185.024271] usb usb2: USB disconnect, device number 1 > [ 185.334975] ci_hdrc ci_hdrc.0: USB bus 2 deregistered > [ 185.353857] ci_hdrc ci_hdrc.0: EHCI Host Controller > [ 185.389670] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number > 2 > [ 185.470170] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00 > [ 185.476097] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, > bcdDevice= 6.01 > [ 185.484527] usb usb2: New USB device strings: Mfr=3, Product=2, > SerialNumber=1 > [ 185.491811] usb usb2: Product: EHCI Host Controller > [ 185.496704] usb usb2: Manufacturer: Linux 6.1.22-6.2.0+git.3b29299e5f60 > ehci_hcd > [ 185.504148] usb usb2: SerialNumber: ci_hdrc.0 > [ 185.531121] hub 2-0:1.0: USB hub found > [ 185.542636] hub 2-0:1.0: 1 port detected > [ 185.556586] mxs_phy 20c9000.usbphy: vbus is not valid > [ 187.271684] ci_hdrc ci_hdrc.0: remove, state 4 > [ 187.276281] usb usb2: USB disconnect, device number 1 > [ 187.310421] ci_hdrc ci_hdrc.0: USB bus 2 deregistered > [ 192.351452] ci_hdrc ci_hdrc.0: timeout waiting for 00000800 in OTGSC I have 2 questions: 1. Can your OTG port work fine in device/gadget mode if you did not do usb role switch?(e.g. the OTG port *never* switch to host mode after system boot). 2. Please show me your dts file node of your USB OTG port, I want to Know how you config your OTG port. Thanks Li Jun > > > > diff --git a/drivers/usb/phy/phy-mxs-usb.c > b/drivers/usb/phy/phy-mxs-usb.c > > index e1a2b2ea098b..ec5ee790455e 100644 > > --- a/drivers/usb/phy/phy-mxs-usb.c > > +++ b/drivers/usb/phy/phy-mxs-usb.c > > @@ -178,7 +178,6 @@ static const struct mxs_phy_data imx6sx_phy_data = > { > > }; > > > > static const struct mxs_phy_data imx6ul_phy_data = { > > - .flags = MXS_PHY_DISCONNECT_LINE_WITHOUT_VBUS, > > }; > > > > static const struct mxs_phy_data imx7ulp_phy_data = { > > Francesco