Re: [RFC PATCH 3/3] arm64: dts: allwinner: h700: Enable USB OTG

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 20, 2025 at 9:38 PM Jernej Škrabec <jernej.skrabec@xxxxxxxxx> wrote:
>
> Dne sobota, 18. januar 2025 ob 11:22:06 Srednjeevropski standardni čas je Philippe Simons napisal(a):
> > RG35XX have a GPIO controlled regulator for phy0 vbus, add it.
> > Enable HCI0s controllers and otg for dr_mode.
> > Add phy0 properties to descrive id_det, external vbus, and internal vbus
> >
> > Signed-off-by: Philippe Simons <simons.philippe@xxxxxxxxx>
>
> This could work without previous two patches, right?

While this correctly describes the board, it currently doesn't works
as expected.
HCIs will enable the 5v on PHY and will never disable it.
Resulting in a blown regulator on the board if plugged with another host.
I managed to get this working by removing the PHY ref from the HCI,
but this is wrong.

>
> Reviewed-by: Jernej Skrabec <jernej.skrabec@xxxxxxxxx>
>
> Best regards,
> Jernej
>
> > ---
> >  .../sun50i-h700-anbernic-rg35xx-2024.dts      | 25 +++++++++++++++++--
> >  1 file changed, 23 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> > index 80ccab7b5..5a6ae42de 100644
> > --- a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> > @@ -175,6 +175,16 @@ reg_vcc5v: regulator-vcc5v { /* USB-C power input */
> >               regulator-min-microvolt = <5000000>;
> >               regulator-max-microvolt = <5000000>;
> >       };
> > +
> > +     reg_usb0_vbus: regulator-usb0-vbus {
> > +             compatible = "regulator-fixed";
> > +             enable-active-high;
> > +             gpio = <&pio 8 16 GPIO_ACTIVE_HIGH>; /* PI16 */
> > +             regulator-min-microvolt = <5000000>;
> > +             regulator-max-microvolt = <5000000>;
> > +             regulator-name = "usb0-vbus";
> > +             vin-supply = <&reg_boost>;
> > +     };
> >  };
> >
> >  &cpu0 {
> > @@ -337,12 +347,23 @@ &uart0 {
> >       status = "okay";
> >  };
> >
> > -/* the AXP717 has USB type-C role switch functionality, not yet described by the binding */
> > +/* the AXP717 has USB type-C role switch functionality */
> >  &usbotg {
> > -     dr_mode = "peripheral";   /* USB type-C receptable */
> > +     dr_mode = "otg";   /* USB type-C receptable */
> > +     status = "okay";
> > +};
> > +
> > +&ehci0 {
> > +     status = "okay";
> > +};
> > +
> > +&ohci0 {
> >       status = "okay";
> >  };
> >
> >  &usbphy {
> > +     usb0_id_det-gpios = <&pio 8 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PI4 */
> > +     usb0_vbus_power-supply = <&usb_power>;
> > +     usb0_vbus-supply = <&reg_usb0_vbus>;
> >       status = "okay";
> >  };
> >
>
>
>
>





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux