diff mbox series

ARM: dts: imx: Switch USB1 port control to GPIO on Data Modul i.MX8M Plus eDM SBC

Message ID 20230715182416.788761-1-marex@denx.de
State Accepted
Commit 6bd39dee633bcb13ddbafc31301a4ecfd6c2e7fa
Delegated to: Stefano Babic
Headers show
Series ARM: dts: imx: Switch USB1 port control to GPIO on Data Modul i.MX8M Plus eDM SBC | expand

Commit Message

Marek Vasut July 15, 2023, 6:24 p.m. UTC
The USB_PWR signal operation is not reliable on this DWC3 controller
instance in case the signal is active high. Switch to GPIO control,
which always behaves correctly. Perform the change in u-boot extras
until this hits Linux upstream.

Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 .../dts/imx8mp-data-modul-edm-sbc-u-boot.dtsi | 30 +++++++++++++++++++
 1 file changed, 30 insertions(+)

Comments

Stefano Babic Oct. 16, 2023, 4:45 p.m. UTC | #1
> The USB_PWR signal operation is not reliable on this DWC3 controller
> instance in case the signal is active high. Switch to GPIO control,
> which always behaves correctly. Perform the change in u-boot extras
> until this hits Linux upstream.
> Signed-off-by: Marek Vasut <marex@denx.de>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic
diff mbox series

Patch

diff --git a/arch/arm/dts/imx8mp-data-modul-edm-sbc-u-boot.dtsi b/arch/arm/dts/imx8mp-data-modul-edm-sbc-u-boot.dtsi
index dd0f34f3447..eafe9b9308c 100644
--- a/arch/arm/dts/imx8mp-data-modul-edm-sbc-u-boot.dtsi
+++ b/arch/arm/dts/imx8mp-data-modul-edm-sbc-u-boot.dtsi
@@ -4,6 +4,7 @@ 
  */
 
 #include "imx8mp-u-boot.dtsi"
+#include "imx8mp-pinfunc.h"
 
 / {
 	aliases {
@@ -17,6 +18,17 @@ 
 		dmo,ram-coding-gpios = <&gpio3 20 0>, <&gpio4 3 0>, <&gpio4 1 0>;
 	};
 
+	reg_usb1_vbus: regulator-usb1-vbus {
+		compatible = "regulator-fixed";
+		enable-active-high;
+		gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_usb1_vbus>;
+		regulator-max-microvolt = <5000000>;
+		regulator-min-microvolt = <5000000>;
+		regulator-name = "USB1_PWR";
+	};
+
 	wdt-reboot {
 		compatible = "wdt-reboot";
 		wdt = <&wdog1>;
@@ -113,6 +125,10 @@ 
 	bootph-pre-ram;
 };
 
+&usb3_phy0 {
+	vbus-supply = <&reg_usb1_vbus>;
+};
+
 &usdhc2 {
 	bootph-pre-ram;
 	sd-uhs-sdr104;
@@ -128,3 +144,17 @@ 
 &wdog1 {
 	bootph-pre-ram;
 };
+
+&iomuxc {
+	usb1-grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO13__USB1_OTG_OC		0x80
+		>;
+	};
+
+	pinctrl_usb1_vbus: usb1-vbus-grp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12		0x6
+		>;
+	};
+};