[PATCH 2/4] arm64: dts: imx8mp-kontron: Fix USB OTG role switching

Frieder Schrempf frieder at fris.de
Tue Nov 11 11:28:11 CET 2025


From: Frieder Schrempf <frieder.schrempf at kontron.de>

The VBUS supply regulator is currently assigned to the PHY node.
This causes the VBUS to be always on, even when the controller
needs to be switched to peripheral mode.

Fix the OTG role switching by adding a connector node and moving
the VBUS supply regulator to that node. This way the VBUS gets
correctly switched according to the current role.

Signed-off-by: Frieder Schrempf <frieder.schrempf at kontron.de>
Signed-off-by: Shawn Guo <shawnguo at kernel.org>
---
 .../freescale/imx8mp-kontron-bl-osm-s.dts     | 24 +++++++++++++++----
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/dts/upstream/src/arm64/freescale/imx8mp-kontron-bl-osm-s.dts b/dts/upstream/src/arm64/freescale/imx8mp-kontron-bl-osm-s.dts
index 0eb9e726a9b..6c63f0a5fa9 100644
--- a/dts/upstream/src/arm64/freescale/imx8mp-kontron-bl-osm-s.dts
+++ b/dts/upstream/src/arm64/freescale/imx8mp-kontron-bl-osm-s.dts
@@ -16,11 +16,20 @@
 		ethernet1 = &eqos;
 	};
 
-	extcon_usbc: usbc {
-		compatible = "linux,extcon-usb-gpio";
+	connector {
+		compatible = "gpio-usb-b-connector", "usb-b-connector";
+		id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+		label = "Type-C";
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_usb1_id>;
-		id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+		type = "micro";
+		vbus-supply = <&reg_usb1_vbus>;
+
+		port {
+			usb_dr_connector: endpoint {
+				remote-endpoint = <&usb3_dwc>;
+			};
+		};
 	};
 
 	leds {
@@ -230,9 +239,15 @@
 	hnp-disable;
 	srp-disable;
 	dr_mode = "otg";
-	extcon = <&extcon_usbc>;
 	usb-role-switch;
+	role-switch-default-mode = "peripheral";
 	status = "okay";
+
+	port {
+		usb3_dwc: endpoint {
+			remote-endpoint = <&usb_dr_connector>;
+		};
+	};
 };
 
 &usb_dwc3_1 {
@@ -261,7 +276,6 @@
 };
 
 &usb3_phy0 {
-	vbus-supply = <&reg_usb1_vbus>;
 	status = "okay";
 };
 
-- 
2.51.0



More information about the U-Boot mailing list