[openwrt/openwrt] ramips: mt7621: use regulators for USB GPIO
LEDE Commits
lede-commits at lists.infradead.org
Tue Jun 3 02:04:54 PDT 2025
robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/079db0ab810e2bc70eeedf091f41a25760d5264f
commit 079db0ab810e2bc70eeedf091f41a25760d5264f
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Fri Nov 15 15:22:42 2024 -0800
ramips: mt7621: use regulators for USB GPIO
Regulators as implemented by the XHCI driver only accept one GPIO.
However, we can abuse the fact that the XHCI driver accepts two
regulators, one for 5V and the other for 3.3V, for USB 2 and 3 GPIOs.
Signed-off-by: Rosen Penev <rosenp at gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16967
Signed-off-by: Robert Marko <robimarko at gmail.com>
---
target/linux/ramips/dts/mt7621_d-team_pbr-m1.dts | 35 +++++++++++++-------
target/linux/ramips/dts/mt7621_dual-q_h721.dts | 37 ++++++++++++----------
.../linux/ramips/dts/mt7621_lenovo_newifi-d1.dts | 33 +++++++++++--------
.../ramips/dts/mt7621_xzwifi_creativebox-v1.dts | 35 +++++++++++++-------
4 files changed, 87 insertions(+), 53 deletions(-)
diff --git a/target/linux/ramips/dts/mt7621_d-team_pbr-m1.dts b/target/linux/ramips/dts/mt7621_d-team_pbr-m1.dts
index ffa405133b..a0f8a62106 100644
--- a/target/linux/ramips/dts/mt7621_d-team_pbr-m1.dts
+++ b/target/linux/ramips/dts/mt7621_d-team_pbr-m1.dts
@@ -60,20 +60,26 @@
};
};
- gpio_export {
- compatible = "gpio-export";
+ reg_usb_vbus: regulator-usb {
+ compatible = "regulator-fixed";
+ regulator-name = "usb_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
- power_usb2 {
- gpio-export,name = "power_usb2";
- gpio-export,output = <1>;
- gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
- };
+ reg_3p3v: regulator-3p3v {
+ compatible = "regulator-fixed";
+ regulator-name = "fixed-3.3V";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
- power_usb3 {
- gpio-export,name = "power_usb3";
- gpio-export,output = <1>;
- gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
- };
+ gpio_export {
+ compatible = "gpio-export";
power_sata {
gpio-export,name = "power_sata";
@@ -102,6 +108,11 @@
status = "okay";
};
+&xhci {
+ vusb33-supply = <®_3p3v>;
+ vbus-supply = <®_usb_vbus>;
+};
+
&spi0 {
status = "okay";
diff --git a/target/linux/ramips/dts/mt7621_dual-q_h721.dts b/target/linux/ramips/dts/mt7621_dual-q_h721.dts
index 8b2df41417..3499e14f95 100644
--- a/target/linux/ramips/dts/mt7621_dual-q_h721.dts
+++ b/target/linux/ramips/dts/mt7621_dual-q_h721.dts
@@ -21,22 +21,6 @@
bootargs = "console=ttyS0,115200";
};
- gpio-export {
- compatible = "gpio-export";
-
- usb-30-power {
- gpio-export,name = "usb-30-power";
- gpio-export,output = <0>;
- gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
- };
-
- usb-20-power {
- gpio-export,name = "usb-20-power";
- gpio-export,output = <0>;
- gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
- };
- };
-
keys {
compatible = "gpio-keys";
@@ -91,6 +75,27 @@
gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
};
};
+
+ reg_usb_vbus: regulator-usb {
+ compatible = "regulator-fixed";
+ regulator-name = "usb_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
+ };
+
+ reg_3p3v: regulator-3p3v {
+ compatible = "regulator-fixed";
+ regulator-name = "fixed-3.3V";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&xhci {
+ vusb33-supply = <®_3p3v>;
+ vbus-supply = <®_usb_vbus>;
};
&spi0 {
diff --git a/target/linux/ramips/dts/mt7621_lenovo_newifi-d1.dts b/target/linux/ramips/dts/mt7621_lenovo_newifi-d1.dts
index a4d55a5e87..c43ed152f6 100644
--- a/target/linux/ramips/dts/mt7621_lenovo_newifi-d1.dts
+++ b/target/linux/ramips/dts/mt7621_lenovo_newifi-d1.dts
@@ -59,20 +59,22 @@
};
};
- gpio_export {
- compatible = "gpio-export";
-
- usb2power {
- gpio-export,name = "usb2power";
- gpio-export,output = <1>;
- gpios = <&gpio 9 GPIO_ACTIVE_HIGH>;
- };
+ reg_usb_vbus: regulator-usb {
+ compatible = "regulator-fixed";
+ regulator-name = "usb_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
- usb3power {
- gpio-export,name = "usb3power";
- gpio-export,output = <1>;
- gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
- };
+ reg_3p3v: regulator-3p3v {
+ compatible = "regulator-fixed";
+ regulator-name = "fixed-3.3V";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpios = <&gpio 9 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
};
};
@@ -80,6 +82,11 @@
status = "okay";
};
+&xhci {
+ vusb33-supply = <®_3p3v>;
+ vbus-supply = <®_usb_vbus>;
+};
+
&spi0 {
status = "okay";
diff --git a/target/linux/ramips/dts/mt7621_xzwifi_creativebox-v1.dts b/target/linux/ramips/dts/mt7621_xzwifi_creativebox-v1.dts
index 00e4171d93..8830320954 100644
--- a/target/linux/ramips/dts/mt7621_xzwifi_creativebox-v1.dts
+++ b/target/linux/ramips/dts/mt7621_xzwifi_creativebox-v1.dts
@@ -67,24 +67,35 @@
gpio_export {
compatible = "gpio-export";
- power_usb2 {
- gpio-export,name = "power_usb2";
- gpio-export,output = <1>;
- gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
- };
-
- power_usb3 {
- gpio-export,name = "power_usb3";
- gpio-export,output = <1>;
- gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
- };
-
power_sata {
gpio-export,name = "power_sata";
gpio-export,output = <1>;
gpios = <&gpio 27 GPIO_ACTIVE_HIGH>;
};
};
+
+ reg_usb_vbus: regulator-usb {
+ compatible = "regulator-fixed";
+ regulator-name = "usb_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ reg_3p3v: regulator-3p3v {
+ compatible = "regulator-fixed";
+ regulator-name = "fixed-3.3V";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&xhci {
+ vusb33-supply = <®_3p3v>;
+ vbus-supply = <®_usb_vbus>;
};
&spi0 {
More information about the lede-commits
mailing list