Re: [RFC PATCH 3/3] arm64: dts: allwinner: h700: Enable USB OTG
From: Philippe Simons
Date: Fri Feb 21 2025 - 04:57:47 EST
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 = <®_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 = <®_usb0_vbus>;
> > status = "okay";
> > };
> >
>
>
>
>