Hi André, On Sat, 7 Dec 2024 at 22:03, Peter Griffin <peter.griffin@xxxxxxxxxx> wrote: > > Hi André, > > On Fri, 6 Dec 2024 at 16:31, André Draszik <andre.draszik@xxxxxxxxxx> wrote: > > > > To make USB runtime suspend work when a UDC has been bound, the phy > > needs to inform the USBDRD controller (DWC3) that Vbus and bvalid are > > gone, so that it can in turn raise the respective gadget interrupt with > > event == DWC3_DEVICE_EVENT_DISCONNECT, which will cause the USB stack > > to clean up, allowing DWC3 to enter runtime suspend. > > > > On e850 and gs101 this isn't working, as the respective signals are not > > directly connected, and instead this driver uses override bits in the > > PHY IP to set those signals. It currently forcefully sets them to 'on', > > so the above mentioned interrupt will not be raised, preventing runtime > > suspend. > > > > To detect that state, update this driver to act on the TCPC's > > orientation signal - when orientation == NONE, Vbus is gone and we can > > clear the respective bits. Similarly, for other orientation values we > > re-enable them. > > > > This makes runtime suspend work on platforms with a TCPC (like Pixel6), > > while keeping compatibility with platforms without (e850-96). > > > > With runtime suspend working, USB-C cable orientation detection now > > also fully works on such platforms, and the link comes up as Superspeed > > as expected irrespective of the cable orientation and whether UDC / > > gadget are configured and active. > > > > Signed-off-by: André Draszik <andre.draszik@xxxxxxxxxx> > > As mentioned on the last patch, in my testing cable orientation > detection is working, but Pixel is detected as a superspeed device in > one orientation, and high speed device in the other orientation. So > you should either change the wording of the last paragraph in the > commit message (assuming you get the same results as me) or make it > detect as superspeed in both orientations. You can disregard this point, I had a typo in my test setup :( I just confirmed that it is detected as SuperSpeed in both orientations. Thanks, Peter