On 24-10-15 14:41:25, Johan Hovold wrote: > On Fri, Oct 04, 2024 at 04:57:36PM +0300, Abel Vesa wrote: > > The Parade PS8830 is a Type-C multi-protocol retimer that is controlled > > via I2C. It provides altmode and orientation handling and usually sits > > between the Type-C port and the PHY. > > > > It is currently used alongside Qualcomm Snapdragon X Elite SoCs on quite > > a few laptops already. > > > > This new driver adds support for the following 3 modes: > > - DP 4lanes (pin assignments C and E) > > - DP 2lanes + USB3 (pin assignment D) > > - USB3 > > > > This retimer is a LTTPR (Link-Training Tunable PHY Repeater) which means > > it can support link training from source to itself. This means that the > > DP driver needs to be aware of the repeater presence and to handle > > the link training accordingly. This is currently missing from msm dp > > driver, but there is already effort going on to add it. Once done, > > full external DP will be working on all X1E laptops that make use of > > this retimer. > > I was gonna ask you to include the devicetree changes that enables the > retimers as part of this series (to facilitate review and testing), but > perhaps you should indeed not post them again until LTTPR support is in > place. I was thinking maybe we should not wait for LTTPR support as this series brings orientation support as is. I still need to figure out how to strip out the DP parts of it in such a way that orientation should still be working but DP should not (until LTTPR is in). > > > Signed-off-by: Abel Vesa <abel.vesa@xxxxxxxxxx> > > --- > > Changes in v2: > > - Addressed all comments from Johan and Konrad. > > - Reworked the handling of the vregs so it would be more cleaner. > > Dropped the usage of bulk regulators API and handled them separately. > > Also discribed all regulators according to data sheet. > > - Added all delays according to data sheet. > > - Fixed coldplug (on boot) orientation detection. > > Coldplug orientation detection still does not work here with this series > applied. > > I'm not entirely sure this whether worked better with v1, but with v2 > my SuperSpeed ethernet device shows up as a HighSpeed device in one > orientation. It is also not disconnected an re-enumerated as SS as is > the case on the X13s (and possibly with v1): > > usb 1-1: new high-speed USB device number 2 using xhci-hcd For coldplug, this series does the right thing as it leaves the retimer initialized if it was left enabled at boot. There is a second part needed for the coldplug to work. That is the regulator-boot-on property in retimer's vregs nodes. That will ensure that the regulator is not disabled until retimer driver probes and will keep the retimer initialized until USB device is enumerated. > > > - Didn't pick Krzysztof's R-b tag because the bindings changed w.r.t > > supplies. > > - Link to v1: https://lore.kernel.org/r/20240829-x1e80100-ps8830-v1-0-bcc4790b1d45@xxxxxxxxxx > > > > --- > > Abel Vesa (2): > > dt-bindings: usb: Add Parade PS8830 Type-C retimer bindings > > usb: typec: Add support for Parade PS8830 Type-C Retimer > > Johan