RE: [PATCH] USB: xhci-plat: fix legacy PHY double inity

From: Stanley Chang[昌育德]
Date: Mon Nov 06 2023 - 05:37:27 EST


Hi Johan,

>
> On Mon, Nov 06, 2023 at 10:08:24AM +0000, Stanley Chang[昌育德] wrote:
> > > On Mon, Nov 06, 2023 at 06:53:23AM +0000, Stanley Chang[昌育德]
> wrote:
>
> > > > I test the Realtek phy driver at drivers/phy/Realtek/phy-rtk-usb2.c again.
> > > > But I can't get the phy in xhci.
> > >
> > > > It is a dwc3 generic phy driver, and it is also a usb phy driver.
> > >
> > > That sounds broken (i.e. to be relying on both frameworks), but
> > > indeed that seems to be the current state of the generic and legacy
> > > USB PHY implementations.
> > >
> > > What a mess.
> >
> > > > Base on you modified, I can't run on callback
> > > > rtk_phy->phy.notify_port_status = rtk_phy_notify_port_status;
> > >
> > > Which dwc3 driver are you using? Unless I'm missing something this
> > > would not be an issue unless you are doing something crazy like
> > > describing the same PHY twice in the devicetree (i.e. both as a generic and
> legacy PHY).
> >
> > I use drivers/usb/dwc3/core.c and drivers/usb/dwc3/dwc3-rtk.c I
> > describe the PHY as generic and legacy PHY in device tree.
>
> That's not right. You should just use the generic PHY binding for new platforms.
>
> > Our driver needs the API base on a08799cf17c2 ("usb: phy: add usb phy
> notify port status API").
> > But generic PHY driver is not support this.
>
> Yes, but you added that interface yourself, and that I think merging that was a
> mistake.
>
> We should not be building functionality on top of the legacy USB PHY
> implementation which is stuck in some transitional limbo.
>
> Apparently, your PHY drivers which were merged for 6.6 are the only users of
> this interface, and there are no upstream devicetrees that use these PHYs.
>
> I think we should revert this mess before we dig ourselves into an even deeper
> hole.
>

This is an interim method, as the current generic PHY framework does not support special operations on USB PHY.
Now the generic PHY can't instead USB PHY in this stage.
For example,
drivers/phy/ti/phy-twl4030-usb.c
drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c
drivers/phy/ti/phy-omap-usb2.c

Thanks,
Stanley