On Sat, Aug 23, 2025 at 02:22:56PM +0800, Xilin Wu wrote: > On 2025/8/22 19:02:21, Neil Armstrong wrote: > > On 22/08/2025 12:57, Dmitry Baryshkov wrote: > > > On Thu, Aug 21, 2025 at 03:53:26PM +0200, Neil Armstrong wrote: > > > > The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top > > > > of a combo glue to route either lanes to the 4 shared physical lanes. > > > > > > > > The routing of the lanes can be: > > > > - 2 DP + 2 USB3 > > > > - 4 DP > > > > - 2 USB3 > > > > > > > > And the layout of the lanes can be swpped depending of an > > > > eventual USB-C connector orientation. > > > > > > > > Nevertheless those QMP Comby PHY can be statically used to > > > > drive a DisplayPort connector, DP->HDMI bridge, USB3 A Connector... > > > > > > > > But if a 4lanes DP->HDMI bridge is directly connected to the > > > > QMP Comby PHY lanes, in the default routing 2 or the 4 lanes would > > > > probbaly be USB3, making the DP->HDMI bridge non functional. > > > > > > > > Add a property to hint in which layout mode the QMP Comby PHY > > > > should be as startup. > > > > > > > > Signed-off-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx> > > > > --- > > > > .../bindings/phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | > > > > 13 ++ +++++++++++ > > > > 1 file changed, 13 insertions(+) > > > > > > > > diff --git > > > > a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp- > > > > usb43dp-phy.yaml b/Documentation/devicetree/bindings/phy/ > > > > qcom,sc8280xp-qmp-usb43dp-phy.yaml > > > > index c8bc512df08b5694c8599f475de78679a4438449..129475a1d9527733e43ded5a38aad766f9810fe7 > > > > 100644 > > > > --- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp- > > > > usb43dp-phy.yaml > > > > +++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp- > > > > usb43dp-phy.yaml > > > > @@ -76,6 +76,19 @@ properties: > > > > mode-switch: true > > > > orientation-switch: true > > > > + qcom,combo-initial-mode: > > > > + description: > > > > + Describe the initial mode of the Combo PHY configuration. > > > > + The Combo PHY is a wrapper on top of a DP PHY and an USB3 PHY, > > > > + sharing the same SuperSpeed lanes with either DisplayPort over > > > > + the 4 lanes (dp), USB3 on a pair of lanes (usb3) or both > > > > + technologies in a 2+2 configuration (usb3+dp) as default. > > > > > > SPecifying this as an initial mode means that it can be switched later. > > > Should we generalize this and desribe it as bus-type (from > > > video-interfaces.yaml) and allow it to be present only if there is no > > > mode-switch property? > > > > I was not sure about that, and yes we should do that instead but I'm not > > sure about how. > > > > bus-type sounds great, but the numbering doesn't match so I was thinking > > instead > > something like phy-type with a string or use the numbers from include/ > > dt-bindings/phy/phy.h > > > > The thing is, do we want to keep the dual dp+usb3 as static ? I think > > it's very possible > > a board would connect the combo phy to an USB3 A connector and a 2lanes > > DisplayPort connector. > > Yes, our board (Radxa Dragon Q6A) is using such design, but with usb3 and dp > lanes swapped. [1] I think this patch series could be extended to handle > such configuration. > > Currently I just change the default orientation to reverse in > qmp_combo_probe. [2] It works flawlessly. But of course, it's not an > upstreamable solution :) I thought about using data-lanes in the QMP PHY, but then I realised that there is no way to use that property to correctly describe all these variants. So, I think it should be the bus-type of some kind. > > FWIW, Rockchip usbdp phy binding [3] has a property called > `rockchip,dp-lane-mux` to support such configuration. > > [1] https://dl.radxa.com/q6a/hw/RADXA%20Dragon%20Q6A%20V1.20%20Schematic%2020250621.pdf > > [2] https://github.com/strongtz/linux-next/commit/928cd166ce81aca7f8e051c72eccbd84ad896d98 > > [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml#n53 > > > > > Neil > > > > > > > > > > > > + default: usb3+dp > > > > + enum: > > > > + - usb3+dp > > > > + - usb3 > > > > + - dp > > > > + > > > > ports: > > > > $ref: /schemas/graph.yaml#/properties/ports > > > > properties: > > > > > > > > -- > > > > 2.34.1 > > > > > > > > > > > > -- > Best regards, > Xilin Wu <sophon@xxxxxxxxx> -- With best wishes Dmitry