Linux-RISC-V Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
@ 2026-07-28 21:05 Aurelien Jarno
  2026-07-28 21:05 ` [PATCH 1/3] " Aurelien Jarno
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Aurelien Jarno @ 2026-07-28 21:05 UTC (permalink / raw)
  To: linux-kernel, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Alexandre Ghiti, Yixun Lan
  Cc: Aurelien Jarno, open list:RISC-V ARCHITECTURE:Keyword:riscv,
	open list:RISC-V SPACEMIT SoC Support:Keyword:spacemit

This series adds cpu scaling support for the Milk-V Jupiter boards.

The first commit adds it to the existing "Milk-V Jupiter (K1)" board.

The two following commits add a "Milk-V Jupiter (M1)" board, by moving
the common part, i.e. everything but the model name and the operating
point tables, in a shared DTSI file. This file is then included for both
K1 and M1 variants.

CPU frequency scaling was verified up to 1.8 GHz on the M1 board.

Aurelien Jarno (3):
  riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
  riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter
    boards
  riscv: dts: spacemit: Add Milk-V Jupiter board (M1)

 arch/riscv/boot/dts/spacemit/Makefile         |   1 +
 .../dts/spacemit/k1-milkv-jupiter-common.dtsi | 469 ++++++++++++++++++
 .../boot/dts/spacemit/k1-milkv-jupiter.dts    | 433 +---------------
 .../boot/dts/spacemit/m1-milkv-jupiter.dts    |  11 +
 arch/riscv/boot/dts/spacemit/m1-opp.dtsi      | 117 +++++
 5 files changed, 601 insertions(+), 430 deletions(-)
 create mode 100644 arch/riscv/boot/dts/spacemit/k1-milkv-jupiter-common.dtsi
 create mode 100644 arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
 create mode 100644 arch/riscv/boot/dts/spacemit/m1-opp.dtsi

-- 
2.53.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
  2026-07-28 21:05 [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Aurelien Jarno
@ 2026-07-28 21:05 ` Aurelien Jarno
       [not found]   ` <20260728211959.4174F1F000E9@smtp.kernel.org>
  2026-07-28 21:05 ` [PATCH 2/3] riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards Aurelien Jarno
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 12+ messages in thread
From: Aurelien Jarno @ 2026-07-28 21:05 UTC (permalink / raw)
  To: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti,
	Yixun Lan
  Cc: Aurelien Jarno,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list:RISC-V SPACEMIT SoC Support,
	open list:RISC-V SPACEMIT SoC Support

Enable CPU DVFS on Milk-V Jupiter by including the OPP tables and wiring the
CPU nodes to the CPU regulator supply.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 .../boot/dts/spacemit/k1-milkv-jupiter.dts    | 35 ++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
index b61f5995ec771..3c16d0c20050e 100644
--- a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
+++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
@@ -5,6 +5,7 @@
  */
 
 #include "k1.dtsi"
