On Tue, Jun 28, 2022 at 1:40 PM Stephen Boyd <swboyd@xxxxxxxxxxxx> wrote: > > Quoting Prashant Malani (2022-06-28 12:48:11) > > On Tue, Jun 28, 2022 at 12:25 PM Stephen Boyd <swboyd@xxxxxxxxxxxx> wrote: > > > > > > Quoting Prashant Malani (2022-06-22 10:34:34) > > > > diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c > > > > index bd21f159b973..5992fc8beeeb 100644 > > > > --- a/drivers/gpu/drm/bridge/analogix/anx7625.c > > > > +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c > [..] > > > > + > > > > + if (ctx->num_typec_switches == 1) > > > > > > How do we handle the case where the usb-c-connector is directly > > > connected to the RX1/TX1 and RX2/TX2 pins? This device would be an > > > orientation (normal/reverse) and mode switch (usb/dp) in that scenario, > > > but this code is written in a way that the orientation switch isn't > > > going to flip the crosspoint switch for the different pin assignments. > > > > If all 4 SS lanes are connected to 1 usb-c-connector; there would be > > just 1 "typec-switch" node. > > In that case, the DT would only specify it as an "orientation-switch" > > and register > > an orientation-switch with the Type-C framework. The orientation switch would > > pretty much do what the mode-switch callback does here (configuring > > the crosspoint > > switch). > > One could also register a "mode-switch" there but it wouldn't do > > anything (all 4 lanes are already > > connected so there is nothing to re-route in the crosspoint switch). > > Hence the above "if" check. > > Would we still want to route the DP traffic out if the pin assignment > didn't have DP? Does the hardware support some mode where the DP traffic > is shutdown? Or maybe the HPD pin needs to be quieted unless DP is > assigned? I reference this below, but in the 1 connector case, CC lines would also be routed to the anx7625 from the usb-connector, so it will know when HPD is asserted or not. > > I suppose none of those things matter though as long as there is some > typec switch registered here so that the driver can be informed of the > pin assignment. Is it right that the "mode-switch" property is only > required in DT if this device is going to control the mode of the > connector, i.e. USB+DP, or just DP? Where this device can't do that > because it doesn't support only DP. If the anx7625 is used just to route all lanes from 1 usb-c-connector (i.e the USB+DP case), a mode-switch wouldn't be of much use, since one would also route the CC lines to the built-in PD controller; so it will already have knowledge of what mode the switch is in. The mode-switch is likely only relevant for this hardware configuration( it's "DP only" in the sense that the USB pins to the SoC never go anywhere). One only has 2 SS lanes each (from each usb-c-connector). Since there is no CC-line, the anx7625 needs to know which one has DP enabled on it. > > > > > Unfortunately, I don't have hardware which connects all 4 SS lanes > > from 1 Type-C port > > to the anx7625, so I didn't add the orientation switch handling to the > > driver (since I have no way of verifying it). > > Alright. Maybe add a TODO then so it's more obvious that orientation > isn't handled. Ack. Will add a comment in v6. > > > > > Regarding DP alt-mode pin assignments : I think anx7625 will only support Pin D > > (only 2 lane DP, no 4 lane DP). > > > > Makes sense. Thanks!