arm64: dts: allwinner: A64: properly connect USB PHY to port 0
authorAndre Przywara <andre.przywara@arm.com>
Wed, 13 Jan 2021 15:26:23 +0000 (15:26 +0000)
committerMaxime Ripard <maxime@cerno.tech>
Thu, 14 Jan 2021 11:46:32 +0000 (12:46 +0100)
In recent Allwinner SoCs the first USB host controller (HCI0) shares
the first PHY with the MUSB controller. Probably to make this sharing
work, we were avoiding to declare this in the DT. This has two
shortcomings:
- U-Boot (which uses the same .dts) cannot use this port in host mode
  without a PHY linked, so we were loosing one USB port there.
- It requires the MUSB driver to be enabled and loaded, although we
  don't actually use it.

To avoid those issues, let's add this PHY link to the A64 .dtsi file.
After all PHY port 0 *is* connected to HCI0, so we should describe
it as this. Remove the part from the Pinebook DTS which already had
this property.

This makes it work in U-Boot, also improves compatiblity when no MUSB
driver is loaded (for instance in distribution installers).

Fixes: dc03a047df1d ("arm64: allwinner: a64: add EHCI0/OHCI0 nodes to A64 DTSI")
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://lore.kernel.org/r/20210113152630.28810-2-andre.przywara@arm.com
arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi

index 896f34fd9fc3a896f3c8cbe06cf92d04d27adeb0..d07cf05549c3260eab435b51b4cd1a483dc38bc1 100644 (file)
 };
 
 &ehci0 {
-       phys = <&usbphy 0>;
-       phy-names = "usb";
        status = "okay";
 };
 
 };
 
 &ohci0 {
-       phys = <&usbphy 0>;
-       phy-names = "usb";
        status = "okay";
 };
 
index 51cc30e84e26143005e13b8b4a9b7ab4e4ed888e..19e9b8ca8432fb7260c8a4aa1fa2c8ae97f60b6a 100644 (file)
                                 <&ccu CLK_USB_OHCI0>;
                        resets = <&ccu RST_BUS_OHCI0>,
                                 <&ccu RST_BUS_EHCI0>;
+                       phys = <&usbphy 0>;
+                       phy-names = "usb";
                        status = "disabled";
                };
 
                        clocks = <&ccu CLK_BUS_OHCI0>,
                                 <&ccu CLK_USB_OHCI0>;
                        resets = <&ccu RST_BUS_OHCI0>;
+                       phys = <&usbphy 0>;
+                       phy-names = "usb";
                        status = "disabled";
                };