diff --git a/target/linux/ramips/dts/DIR-645.dts b/target/linux/ramips/dts/DIR-645.dts
index 960d2cb352bc06897a11dcdb6dd05540acfa2ca5..e5ccb40ec6bd4ae65a452d1fa00e77b8f4697b15 100644
--- a/target/linux/ramips/dts/DIR-645.dts
+++ b/target/linux/ramips/dts/DIR-645.dts
@@ -128,16 +128,13 @@
 		};
 	};
 
-	usb0: gpio-regulator {
-		compatible = "regulator-gpio";
-
-		regulator-type = "voltage";
-		regulator-name = "usb-power";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		regulator-boot-on;
-
-		enable-active-high;
-		enable-gpio = <&gpio1 6 0>;
+	gpio_export {
+		compatible = "gpio-export";
+		#size-cells = <0>;
+		usb {
+			gpio-export,name = "usb";
+			gpio-export,output = <1>;
+			gpios = <&gpio1 6 0>;
+		};
 	};
 };
diff --git a/target/linux/ramips/dts/FREESTATION5.dts b/target/linux/ramips/dts/FREESTATION5.dts
index 442cd268dde03ca1b12e644d7a07577055afb4f0..a3cc8fc97dac72cf2a40fa9ff37aa4d8d9a0bc9c 100644
--- a/target/linux/ramips/dts/FREESTATION5.dts
+++ b/target/linux/ramips/dts/FREESTATION5.dts
@@ -72,16 +72,15 @@
 		status = "okay";
 	};
 
-	poe: gpio-regulator {
+	gpio-export {
+		compatible = "gpio-export";
 		// Used to enable power-over-ethernet passthrough from port0 to port1.
 		// Disable passthrough by default to prevent accidental equipment damage.
-		compatible = "regulator-gpio";
-
-		regulator-name = "poe-power";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-
-		enable-gpio = <&gpio0 12 0>;
+		poe {
+			gpio-export,name = "poe-passthrough";
+			gpio-export,output = <1>; // OUT_INIT_HIGH
+			gpios = <&gpio0 11 1>;    // GPIO 11, ACTIVE_LOW
+		};
 	};
 
 	gpio-leds {
diff --git a/target/linux/ramips/dts/MPRA2.dts b/target/linux/ramips/dts/MPRA2.dts
index 9f8edb6296cc6803a617ca991b216854d4d8f55d..8fb226b748b6097f795bad777f1d1172bc90acd6 100644
--- a/target/linux/ramips/dts/MPRA2.dts
+++ b/target/linux/ramips/dts/MPRA2.dts
@@ -103,27 +103,19 @@
 		};
 	};
 
-	usb0: gpio-regulator {
-		compatible = "regulator-gpio";
-
-		regulator-name = "usb0-power";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		regulator-boot-on;
-
-		enable-active-high;
-		enable-gpio = <&gpio0 7 0>;
-	};
-
-	hub0: gpio-regulator {
-		compatible = "regulator-gpio";
-
-		regulator-name = "hub0-power";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		regulator-boot-on;
+	gpio_export {
+		compatible = "gpio-export";
+		#size-cells = <0>;
 
-		enable-active-high;
-		enable-gpio = <&gpio0 12 0>;
+		usb {
+			gpio-export,name = "usb";
+			gpio-export,output = <1>;
+			gpios = <&gpio0 7 0>;
+		};
+		root_hub {
+			gpio-export,name = "root_hub";
+			gpio-export,output = <1>;
+			gpios = <&gpio0 12 0>;
+		};
 	};
 };
diff --git a/target/linux/ramips/dts/OMNI-EMB-HPM.dts b/target/linux/ramips/dts/OMNI-EMB-HPM.dts
index 875df14c660889cf2eb46c4a12c9ee187eb82a2c..8148294893bdacc3553edfc26384ecb4a25fd53b 100644
--- a/target/linux/ramips/dts/OMNI-EMB-HPM.dts
+++ b/target/linux/ramips/dts/OMNI-EMB-HPM.dts
@@ -131,28 +131,19 @@
 		};
 	};
 
-	/* gpio 12 and 13 handle the OC input */
-	usb0: gpio-regulator {
-		compatible = "regulator-gpio";
-
-		regulator-name = "usb0-power";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		regulator-boot-on;
-
-		enable-active-high;
-		enable-gpio = <&gpio0 2 0>;
-	};
-
-	usb1: gpio-regulator {
-		compatible = "regulator-gpio";
-
-		regulator-name = "usb1-power";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		regulator-boot-on;
-
-		enable-active-high;
-		enable-gpio = <&gpio0 1 0>;
+	gpio_export {
+		compatible = "gpio-export";
+		#size-cells = <0>;
+		/* gpio 12 and 13 handle the OC input */
+		usb0 {
+			gpio-export,name = "usb0";
+			gpio-export,output = <1>;
+			gpios = <&gpio0 2 0>;
+		};
+		usb1 {
+			gpio-export,name = "usb1";
+			gpio-export,output = <1>;
+			gpios = <&gpio0 1 0>;
+		};
 	};
 };
diff --git a/target/linux/ramips/dts/WR6202.dts b/target/linux/ramips/dts/WR6202.dts
index 1e41756d5ab01abfd10184c6b7732ccdf3bcb65c..a970849e313821cece01eb96859db9278078c765 100644
--- a/target/linux/ramips/dts/WR6202.dts
+++ b/target/linux/ramips/dts/WR6202.dts
@@ -102,14 +102,14 @@
 		status = "okay";
 	};
 
-	usb0: gpio-regulator {
-		compatible = "regulator-gpio";
-
-		regulator-name = "usb0-power";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		regulator-boot-on;
+	gpio_export {
+		compatible = "gpio-export";
+		#size-cells = <0>;
 
-		enable-gpio = <&gpio0 11 0>;
+		usb {
+			gpio-export,name = "usb";
+			gpio-export,output = <0>;
+			gpios = <&gpio0 11 0>;
+		};
 	};
 };
diff --git a/target/linux/ramips/dts/rt3883.dtsi b/target/linux/ramips/dts/rt3883.dtsi
index 046c9e9a921e45c3c098577f75ed0e1dd87a7477..4d0d37d49a28613e95b0fa9923dd28465863878e 100644
--- a/target/linux/ramips/dts/rt3883.dtsi
+++ b/target/linux/ramips/dts/rt3883.dtsi
@@ -325,7 +325,7 @@
 	};
 
 	ehci@101c0000 {
-		compatible = "ralink,rt3883-ehci", "ehci-platform";
+		compatible = "ralink,rt3xxx-ehci", "ehci-platform";
 		reg = <0x101c0000 0x1000>;
 
 		interrupt-parent = <&intc>;
@@ -335,7 +335,7 @@
 	};
 
 	ohci@101c1000 {
-		compatible = "ralink,rt3883-ohci", "ohci-platform";
+		compatible = "ralink,rt3xxx-ohci", "ohci-platform";
 		reg = <0x101c1000 0x1000>;
 
 		interrupt-parent = <&intc>;