summaryrefslogtreecommitdiff
path: root/arch/arm64
diff options
context:
space:
mode:
authorFrieder Schrempf <frieder.schrempf@kontron.de>2025-10-20 15:21:51 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-11-24 10:37:39 +0100
commitbb787e58ef620c850ba6aebf7d477df6e376670a (patch)
tree2944c7bd2a41ffa4a183907a9cf1ba10e2e1bcd1 /arch/arm64
parent9bddb4dce047100aae3673d581a718eb6d5b6d1e (diff)
downloadlinux-bb787e58ef620c850ba6aebf7d477df6e376670a.tar.gz
linux-bb787e58ef620c850ba6aebf7d477df6e376670a.tar.bz2
linux-bb787e58ef620c850ba6aebf7d477df6e376670a.zip
arm64: dts: imx8mp-kontron: Fix USB OTG role switching
[ Upstream commit 6504297872c7a5d0d06247970d32940eba26b8b3 ] 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. Fixes: 946ab10e3f40 ("arm64: dts: Add support for Kontron OSM-S i.MX8MP SoM and BL carrier board") Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'arch/arm64')
-rw-r--r--arch/arm64/boot/dts/freescale/imx8mp-kontron-bl-osm-s.dts24
1 files changed, 19 insertions, 5 deletions
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-kontron-bl-osm-s.dts b/arch/arm64/boot/dts/freescale/imx8mp-kontron-bl-osm-s.dts
index 0eb9e726a9b8..6c63f0a5fa91 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-kontron-bl-osm-s.dts
+++ b/arch/arm64/boot/dts/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";
};