[U-Boot] [PATCH 2/2] sunxi: Pine64: DTS: enable USB PHY 0 for HCI0

Andre Przywara andre.przywara at arm.com
Thu May 16 09:57:05 UTC 2019


On Thu, 16 May 2019 08:15:23 +0100
Peter Robinson <pbrobinson at gmail.com> wrote:

Hi Peter,

> On Thu, May 16, 2019 at 1:47 AM Andre Przywara <andre.przywara at arm.com> wrote:
> >
> > The first USB controller on the A64 SoC shares a PHY with the OTG
> > controller. Reportedly to avoid problems with the VBUS regulator under
> > Linux, we don't link OHCI0/EHCI0 to the USB PHY in the A64 .dtsi file.
> >
> > However on boards which can't use peripheral mode (because they have an
> > always-on VBUS supply on an USB-A socket) we don't need this trick, and
> > can properly connect host controller 0 to the PHY 0.
> >
> > Amend the Pine64 and SoPine/LTS .dts to reflect this. This enables the
> > upper USB port in U-Boot on those boards.
> >
> > Signed-off-by: Andre Przywara <andre.przywara at arm.com>
> > ---
> >  arch/arm/dts/sun50i-a64-pine64.dts           | 5 ++++-
> >  arch/arm/dts/sun50i-a64-sopine-baseboard.dts | 5 ++++-
> >  2 files changed, 8 insertions(+), 2 deletions(-)  
> 
> Are these changes going to go upstream to Linux too? If not it's
> probably best to add it to a u-boot.dtsi so the changes don't get lost
> when the DT files are re-synced from Linux. Same with the similar
> patches for the H6 boards.

Yes, but I need to wait for the end of the merge window before I can post
anything there. So I just posted this here to get some input on this.
And we need to resync the DTs anyway, I will post something next week,
probably syncing with 5.2-rc1.

Actually I believe the changes belong into the .dtsi, as this is how the
hardware is wired. But I need to do more tests, as Chen-Yu hinted that
this might break USB-OTG on boards with a proper micro-B socket (like the
Banana-Pi M64), due to the HCI driver always enabling VBUS. So far I
failed to use host mode on that board, but I will keep digging.

Cheers,
Andre.

> > diff --git a/arch/arm/dts/sun50i-a64-pine64.dts b/arch/arm/dts/sun50i-a64-pine64.dts
> > index c077b6c1f4..523a4d5bff 100644
> > --- a/arch/arm/dts/sun50i-a64-pine64.dts
> > +++ b/arch/arm/dts/sun50i-a64-pine64.dts
> > @@ -80,6 +80,8 @@
> >  };
> >
> >  &ehci0 {
> > +       phys = <&usbphy 0>;
> > +       phy-names = "usb";
> >         status = "okay";
> >  };
> >
> > @@ -136,6 +138,8 @@
> >  };
> >
> >  &ohci0 {
> > +       phys = <&usbphy 0>;
> > +       phy-names = "usb";
> >         status = "okay";
> >  };
> >
> > @@ -301,7 +305,6 @@
> >
> >  &usb_otg {
> >         dr_mode = "host";
> > -       status = "okay";
> >  };
> >
> >  &usbphy {
> > diff --git a/arch/arm/dts/sun50i-a64-sopine-baseboard.dts b/arch/arm/dts/sun50i-a64-sopine-baseboard.dts
> > index 53fcc9098d..1986897177 100644
> > --- a/arch/arm/dts/sun50i-a64-sopine-baseboard.dts
> > +++ b/arch/arm/dts/sun50i-a64-sopine-baseboard.dts
> > @@ -85,6 +85,8 @@
> >  };
> >
> >  &ehci0 {
> > +       phys = <&usbphy 0>;
> > +       phy-names = "usb";
> >         status = "okay";
> >  };
> >
> > @@ -131,6 +133,8 @@
> >  };
> >
> >  &ohci0 {
> > +       phys = <&usbphy 0>;
> > +       phy-names = "usb";
> >         status = "okay";
> >  };
> >
> > @@ -172,7 +176,6 @@
> >
> >  &usb_otg {
> >         dr_mode = "host";
> > -       status = "okay";
> >  };
> >
> >  &usbphy {
> > --
> > 2.14.5
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://lists.denx.de/listinfo/u-boot  



More information about the U-Boot mailing list