+#include "k1-opp.dtsi"
 #include "k1-pinctrl.dtsi"
 
 / {
@@ -107,6 +108,38 @@ &combo_phy {
 	status = "okay";
 };
 
+&cpu_0 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_1 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_2 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_3 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_4 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_5 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_6 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_7 {
+	cpu-supply = <&buck1_0v9>;
+};
+
 &emmc {
 	bus-width = <8>;
 	mmc-hs400-1_8v;
@@ -209,7 +242,7 @@ pmic@41 {
 		dldoin2-supply = <&buck5>;
 
 		regulators {
-			buck1 {
+			buck1_0v9: buck1 {
 				regulator-min-microvolt = <500000>;
 				regulator-max-microvolt = <3450000>;
 				regulator-ramp-delay = <5000>;
-- 
2.53.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/3] riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards
  2026-07-28 21:05 [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Aurelien Jarno
  2026-07-28 21:05 ` [PATCH 1/3] " Aurelien Jarno
@ 2026-07-28 21:05 ` Aurelien Jarno
       [not found]   ` <20260728212345.A0CFE1F000E9@smtp.kernel.org>
  2026-07-28 21:05 ` [PATCH 3/3] riscv: dts: spacemit: Add Milk-V Jupiter board (M1) Aurelien Jarno
  2026-07-29  1:32 ` [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Yixun Lan
  3 siblings, 1 reply; 12+ messages in thread
From: Aurelien Jarno @ 2026-07-28 21:05 UTC (permalink / raw)
  To: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Yixun Lan, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Alexandre Ghiti
  Cc: Aurelien Jarno,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list:RISC-V ARCHITECTURE,
	open list:RISC-V SPACEMIT SoC Support

Add a common board dtsi for use by Milk V-Jupiter board variants. It
excludes the CPU operating-points-v2 tables, which should be included in
the board file.

It will be used for the Milk-V Jupiter M1 board.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 .../dts/spacemit/k1-milkv-jupiter-common.dtsi | 469 ++++++++++++++++++
 .../boot/dts/spacemit/k1-milkv-jupiter.dts    | 464 +----------------
 2 files changed, 471 insertions(+), 462 deletions(-)
 create mode 100644 arch/riscv/boot/dts/spacemit/k1-milkv-jupiter-common.dtsi

diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter-common.dtsi b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter-common.dtsi
new file mode 100644
index 0000000000000..b13d9c5e360be
--- /dev/null
+++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter-common.dtsi
@@ -0,0 +1,469 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
+ * Copyright (C) 2025 Javier Martinez Canillas <javierm@redhat.com>
+ */
+
+#include "k1.dtsi"
+#include "k1-pinctrl.dtsi"
+
+/ {
+	compatible = "milkv,jupiter", "spacemit,k1";
+
+	aliases {
+		ethernet0 = &eth0;
+		ethernet1 = &eth1;
+		i2c2 = &i2c2;
+		i2c8 = &i2c8;
+		mmc0 = &emmc;
+		mmc1 = &sdhci0;
+		serial0 = &uart0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led1 {
+			label = "pwr-led";
+			gpios = <&gpio K1_GPIO(96) GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "default-on";
+			default-state = "on";
+		};
+
+		led2 {
+			label = "hdd-led";
+			gpios = <&gpio K1_GPIO(92) GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "disk-activity";
+		};
+	};
+
+	pcie_vcc_3v3: regulator-pcie-vcc3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "pcie_vcc3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+		regulator-always-on;
+		vin-supply = <&reg_dc_in>;
+	};
+
+	reg_dc_in: regulator-dc-in-12v {
+		compatible = "regulator-fixed";
+		regulator-name = "dc_in_12v";
+		regulator-min-microvolt = <12000000>;
+		regulator-max-microvolt = <12000000>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	reg_vcc_4v: regulator-vcc-4v {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_4v";
+		regulator-min-microvolt = <4000000>;
+		regulator-max-microvolt = <4000000>;
+		regulator-boot-on;
+		regulator-always-on;
+		vin-supply = <&reg_dc_in>;
+	};
+
+	reg_vcc_5v: regulator-vcc-5v {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc_5v";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-boot-on;
+		regulator-always-on;
+		vin-supply = <&reg_dc_in>;
+	};
+
+	regulator-usb3-vbus-5v {
+		compatible = "regulator-fixed";
+		regulator-name = "USB30_VBUS";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-always-on;
+		vin-supply = <&reg_vcc_5v>;
+		gpio = <&gpio K1_GPIO(97) GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	usb3_hub_5v: regulator-usb3-hub-5v {
+		compatible = "regulator-fixed";
+		regulator-name = "USB30_HUB";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		vin-supply = <&reg_vcc_5v>;
+		gpio = <&gpio K1_GPIO(123) GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+};
+
+&combo_phy {
+	status = "okay";
+};
+
+&cpu_0 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_1 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_2 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_3 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_4 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_5 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_6 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&cpu_7 {
+	cpu-supply = <&buck1_0v9>;
+};
+
+&emmc {
+	bus-width = <8>;
+	mmc-hs400-1_8v;
+	mmc-hs400-enhanced-strobe;
+	non-removable;
+	no-sd;
+	no-sdio;
+	status = "okay";
+};
+
+&eth0 {
+	phy-handle = <&rgmii0>;
+	phy-mode = "rgmii-id";
+	pinctrl-names = "default";
+	pinctrl-0 = <&gmac0_cfg>, <&gmac0_clk_ref_cfg>;
+	rx-internal-delay-ps = <0>;
+	tx-internal-delay-ps = <0>;
+	status = "okay";
+
+	mdio-bus {
+		#address-cells = <0x1>;
+		#size-cells = <0x0>;
+
+		reset-gpios = <&gpio K1_GPIO(110) GPIO_ACTIVE_LOW>;
+		reset-delay-us = <10000>;
+		reset-post-delay-us = <100000>;
+
+		rgmii0: phy@1 {
+			reg = <0x1>;
+		};
+	};
+};
+
+&eth1 {
+	phy-handle = <&rgmii1>;
+	phy-mode = "rgmii-id";
+	pinctrl-names = "default";
+	pinctrl-0 = <&gmac1_cfg>, <&gmac1_clk_ref_cfg>;
+	rx-internal-delay-ps = <0>;
+	tx-internal-delay-ps = <250>;
+	status = "okay";
+
+	mdio-bus {
+		#address-cells = <0x1>;
+		#size-cells = <0x0>;
+
+		reset-gpios = <&gpio K1_GPIO(115) GPIO_ACTIVE_LOW>;
+		reset-delay-us = <10000>;
+		reset-post-delay-us = <100000>;
+
+		rgmii1: phy@1 {
+			reg = <0x1>;
+		};
+	};
+};
+
+&pdma {
+	status = "okay";
+};
+
+&i2c2 {
+	pinctrl-0 = <&i2c2_0_cfg>;
+	pinctrl-names = "default";
+	status = "okay";
+
+	eeprom@50 {
+		compatible = "atmel,24c04";
+		reg = <0x50>;
+		vcc-supply = <&buck3_1v8>; /* EEPROM_VCC18 */
+		pagesize = <16>;
+		read-only;
+		size = <512>;
+
+		nvmem-layout {
+			compatible = "onie,tlv-layout";
+
+			product-name {
+			};
+		};
+	};
+};
+
+&i2c8 {
+	pinctrl-0 = <&i2c8_cfg>;
+	pinctrl-names = "default";
+	status = "okay";
+
+	pmic@41 {
+		compatible = "spacemit,p1";
+		reg = <0x41>;
+		interrupts = <64>;
+		vin1-supply = <&reg_vcc_4v>;
+		vin2-supply = <&reg_vcc_4v>;
+		vin3-supply = <&reg_vcc_4v>;
+		vin4-supply = <&reg_vcc_4v>;
+		vin5-supply = <&reg_vcc_4v>;
+		vin6-supply = <&reg_vcc_4v>;
+		aldoin-supply = <&reg_vcc_4v>;
+		dldoin1-supply = <&buck5>;
+		dldoin2-supply = <&buck5>;
+
+		regulators {
+			buck1_0v9: buck1 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3450000>;
+				regulator-ramp-delay = <5000>;
+				regulator-always-on;
+			};
+
+			buck2 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3450000>;
+				regulator-ramp-delay = <5000>;
+				regulator-always-on;
+			};
+
+			buck3_1v8: buck3 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-ramp-delay = <5000>;
+				regulator-always-on;
+			};
+
+			buck4_3v3: buck4 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-ramp-delay = <5000>;
+				regulator-always-on;
+			};
+
+			buck5: buck5 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3450000>;
+				regulator-ramp-delay = <5000>;
+				regulator-always-on;
+			};
+
+			buck6 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3450000>;
+				regulator-ramp-delay = <5000>;
+				regulator-always-on;
+			};
+
+			aldo1: aldo1 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3400000>;
+				regulator-boot-on;
+			};
+
+			aldo2 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3400000>;
+			};
+
+			aldo3 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3400000>;
+			};
+
+			aldo4 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3400000>;
+			};
+
+			dldo1 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3400000>;
+				regulator-boot-on;
+			};
+
+			dldo2 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3400000>;
+			};
+
+			dldo3 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3400000>;
+			};
+
+			dldo4 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3400000>;
+				regulator-always-on;
+			};
+
+			dldo5 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3400000>;
+			};
+
+			dldo6 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3400000>;
+				regulator-always-on;
+			};
+
+			dldo7 {
+				regulator-min-microvolt = <500000>;
+				regulator-max-microvolt = <3400000>;
+			};
+		};
+	};
+};
+
+&pcie1_phy {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pcie1_3_cfg>;
+	status = "okay";
+};
+
+&pcie1_port {
+	phys = <&pcie1_phy>;
+	vpcie3v3-supply = <&pcie_vcc_3v3>;
+};
+
+&pcie1 {
+	vpcie3v3-supply = <&pcie_vcc_3v3>;
+	status = "okay";
+};
+
+&pcie2_phy {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pcie2_4_cfg>;
+	status = "okay";
+};
+
+&pcie2_port {
+	phys = <&pcie2_phy>;
+	vpcie3v3-supply = <&pcie_vcc_3v3>;
+};
+
+&pcie2 {
+	vpcie3v3-supply = <&pcie_vcc_3v3>;
+	status = "okay";
+};
+
+&qspi {
+	pinctrl-names = "default";
+	pinctrl-0 = <&qspi_cfg>;
+	status = "okay";
+
+	flash@0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <26500000>;
+		spi-rx-bus-width = <4>;
+		spi-tx-bus-width = <4>;
+		vcc-supply = <&buck4_3v3>; /* QSPI_VCC1833 */
+		m25p,fast-read;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			bootinfo@0 {
+				reg = <0x0 0x10000>;
+			};
+			private@10000 {
+				reg = <0x10000 0x10000>;
+			};
+			fsbl@20000 {
+				reg = <0x20000 0x40000>;
+			};
+			env@60000 {
+				reg = <0x60000 0x10000>;
+			};
+			opensbi@70000 {
+				reg = <0x70000 0x30000>;
+			};
+			uboot@a0000 {
+				reg = <0xa0000 0x760000>;
+			};
+		};
+	};
+};
+
+&sdhci0 {
+	pinctrl-names = "default", "uhs";
+	pinctrl-0 = <&mmc1_cfg>;
+	pinctrl-1 = <&mmc1_uhs_cfg>;
+	bus-width = <4>;
+	cd-gpios = <&gpio K1_GPIO(80) (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
+	no-mmc;
+	no-sdio;
+	disable-wp;
+	cap-sd-highspeed;
+	vmmc-supply = <&buck4_3v3>;
+	vqmmc-supply = <&aldo1>;
+	sd-uhs-sdr25;
+	sd-uhs-sdr50;
+	sd-uhs-sdr104;
+	status = "okay";
+};
+
+&uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart0_2_cfg>;
+	status = "okay";
+};
+
+&usbphy2 {
+	status = "okay";
+};
+
+&usb_dwc3 {
+	dr_mode = "host";
+	#address-cells = <1>;
+	#size-cells = <0>;
+	status = "okay";
+
+	hub_2_0: hub@1 {
+		compatible = "usb2109,2817";
+		reg = <0x1>;
+		vdd-supply = <&usb3_hub_5v>;
+		peer-hub = <&hub_3_0>;
+		reset-gpios = <&gpio K1_GPIO(124) GPIO_ACTIVE_LOW>;
+	};
+
+	hub_3_0: hub@2 {
+		compatible = "usb2109,817";
+		reg = <0x2>;
+		vdd-supply = <&usb3_hub_5v>;
+		peer-hub = <&hub_2_0>;
+		reset-gpios = <&gpio K1_GPIO(124) GPIO_ACTIVE_LOW>;
+	};
+};
diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
index 3c16d0c20050e..9c4aa4f8a533c 100644
--- a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
+++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
@@ -1,471 +1,11 @@
 // SPDX-License-Identifier: GPL-2.0 OR MIT
 /*
- * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
- * Copyright (C) 2025 Javier Martinez Canillas <javierm@redhat.com>
+ * Copyright (C) 2026 Aurelien Jarno <aurelien@aurel32.net>
  */
 
-#include "k1.dtsi"
+#include "k1-milkv-jupiter-common.dtsi"
 #include "k1-opp.dtsi"
-#include "k1-pinctrl.dtsi"
 
 / {
 	model = "Milk-V Jupiter (K1)";
-	compatible = "milkv,jupiter", "spacemit,k1";
-
-	aliases {
-		ethernet0 = &eth0;
-		ethernet1 = &eth1;
-		i2c2 = &i2c2;
-		i2c8 = &i2c8;
-		mmc0 = &emmc;
-		mmc1 = &sdhci0;
-		serial0 = &uart0;
-	};
-
-	chosen {
-		stdout-path = "serial0:115200n8";
-	};
-
-	leds {
-		compatible = "gpio-leds";
-
-		led1 {
-			label = "pwr-led";
-			gpios = <&gpio K1_GPIO(96) GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "default-on";
-			default-state = "on";
-		};
-
-		led2 {
-			label = "hdd-led";
-			gpios = <&gpio K1_GPIO(92) GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "disk-activity";
-		};
-	};
-
-	pcie_vcc_3v3: regulator-pcie-vcc3v3 {
-		compatible = "regulator-fixed";
-		regulator-name = "pcie_vcc3v3";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		regulator-boot-on;
-		regulator-always-on;
-		vin-supply = <&reg_dc_in>;
-	};
-
-	reg_dc_in: regulator-dc-in-12v {
-		compatible = "regulator-fixed";
-		regulator-name = "dc_in_12v";
-		regulator-min-microvolt = <12000000>;
-		regulator-max-microvolt = <12000000>;
-		regulator-boot-on;
-		regulator-always-on;
-	};
-
-	reg_vcc_4v: regulator-vcc-4v {
-		compatible = "regulator-fixed";
-		regulator-name = "vcc_4v";
-		regulator-min-microvolt = <4000000>;
-		regulator-max-microvolt = <4000000>;
-		regulator-boot-on;
-		regulator-always-on;
-		vin-supply = <&reg_dc_in>;
-	};
-
-	reg_vcc_5v: regulator-vcc-5v {
-		compatible = "regulator-fixed";
-		regulator-name = "vcc_5v";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		regulator-boot-on;
-		regulator-always-on;
-		vin-supply = <&reg_dc_in>;
-	};
-
-	regulator-usb3-vbus-5v {
-		compatible = "regulator-fixed";
-		regulator-name = "USB30_VBUS";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		regulator-always-on;
-		vin-supply = <&reg_vcc_5v>;
-		gpio = <&gpio K1_GPIO(97) GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-	};
-
-	usb3_hub_5v: regulator-usb3-hub-5v {
-		compatible = "regulator-fixed";
-		regulator-name = "USB30_HUB";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		vin-supply = <&reg_vcc_5v>;
-		gpio = <&gpio K1_GPIO(123) GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-	};
-};
-
-&combo_phy {
-	status = "okay";
-};
-
-&cpu_0 {
-	cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_1 {
-	cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_2 {
-	cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_3 {
-	cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_4 {
-	cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_5 {
-	cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_6 {
-	cpu-supply = <&buck1_0v9>;
-};
-
-&cpu_7 {
-	cpu-supply = <&buck1_0v9>;
-};
-
-&emmc {
-	bus-width = <8>;
-	mmc-hs400-1_8v;
-	mmc-hs400-enhanced-strobe;
-	non-removable;
-	no-sd;
-	no-sdio;
-	status = "okay";
-};
-
-&eth0 {
-	phy-handle = <&rgmii0>;
-	phy-mode = "rgmii-id";
-	pinctrl-names = "default";
-	pinctrl-0 = <&gmac0_cfg>, <&gmac0_clk_ref_cfg>;
-	rx-internal-delay-ps = <0>;
-	tx-internal-delay-ps = <0>;
-	status = "okay";
-
-	mdio-bus {
-		#address-cells = <0x1>;
-		#size-cells = <0x0>;
-
-		reset-gpios = <&gpio K1_GPIO(110) GPIO_ACTIVE_LOW>;
-		reset-delay-us = <10000>;
-		reset-post-delay-us = <100000>;
-
-		rgmii0: phy@1 {
-			reg = <0x1>;
-		};
-	};
-};
-
-&eth1 {
-	phy-handle = <&rgmii1>;
-	phy-mode = "rgmii-id";
-	pinctrl-names = "default";
-	pinctrl-0 = <&gmac1_cfg>, <&gmac1_clk_ref_cfg>;
-	rx-internal-delay-ps = <0>;
-	tx-internal-delay-ps = <250>;
-	status = "okay";
-
-	mdio-bus {
-		#address-cells = <0x1>;
-		#size-cells = <0x0>;
-
-		reset-gpios = <&gpio K1_GPIO(115) GPIO_ACTIVE_LOW>;
-		reset-delay-us = <10000>;
-		reset-post-delay-us = <100000>;
-
-		rgmii1: phy@1 {
-			reg = <0x1>;
-		};
-	};
-};
-
-&pdma {
-	status = "okay";
-};
-
-&i2c2 {
-	pinctrl-0 = <&i2c2_0_cfg>;
-	pinctrl-names = "default";
-	status = "okay";
-
-	eeprom@50 {
-		compatible = "atmel,24c04";
-		reg = <0x50>;
-		vcc-supply = <&buck3_1v8>; /* EEPROM_VCC18 */
-		pagesize = <16>;
-		read-only;
-		size = <512>;
-
-		nvmem-layout {
-			compatible = "onie,tlv-layout";
-
-			product-name {
-			};
-		};
-	};
-};
-
-&i2c8 {
-	pinctrl-0 = <&i2c8_cfg>;
-	pinctrl-names = "default";
-	status = "okay";
-
-	pmic@41 {
-		compatible = "spacemit,p1";
-		reg = <0x41>;
-		interrupts = <64>;
-		vin1-supply = <&reg_vcc_4v>;
-		vin2-supply = <&reg_vcc_4v>;
-		vin3-supply = <&reg_vcc_4v>;
-		vin4-supply = <&reg_vcc_4v>;
-		vin5-supply = <&reg_vcc_4v>;
-		vin6-supply = <&reg_vcc_4v>;
-		aldoin-supply = <&reg_vcc_4v>;
-		dldoin1-supply = <&buck5>;
-		dldoin2-supply = <&buck5>;
-
-		regulators {
-			buck1_0v9: buck1 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3450000>;
-				regulator-ramp-delay = <5000>;
-				regulator-always-on;
-			};
-
-			buck2 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3450000>;
-				regulator-ramp-delay = <5000>;
-				regulator-always-on;
-			};
-
-			buck3_1v8: buck3 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <1800000>;
-				regulator-ramp-delay = <5000>;
-				regulator-always-on;
-			};
-
-			buck4_3v3: buck4 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3300000>;
-				regulator-ramp-delay = <5000>;
-				regulator-always-on;
-			};
-
-			buck5: buck5 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3450000>;
-				regulator-ramp-delay = <5000>;
-				regulator-always-on;
-			};
-
-			buck6 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3450000>;
-				regulator-ramp-delay = <5000>;
-				regulator-always-on;
-			};
-
-			aldo1: aldo1 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3400000>;
-				regulator-boot-on;
-			};
-
-			aldo2 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3400000>;
-			};
-
-			aldo3 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3400000>;
-			};
-
-			aldo4 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3400000>;
-			};
-
-			dldo1 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3400000>;
-				regulator-boot-on;
-			};
-
-			dldo2 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3400000>;
-			};
-
-			dldo3 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3400000>;
-			};
-
-			dldo4 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3400000>;
-				regulator-always-on;
-			};
-
-			dldo5 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3400000>;
-			};
-
-			dldo6 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3400000>;
-				regulator-always-on;
-			};
-
-			dldo7 {
-				regulator-min-microvolt = <500000>;
-				regulator-max-microvolt = <3400000>;
-			};
-		};
-	};
-};
-
-&pcie1_phy {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pcie1_3_cfg>;
-	status = "okay";
-};
-
-&pcie1_port {
-	phys = <&pcie1_phy>;
-	vpcie3v3-supply = <&pcie_vcc_3v3>;
-};
-
-&pcie1 {
-	vpcie3v3-supply = <&pcie_vcc_3v3>;
-	status = "okay";
-};
-
-&pcie2_phy {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pcie2_4_cfg>;
-	status = "okay";
-};
-
-&pcie2_port {
-	phys = <&pcie2_phy>;
-	vpcie3v3-supply = <&pcie_vcc_3v3>;
-};
-
-&pcie2 {
-	vpcie3v3-supply = <&pcie_vcc_3v3>;
-	status = "okay";
-};
-
-&qspi {
-	pinctrl-names = "default";
-	pinctrl-0 = <&qspi_cfg>;
-	status = "okay";
-
-	flash@0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-max-frequency = <26500000>;
-		spi-rx-bus-width = <4>;
-		spi-tx-bus-width = <4>;
-		vcc-supply = <&buck4_3v3>; /* QSPI_VCC1833 */
-		m25p,fast-read;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			bootinfo@0 {
-				reg = <0x0 0x10000>;
-			};
-			private@10000 {
-				reg = <0x10000 0x10000>;
-			};
-			fsbl@20000 {
-				reg = <0x20000 0x40000>;
-			};
-			env@60000 {
-				reg = <0x60000 0x10000>;
-			};
-			opensbi@70000 {
-				reg = <0x70000 0x30000>;
-			};
-			uboot@a0000 {
-				reg = <0xa0000 0x760000>;
-			};
-		};
-	};
-};
-
-&sdhci0 {
-	pinctrl-names = "default", "uhs";
-	pinctrl-0 = <&mmc1_cfg>;
-	pinctrl-1 = <&mmc1_uhs_cfg>;
-	bus-width = <4>;
-	cd-gpios = <&gpio K1_GPIO(80) (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
-	no-mmc;
-	no-sdio;
-	disable-wp;
-	cap-sd-highspeed;
-	vmmc-supply = <&buck4_3v3>;
-	vqmmc-supply = <&aldo1>;
-	sd-uhs-sdr25;
-	sd-uhs-sdr50;
-	sd-uhs-sdr104;
-	status = "okay";
-};
-
-&uart0 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart0_2_cfg>;
-	status = "okay";
-};
-
-&usbphy2 {
-	status = "okay";
-};
-
-&usb_dwc3 {
-	dr_mode = "host";
-	#address-cells = <1>;
-	#size-cells = <0>;
-	status = "okay";
-
-	hub_2_0: hub@1 {
-		compatible = "usb2109,2817";
-		reg = <0x1>;
-		vdd-supply = <&usb3_hub_5v>;
-		peer-hub = <&hub_3_0>;
-		reset-gpios = <&gpio K1_GPIO(124) GPIO_ACTIVE_LOW>;
-	};
-
-	hub_3_0: hub@2 {
-		compatible = "usb2109,817";
-		reg = <0x2>;
-		vdd-supply = <&usb3_hub_5v>;
-		peer-hub = <&hub_2_0>;
-		reset-gpios = <&gpio K1_GPIO(124) GPIO_ACTIVE_LOW>;
-	};
 };
-- 
2.53.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/3] riscv: dts: spacemit: Add Milk-V Jupiter board (M1)
  2026-07-28 21:05 [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Aurelien Jarno
  2026-07-28 21:05 ` [PATCH 1/3] " Aurelien Jarno
  2026-07-28 21:05 ` [PATCH 2/3] riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards Aurelien Jarno
@ 2026-07-28 21:05 ` Aurelien Jarno
       [not found]   ` <20260728212841.4C3E41F000E9@smtp.kernel.org>
  2026-07-29  1:32 ` [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Yixun Lan
  3 siblings, 1 reply; 12+ messages in thread
From: Aurelien Jarno @ 2026-07-28 21:05 UTC (permalink / raw)
  To: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Yixun Lan, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Alexandre Ghiti
  Cc: Aurelien Jarno,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list:RISC-V ARCHITECTURE,
	open list:RISC-V SPACEMIT SoC Support

Add support for the Milk-V Jupiter board with the M1 CPU. The M1 differs
from the K1 only by its package, which provides improved cooling
performance and allows it to run at up to 1.8 GHz instead of 1.6 GHz.

Add m1-opp.dtsi to define the 1.8 GHz operating point and the
corresponding core voltage, based on the upstream kernel. Include it
from m1-milkv-jupiter.dts.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 arch/riscv/boot/dts/spacemit/Makefile         |   1 +
 .../boot/dts/spacemit/m1-milkv-jupiter.dts    |  11 ++
 arch/riscv/boot/dts/spacemit/m1-opp.dtsi      | 117 ++++++++++++++++++
 3 files changed, 129 insertions(+)
 create mode 100644 arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
 create mode 100644 arch/riscv/boot/dts/spacemit/m1-opp.dtsi

diff --git a/arch/riscv/boot/dts/spacemit/Makefile b/arch/riscv/boot/dts/spacemit/Makefile
index 851b701e5da48..c5c38c17b6ced 100644
--- a/arch/riscv/boot/dts/spacemit/Makefile
+++ b/arch/riscv/boot/dts/spacemit/Makefile
@@ -8,3 +8,4 @@ dtb-$(CONFIG_ARCH_SPACEMIT) += k1-orangepi-rv2.dtb
 dtb-$(CONFIG_ARCH_SPACEMIT) += k3-com260-ifx.dtb
 dtb-$(CONFIG_ARCH_SPACEMIT) += k3-deepcomputing-fml13v05.dtb
 dtb-$(CONFIG_ARCH_SPACEMIT) += k3-pico-itx.dtb
+dtb-$(CONFIG_ARCH_SPACEMIT) += m1-milkv-jupiter.dtb
diff --git a/arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
new file mode 100644
index 0000000000000..32e1468385ca0
--- /dev/null
+++ b/arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2026 Aurelien Jarno <aurelien@aurel32.net>
+ */
+
+#include "k1-milkv-jupiter-common.dtsi"
+#include "m1-opp.dtsi"
+
+/ {
+	model = "Milk-V Jupiter (M1)";
+};
diff --git a/arch/riscv/boot/dts/spacemit/m1-opp.dtsi b/arch/riscv/boot/dts/spacemit/m1-opp.dtsi
new file mode 100644
index 0000000000000..38e0ce7765a2b
--- /dev/null
+++ b/arch/riscv/boot/dts/spacemit/m1-opp.dtsi
@@ -0,0 +1,117 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/ {
+	cluster0_opp_table: opp-table-cluster0 {
+		compatible = "operating-points-v2";
+		opp-shared;
+
+		opp-614400000 {
+			opp-hz = /bits/ 64 <614400000>;
+			opp-microvolt = <950000 950000 1160000>;
+			clock-latency-ns = <200000>;
+		};
+
+		opp-819000000 {
+			opp-hz = /bits/ 64 <819000000>;
+			opp-microvolt = <950000 950000 1160000>;
+			clock-latency-ns = <200000>;
+		};
+
+		opp-1000000000 {
+			opp-hz = /bits/ 64 <1000000000>;
+			opp-microvolt = <950000 950000 1160000>;
+			clock-latency-ns = <200000>;
+		};
+
+		opp-1228800000 {
+			opp-hz = /bits/ 64 <1228800000>;
+			opp-microvolt = <950000 950000 1160000>;
+			clock-latency-ns = <200000>;
+		};
+
+		opp-1600000000 {
+			opp-hz = /bits/ 64 <1600000000>;
+			opp-microvolt = <1050000 1050000 1160000>;
+			clock-latency-ns = <200000>;
+		};
+
+		opp-1800000000 {
+			opp-hz = /bits/ 64 <1800000000>;
+			opp-microvolt = <1160000 1160000 1160000>;
+			clock-latency-ns = <200000>;
+		};
+	};
+
+	cluster1_opp_table: opp-table-cluster1 {
+		compatible = "operating-points-v2";
+		opp-shared;
+
+		opp-614400000 {
+			opp-hz = /bits/ 64 <614400000>;
+			opp-microvolt = <950000 950000 1160000>;
+			clock-latency-ns = <200000>;
+		};
+
+		opp-819000000 {
+			opp-hz = /bits/ 64 <819000000>;
+			opp-microvolt = <950000 950000 1160000>;
+			clock-latency-ns = <200000>;
+		};
+
+		opp-1000000000 {
+			opp-hz = /bits/ 64 <1000000000>;
+			opp-microvolt = <950000 950000 1160000>;
+			clock-latency-ns = <200000>;
+		};
+
+		opp-1228800000 {
+			opp-hz = /bits/ 64 <1228800000>;
+			opp-microvolt = <950000 950000 1160000>;
+			clock-latency-ns = <200000>;
+		};
+
+		opp-1600000000 {
+			opp-hz = /bits/ 64 <1600000000>;
+			opp-microvolt = <1050000 1050000 1160000>;
+			clock-latency-ns = <200000>;
+		};
+
+		opp-1800000000 {
+			opp-hz = /bits/ 64 <1800000000>;
+			opp-microvolt = <1160000 1160000 1160000>;
+			clock-latency-ns = <200000>;
+		};
+	};
+};
+
+&cpu_0 {
+	operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_1 {
+	operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_2 {
+	operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_3 {
+	operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_4 {
+	operating-points-v2 = <&cluster1_opp_table>;
+};
+
+&cpu_5 {
+	operating-points-v2 = <&cluster1_opp_table>;
+};
+
+&cpu_6 {
+	operating-points-v2 = <&cluster1_opp_table>;
+};
+
+&cpu_7 {
+	operating-points-v2 = <&cluster1_opp_table>;
+};
-- 
2.53.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
  2026-07-28 21:05 [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Aurelien Jarno
                   ` (2 preceding siblings ...)
  2026-07-28 21:05 ` [PATCH 3/3] riscv: dts: spacemit: Add Milk-V Jupiter board (M1) Aurelien Jarno
@ 2026-07-29  1:32 ` Yixun Lan
  2026-07-29  9:34   ` Aurelien Jarno
  3 siblings, 1 reply; 12+ messages in thread
From: Yixun Lan @ 2026-07-29  1:32 UTC (permalink / raw)
  To: Aurelien Jarno
  Cc: linux-kernel, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Alexandre Ghiti, open list:RISC-V ARCHITECTURE:Keyword:riscv,
	open list:RISC-V SPACEMIT SoC Support:Keyword:spacemit

Hi Aurelien,

On 23:05 Tue 28 Jul     , Aurelien Jarno wrote:
> This series adds cpu scaling support for the Milk-V Jupiter boards.
> 
> The first commit adds it to the existing "Milk-V Jupiter (K1)" board.
> 
> The two following commits add a "Milk-V Jupiter (M1)" board, by moving
> the common part, i.e. everything but the model name and the operating
> point tables, in a shared DTSI file. This file is then included for both
> K1 and M1 variants.
> 
> CPU frequency scaling was verified up to 1.8 GHz on the M1 board.
> 
Looks good to me, will queue for v7.3, thanks

Reviewed-by: Yixun Lan <dlan@kernel.org>

> Aurelien Jarno (3):
>   riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
>   riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter
>     boards
>   riscv: dts: spacemit: Add Milk-V Jupiter board (M1)
> 
>  arch/riscv/boot/dts/spacemit/Makefile         |   1 +
>  .../dts/spacemit/k1-milkv-jupiter-common.dtsi | 469 ++++++++++++++++++
>  .../boot/dts/spacemit/k1-milkv-jupiter.dts    | 433 +---------------
>  .../boot/dts/spacemit/m1-milkv-jupiter.dts    |  11 +
>  arch/riscv/boot/dts/spacemit/m1-opp.dtsi      | 117 +++++
>  5 files changed, 601 insertions(+), 430 deletions(-)
>  create mode 100644 arch/riscv/boot/dts/spacemit/k1-milkv-jupiter-common.dtsi
>  create mode 100644 arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
>  create mode 100644 arch/riscv/boot/dts/spacemit/m1-opp.dtsi
> 
> -- 
> 2.53.0
> 

-- 
Yixun Lan (dlan)

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
  2026-07-29  1:32 ` [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Yixun Lan
@ 2026-07-29  9:34   ` Aurelien Jarno
  2026-07-29  9:43     ` Yixun Lan
  0 siblings, 1 reply; 12+ messages in thread
From: Aurelien Jarno @ 2026-07-29  9:34 UTC (permalink / raw)
  To: Yixun Lan
  Cc: linux-kernel, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Alexandre Ghiti, open list:RISC-V ARCHITECTURE:Keyword:riscv,
	open list:RISC-V SPACEMIT SoC Support:Keyword:spacemit

Hi Yixun,

On 2026-07-29 01:32, Yixun Lan wrote:
> Hi Aurelien,
> 
> On 23:05 Tue 28 Jul     , Aurelien Jarno wrote:
> > This series adds cpu scaling support for the Milk-V Jupiter boards.
> > 
> > The first commit adds it to the existing "Milk-V Jupiter (K1)" board.
> > 
> > The two following commits add a "Milk-V Jupiter (M1)" board, by moving
> > the common part, i.e. everything but the model name and the operating
> > point tables, in a shared DTSI file. This file is then included for both
> > K1 and M1 variants.
> > 
> > CPU frequency scaling was verified up to 1.8 GHz on the M1 board.
> > 
> Looks good to me, will queue for v7.3, thanks
> 
> Reviewed-by: Yixun Lan <dlan@kernel.org>

Thanks for the review. Unfortunately Sashiko pointed out issues in those 
patch series, including preexisting high severity issue that also affect 
the BPI-F3. I'll reply to the individual patches.

Regards
Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                     http://aurel32.net

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
       [not found]   ` <20260728211959.4174F1F000E9@smtp.kernel.org>
@ 2026-07-29  9:36     ` Aurelien Jarno
  2026-07-29  9:54       ` Yixun Lan
  0 siblings, 1 reply; 12+ messages in thread
From: Aurelien Jarno @ 2026-07-29  9:36 UTC (permalink / raw)
  To: sashiko-reviews, linux-kernel, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Alexandre Ghiti, Yixun Lan, Shuwei Wu
  Cc: Aurelien Jarno,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list:RISC-V SPACEMIT SoC Support,
	open list:RISC-V SPACEMIT SoC Support

Hi,

On 2026-07-28 21:19, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> 
> Pre-existing issues:
> - [High] This problem wasn't introduced by this patch, but wiring it up to cpufreq makes it a serious hardware safety risk: the CPU supply regulator (`buck1_0v9`) has an overly permissive maximum voltage constraint of 3.45V, which could physically damage the CPU.
> --
> 
> --- Patch [1]: [PATCH 1/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter ---
> commit 4e25fb96470d1ad37415e03a27de699ef1f0da26
> Author: Aurelien Jarno <aurelien@aurel32.net>
> 
> riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
> 
> This commit enables CPU DVFS on the Milk-V Jupiter board by including the OPP
> tables and wiring the CPU nodes to the CPU regulator supply.
> 
> > diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > index b61f5995ec771..3c16d0c20050e 100644
> > --- a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > +++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> [ ... ]
> > @@ -107,6 +108,38 @@ &combo_phy {
> >  	status = "okay";
> >  };
> >  
> > +&cpu_0 {
> > +	cpu-supply = <&buck1_0v9>;
> > +};
> [ ... ]
> > @@ -209,7 +242,7 @@ pmic@41 {
> >  		dldoin2-supply = <&buck5>;
> >  
> >  		regulators {
> > -			buck1 {
> > +			buck1_0v9: buck1 {
> >  				regulator-min-microvolt = <500000>;
> >  				regulator-max-microvolt = <3450000>;
> 
> [Severity: High]
> This is a pre-existing issue, but by wiring up the CPU supply for cpufreq in 
> this patch, does it introduce a severe hardware safety risk?
> 
> The buck1_0v9 regulator retains a very permissive maximum voltage constraint 
> of 3.45V. Because the safe physical limit for the CPU is 1.05V (as defined in 
> k1-opp.dtsi), could this permanently damage the hardware if a kernel bug, opp 
> misconfiguration, or privileged userspace requests a higher voltage up to the 
> board-defined maximum?
> 
> Should the board-level constraint be clamped to the safe physical limits of 
> the CPU (e.g., 1050000 microvolts) to prevent the regulator from supplying a 
> destructive voltage?

This looks like a valid point. Yixun, I believe the commit a5d7000e1a17 
("riscv: dts: spacemit: Add cpu scaling for K1 SoC") should be drop from 
your tree until this is fixed, or at least it should not be pushed to 
v7.3 if the regulator issue is not fixed.

I'll try to submit a patchset fixing that.

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                     http://aurel32.net

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/3] riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards
       [not found]   ` <20260728212345.A0CFE1F000E9@smtp.kernel.org>
@ 2026-07-29  9:37     ` Aurelien Jarno
  0 siblings, 0 replies; 12+ messages in thread
From: Aurelien Jarno @ 2026-07-29  9:37 UTC (permalink / raw)
  To: sashiko-reviews, linux-kernel, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Alexandre Ghiti, Yixun Lan
  Cc: Aurelien Jarno,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list:RISC-V SPACEMIT SoC Support,
	open list:RISC-V SPACEMIT SoC Support

On 2026-07-28 21:23, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Low] The patch incorrectly removes the original authors' copyright headers from k1-milkv-jupiter.dts and replaces them with a single copyright claim by the patch author.
> --
> 
> --- Patch [2]: [PATCH 2/3] riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards ---
> commit 97e4c73a96036da2bf4f3762abb7b076f18d6748
> Author: Aurelien Jarno <aurelien@aurel32.net>
> 
> riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards
>     
> This commit adds a common board dtsi file for the Milk-V Jupiter board
> variants. It factors out common configurations into the new dtsi while
> excluding CPU operating points, which are left for the specific board files.
> 
> [ ... ]
> > diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > index 3c16d0c20050e..9c4aa4f8a533c 100644
> > --- a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > +++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > @@ -1,471 +1,11 @@
> >  // SPDX-License-Identifier: GPL-2.0 OR MIT
> >  /*
> > - * Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
> > - * Copyright (C) 2025 Javier Martinez Canillas <javierm@redhat.com>
> > + * Copyright (C) 2026 Aurelien Jarno <aurelien@aurel32.net>
> >   */
> 
> [Severity: Low]
> This isn't a bug, but should the original authors' copyright headers be
> retained here?
> 
> While the original copyright headers were correctly preserved in the newly
> created k1-milkv-jupiter-common.dtsi file where the bulk of the code was
> moved, standard practice is to retain the original attribution in the
> existing file as well, alongside any new copyright claims.

Thanks for the hint, I'll fix that in the next version.

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                     http://aurel32.net

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/3] riscv: dts: spacemit: Add Milk-V Jupiter board (M1)
       [not found]   ` <20260728212841.4C3E41F000E9@smtp.kernel.org>
@ 2026-07-29  9:40     ` Aurelien Jarno
  0 siblings, 0 replies; 12+ messages in thread
From: Aurelien Jarno @ 2026-07-29  9:40 UTC (permalink / raw)
  To: sashiko-reviews, linux-kernel, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Alexandre Ghiti, Yixun Lan
  Cc: Aurelien Jarno,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list:RISC-V SPACEMIT SoC Support,
	open list:RISC-V SPACEMIT SoC Support

On 2026-07-28 21:28, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] Missing unique board-specific `compatible` string for the M1 Jupiter board variant, which inherits the identical compatible string as the K1 variant and breaks DTB matching.
> --
> 
> --- Patch [3]: [PATCH 3/3] riscv: dts: spacemit: Add Milk-V Jupiter board (M1) ---
> commit 2d54397a3a4baaa8a2eee569d6fe3f912a3c7661
> Author: Aurelien Jarno <aurelien@aurel32.net>
> 
> riscv: dts: spacemit: Add Milk-V Jupiter board (M1)
>     
> This commit adds support for the Milk-V Jupiter board with the M1 CPU.
> The M1 is similar to the K1 but allows running at up to 1.8 GHz, adding
> a new device tree and an OPP table for this higher frequency.
> 
> > diff --git a/arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
> > new file mode 100644
> > index 0000000000000..32e1468385ca0
> > --- /dev/null
> > +++ b/arch/riscv/boot/dts/spacemit/m1-milkv-jupiter.dts
> > @@ -0,0 +1,11 @@
> > +// SPDX-License-Identifier: GPL-2.0 OR MIT
> > +/*
> > + * Copyright (C) 2026 Aurelien Jarno <aurelien@aurel32.net>
> > + */
> > +
> > +#include "k1-milkv-jupiter-common.dtsi"
> > +#include "m1-opp.dtsi"
> > +
> > +/ {
> > +	model = "Milk-V Jupiter (M1)";
> 
> [Severity: Medium]
> Since m1-milkv-jupiter.dts includes k1-milkv-jupiter-common.dtsi, does this
> board inherit the identical root compatible string as the K1 variant?
> 
> If a bootloader like U-Boot uses a FIT image containing both DTBs, it relies
> on the root compatible string to select the correct one. If they are
> identical, could the bootloader mistakenly apply this M1 DTB to a K1 board?
> 
> If that happens, would the K1 board be allowed to run at the 1.8 GHz
> operating point defined here, potentially causing instability or hardware
> damage since it is only rated for 1.6 GHz? 
> 
> Should a unique board-specific compatible string be added to this root node
> to uniquely identify the M1 board hardware?
> 
> > +};

That's a valid point, I'll fix that in the next version. I believe we 
want to keep the spacemit,k1 compatible even with the m1, as the 
difference is rather a property of the board and not the SoC.

What could be the compatible for the board? "milkv,jupiter-m1"? Maybe 
the existing board should have been called "milkv,jupiter-k1"...

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                     http://aurel32.net

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
  2026-07-29  9:34   ` Aurelien Jarno
@ 2026-07-29  9:43     ` Yixun Lan
  2026-07-29 15:16       ` Aurelien Jarno
  0 siblings, 1 reply; 12+ messages in thread
From: Yixun Lan @ 2026-07-29  9:43 UTC (permalink / raw)
  To: linux-kernel, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Alexandre Ghiti, open list:RISC-V ARCHITECTURE:Keyword:riscv,
	open list:RISC-V SPACEMIT SoC Support:Keyword:spacemit

Hi Aurelien,

On 11:34 Wed 29 Jul     , Aurelien Jarno wrote:
> Hi Yixun,
> 
> On 2026-07-29 01:32, Yixun Lan wrote:
> > Hi Aurelien,
> > 
> > On 23:05 Tue 28 Jul     , Aurelien Jarno wrote:
> > > This series adds cpu scaling support for the Milk-V Jupiter boards.
> > > 
> > > The first commit adds it to the existing "Milk-V Jupiter (K1)" board.
> > > 
> > > The two following commits add a "Milk-V Jupiter (M1)" board, by moving
> > > the common part, i.e. everything but the model name and the operating
> > > point tables, in a shared DTSI file. This file is then included for both
> > > K1 and M1 variants.
> > > 
> > > CPU frequency scaling was verified up to 1.8 GHz on the M1 board.
> > > 
> > Looks good to me, will queue for v7.3, thanks
> > 
> > Reviewed-by: Yixun Lan <dlan@kernel.org>
> 
> Thanks for the review. Unfortunately Sashiko pointed out issues in those 
> patch series, including preexisting high severity issue that also affect 
> the BPI-F3. I'll reply to the individual patches.
> 
No problem, I can wait for your v2 series, but may postpone to next merge
window due to time constraints..

-- 
Yixun Lan (dlan)

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
  2026-07-29  9:36     ` Aurelien Jarno
@ 2026-07-29  9:54       ` Yixun Lan
  0 siblings, 0 replies; 12+ messages in thread
From: Yixun Lan @ 2026-07-29  9:54 UTC (permalink / raw)
  To: sashiko-reviews, linux-kernel, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Alexandre Ghiti, Shuwei Wu,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list:RISC-V SPACEMIT SoC Support,
	open list:RISC-V SPACEMIT SoC Support

Hi Aurelien,

On 11:36 Wed 29 Jul     , Aurelien Jarno wrote:
> Hi,
> 
> On 2026-07-28 21:19, sashiko-bot@kernel.org wrote:
> > Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> > 
> > Pre-existing issues:
> > - [High] This problem wasn't introduced by this patch, but wiring it up to cpufreq makes it a serious hardware safety risk: the CPU supply regulator (`buck1_0v9`) has an overly permissive maximum voltage constraint of 3.45V, which could physically damage the CPU.
> > --
> > 
> > --- Patch [1]: [PATCH 1/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter ---
> > commit 4e25fb96470d1ad37415e03a27de699ef1f0da26
> > Author: Aurelien Jarno <aurelien@aurel32.net>
> > 
> > riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
> > 
> > This commit enables CPU DVFS on the Milk-V Jupiter board by including the OPP
> > tables and wiring the CPU nodes to the CPU regulator supply.
> > 
> > > diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > > index b61f5995ec771..3c16d0c20050e 100644
> > > --- a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > > +++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts
> > [ ... ]
> > > @@ -107,6 +108,38 @@ &combo_phy {
> > >  	status = "okay";
> > >  };
> > >  
> > > +&cpu_0 {
> > > +	cpu-supply = <&buck1_0v9>;
> > > +};
> > [ ... ]
> > > @@ -209,7 +242,7 @@ pmic@41 {
> > >  		dldoin2-supply = <&buck5>;
> > >  
> > >  		regulators {
> > > -			buck1 {
> > > +			buck1_0v9: buck1 {
> > >  				regulator-min-microvolt = <500000>;
> > >  				regulator-max-microvolt = <3450000>;
> > 
> > [Severity: High]
> > This is a pre-existing issue, but by wiring up the CPU supply for cpufreq in 
> > this patch, does it introduce a severe hardware safety risk?
> > 
> > The buck1_0v9 regulator retains a very permissive maximum voltage constraint 
> > of 3.45V. Because the safe physical limit for the CPU is 1.05V (as defined in 
> > k1-opp.dtsi), could this permanently damage the hardware if a kernel bug, opp 
> > misconfiguration, or privileged userspace requests a higher voltage up to the 
> > board-defined maximum?
> > 
> > Should the board-level constraint be clamped to the safe physical limits of 
> > the CPU (e.g., 1050000 microvolts) to prevent the regulator from supplying a 
> > destructive voltage?
> 
> This looks like a valid point. Yixun, I believe the commit a5d7000e1a17 
> ("riscv: dts: spacemit: Add cpu scaling for K1 SoC") should be drop from 
> your tree until this is fixed, or at least it should not be pushed to 
> v7.3 if the regulator issue is not fixed.
> 
Instead of dropping this patch, I'd like to get it fixed in tree, I don't want
to hold on this patch, it's generally tested

> I'll try to submit a patchset fixing that.
> 
Yes, please, I think we still have time to get it in for v7.3

-- 
Yixun Lan (dlan)

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
  2026-07-29  9:43     ` Yixun Lan
@ 2026-07-29 15:16       ` Aurelien Jarno
  0 siblings, 0 replies; 12+ messages in thread
From: Aurelien Jarno @ 2026-07-29 15:16 UTC (permalink / raw)
  To: Yixun Lan
  Cc: linux-kernel, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Alexandre Ghiti, open list:RISC-V ARCHITECTURE:Keyword:riscv,
	open list:RISC-V SPACEMIT SoC Support:Keyword:spacemit

Hi Yixun,

On 2026-07-29 09:43, Yixun Lan wrote:
> Hi Aurelien,
> 
> On 11:34 Wed 29 Jul     , Aurelien Jarno wrote:
> > Hi Yixun,
> > 
> > On 2026-07-29 01:32, Yixun Lan wrote:
> > > Hi Aurelien,
> > > 
> > > On 23:05 Tue 28 Jul     , Aurelien Jarno wrote:
> > > > This series adds cpu scaling support for the Milk-V Jupiter boards.
> > > > 
> > > > The first commit adds it to the existing "Milk-V Jupiter (K1)" board.
> > > > 
> > > > The two following commits add a "Milk-V Jupiter (M1)" board, by moving
> > > > the common part, i.e. everything but the model name and the operating
> > > > point tables, in a shared DTSI file. This file is then included for both
> > > > K1 and M1 variants.
> > > > 
> > > > CPU frequency scaling was verified up to 1.8 GHz on the M1 board.
> > > > 
> > > Looks good to me, will queue for v7.3, thanks
> > > 
> > > Reviewed-by: Yixun Lan <dlan@kernel.org>
> > 
> > Thanks for the review. Unfortunately Sashiko pointed out issues in those 
> > patch series, including preexisting high severity issue that also affect 
> > the BPI-F3. I'll reply to the individual patches.
> > 
> No problem, I can wait for your v2 series, but may postpone to next merge
> window due to time constraints..

Yes, that's understandable. I have just posted a series posting the fix 
for all K1 boards [1]. Once it is applied the patch 1 ("riscv: dts: 
spacemit: Add cpu scaling for Milk-V Jupiter") can be applied.

Other patches definitely need a v2, I'll work on it, but it may take a 
bit more time.

Regards
Aurelien

[1] https://lore.kernel.org/spacemit/20260729150722.1598630-1-aurelien@aurel32.net/T/#t

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                     http://aurel32.net

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-07-29 15:16 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-28 21:05 [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Aurelien Jarno
2026-07-28 21:05 ` [PATCH 1/3] " Aurelien Jarno
     [not found]   ` <20260728211959.4174F1F000E9@smtp.kernel.org>
2026-07-29  9:36     ` Aurelien Jarno
2026-07-29  9:54       ` Yixun Lan
2026-07-28 21:05 ` [PATCH 2/3] riscv: dts: spacemit: Add a common board dtsi for Milk-V Jupiter boards Aurelien Jarno
     [not found]   ` <20260728212345.A0CFE1F000E9@smtp.kernel.org>
2026-07-29  9:37     ` Aurelien Jarno
2026-07-28 21:05 ` [PATCH 3/3] riscv: dts: spacemit: Add Milk-V Jupiter board (M1) Aurelien Jarno
     [not found]   ` <20260728212841.4C3E41F000E9@smtp.kernel.org>
2026-07-29  9:40     ` Aurelien Jarno
2026-07-29  1:32 ` [PATCH 0/3] riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter Yixun Lan
2026-07-29  9:34   ` Aurelien Jarno
2026-07-29  9:43     ` Yixun Lan
2026-07-29 15:16       ` Aurelien Jarno

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox