[U-Boot] [PATCH 3/8] phy: sun4i-usb: Call phy_passby even for PHY#0

Chen-Yu Tsai wens at csie.org
Tue Jul 10 02:30:46 UTC 2018


On Tue, Jul 10, 2018 at 3:17 AM, Jagan Teki <jagan at amarulasolutions.com> wrote:
> phy_passby is not calling for phy id 0 in legacy code,
> which has no information on why it restricted.
> Since Linux phy driver doesn't restrict like this,
> so call it directly with out any condition

See

https://github.com/wens/u-boot-sunxi/commit/b1d3cb2973e75097bbee1835efdc07afb8a7ef2f

for a better commit message. This is an older version. I tried
rebasing on the latest version, but apparently there are merge
conflicts between master and sunxi/next. Even worse, it fails
to boot properly.

Please try to understand why the code is what it is. The reason we
started out with not calling it for PHY 0 is because in the past
USB0 did not have EHCI/OHCI host pairs, which in turn means there's
no "pmu" (whatever that is) register associated with that PHY.

In time, the check for the pointer to that register was moved into
sun4i_usb_phy_passby() itself, which directly returns if that pointer
is not set. And the PHY driver only sets that pointer if a "pmuX"
resource for X PHY is provided.

ChenYu

> Signed-off-by: Jagan Teki <jagan at amarulasolutions.com>
> ---
>  drivers/phy/allwinner/phy-sun4i-usb.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c
> index 2b3cf48025..01f585a283 100644
> --- a/drivers/phy/allwinner/phy-sun4i-usb.c
> +++ b/drivers/phy/allwinner/phy-sun4i-usb.c
> @@ -300,8 +300,7 @@ static int sun4i_usb_phy_init(struct phy *phy)
>                                     data->cfg->disc_thresh, PHY_DISCON_TH_LEN);
>         }
>
> -       if (usb_phy->id != 0)
> -               sun4i_usb_phy_passby(phy, true);
> +       sun4i_usb_phy_passby(phy, true);
>
>         sun4i_usb_phy0_reroute(data, true);
>
> --
> 2.17.1
>


More information about the U-Boot mailing list