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 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. For those (64-bit) boards which use an USB-A socket for HCI0/MUSB, add a "phys" property pointing to the USB PHY 0. This makes it work in U-Boot, also improves compatiblity when no MUSB driver is loaded (for instance in distribution installers). Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> --- Hi, I have the feeling this belongs into the .dtsi, but cant't tell for sure how this interacts with the MUSB driver. If need be, we can always pull this up later, I guess. Thanks, Andre arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 2 ++ arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts | 2 ++ arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts | 2 ++ arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts | 2 ++ arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts | 2 ++ 5 files changed, 10 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts index 409523cb0950..b23e827a6065 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts @@ -93,6 +93,7 @@ }; &ehci0 { + phys = <&usbphy 0>; status = "okay"; }; @@ -147,6 +148,7 @@ }; &ohci0 { + phys = <&usbphy 0>; status = "okay"; }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts index e6fb9683f213..b422bef19fff 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts @@ -105,6 +105,7 @@ }; &ehci0 { + phys = <&usbphy 0>; status = "okay"; }; @@ -151,6 +152,7 @@ }; &ohci0 { + phys = <&usbphy 0>; status = "okay"; }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts index 9887948d5c86..5da9cdfb4f48 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts @@ -124,6 +124,7 @@ }; &ehci0 { + phys = <&usbphy 0>; status = "okay"; }; @@ -179,6 +180,7 @@ }; &ohci0 { + phys = <&usbphy 0>; status = "okay"; }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts index 0dc33c90dd60..293f66c44032 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts @@ -58,6 +58,7 @@ }; &ehci0 { + phys = <&usb2phy 0>; status = "okay"; }; @@ -104,6 +105,7 @@ }; &ohci0 { + phys = <&usb2phy 0>; status = "okay"; }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts index 9e464d40cbff..577f8133181e 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts @@ -96,6 +96,7 @@ }; &ehci0 { + phys = <&usb2phy 0>; status = "okay"; }; @@ -120,6 +121,7 @@ }; &ohci0 { + phys = <&usb2phy 0>; status = "okay"; }; -- 2.14.5