[PATCH] riscv: dts: spacemit: enable USB2.0 controllers on Milk-V Jupiter

Jennifer Berringer jberring at redhat.com
Fri Oct 9 19:03:17 PDT 2026


On Milk-V Jupiter boards, usb2_0 is connected to a Type-C connector
which cannot act as a power source. That port can act as USB host if
connected to a self-powered hub.

usb2_1 has vbus output controlled by gpio 127 and is connected to a
FE1.1s hub, which drives four ports: two rear Type-A receptacles and a
9-pin header for two chassis ports.

Signed-off-by: Jennifer Berringer <jberring at redhat.com>
---
This patch depends on
https://lore.kernel.org/spacemit/20261009-b4-spacemit-k1-usb2-v4-0-2d98e5324d9a@linux.spacemit.com/

This conflicts with the Jupiter M1 patch set but can be applied on top
of it if all instances of "k1-milkv-jupiter.dts" in this diff are
replaced with "k1-milkv-jupiter-common.dtsi"
---
 arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts | 35 +++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
index 635e95aad14a5..913c2170bf6a2 100644
--- a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
+++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
@@ -82,6 +82,16 @@ reg_vcc_5v: regulator-vcc-5v {
 		vin-supply = <&reg_dc_in>;
 	};
 
+	reg_usb2_vbus: regulator-usb2-vbus-5v {
+		compatible = "regulator-fixed";
+		regulator-name = "USB20_VBUS";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		vin-supply = <&reg_vcc_5v>;
+		gpio = <&gpio K1_GPIO(127) GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
 	regulator-usb3-vbus-5v {
 		compatible = "regulator-fixed";
 		regulator-name = "USB30_VBUS";
@@ -443,10 +453,35 @@ &uart0 {
 	status = "okay";
 };
 
+&usbphy0 {
+	status = "okay";
+};
+
+&usbphy1 {
+	status = "okay";
+};
+
 &usbphy2 {
 	status = "okay";
 };
 
+&usb2_0 {
+	status = "okay";
+};
+
+&usb2_1 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	vbus-supply = <&reg_usb2_vbus>;
+	status = "okay";
+
+	hub_2_1: hub at 1 {
+		compatible = "usb1a40,0101";
+		reg = <1>;
+		vdd-supply = <&pcie_vcc_3v3>;
+	};
+};
+
 &usb_dwc3 {
 	dr_mode = "host";
 	#address-cells = <1>;

---
base-commit: e5e04726cdd043e309677071ab1b65a4b18f422b
change-id: 20261009-jupiter-usb2-b888e544520a
prerequisite-change-id: 20260812-b4-spacemit-k1-usb2-97adfc283d58:v4
prerequisite-patch-id: ccc56cd7363a39566f74b3628fbe2ccf01c76774
prerequisite-patch-id: ee646b8712bc41793579b8abc30d8d3f616d36e7
prerequisite-patch-id: 793abd51f18ae96cc2cbcb447721ca9ae1e6fa49
prerequisite-patch-id: 67bf74a44fd81390c82c07921d808a58a5211fb7
prerequisite-patch-id: 801c65013a1e55dfdbf3d3b061752ddb972afb18
prerequisite-patch-id: 2321f949dcfb2609932da94cabc969812f11669f
prerequisite-patch-id: 0843cac1ae192e99f2562f5ac882dfc4f9a10637
prerequisite-patch-id: 7ce394f4284c628b7d6187d8ee555726c94675ad

Best regards,
-- 
Jennifer Berringer <jberring at redhat.com>




More information about the linux-riscv mailing list