Hello Jun Li, On Tue, Nov 01, 2022 at 03:10:46AM +0000, Jun Li wrote: > > On Mon, Oct 31, 2022 at 01:40:39PM +0000, Jun Li (OSS) wrote: > > > > I am debugging some unexpected USB behavior on a i.MX6ULL SOC, > > > > chipidea controller ("fsl,imx6ul-usb") and a fsl mxs usbphy > > > > ("fsl,imx6ul-usbphy"). > > > > > > > > The HW design has 2 USB interface, the first one is dual-role, while > > > > the second one is a host port with NO way to re-read the VBUS > > > > (USB_OTG2_VBUS is not really connected, there is just a capacitor to > > > > GND). > > > > > > How is your USB_OTG1_VBUS status? Can you try to make your > > > USB_OTG1_VBUS pad has a valid VBUS voltage, then run your Host only > > > port test with runtime PM enabled? > > > > USB_OTG1_VBUS is tied to GND the same way as USB_OTG2_VBUS, not really > > straightforward to do such a test. > > iMX6ULL need at least one valid VBUS(either from OTG1 or OTG2) as input to > power the internal USB LDO if I understand correctly. This surprise me a little bit, since - the i.MX6ULL datasheet prescribe to keep the VBUS disconnected if unused - downstream NXP kernel seems to work fine ("seems" since we do have some patches there, so I could be wrong) - disabling runtime pm on upstream Linux kernel make it works perfectly, so there is a way in SW to have this HW configuration working. > your HW to meet this: for Host only port, you have to connect USB_OTG2_VBUS > to a valid VBUS and make it always present for simple. > You can do some quick HW change to prove this. We have no way to change the HW in reality, therefore doing a one off test would be pretty much irrelevant. Said all of that, given what you wrote, I feel like having a specific dts property in the chipidea driver to disable runtime pm might be the way to go. Something like `ci,disable-runtime-pm`? I know the DTS is supposed to describe the HW, so maybe a different property name would be required. What do you think about this? Francesco