All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arm64: dts: rockchip: Add the GPU to Kobol Helios64
@ 2026-10-10 21:53 ` Igor Velkov via B4 Relay
  0 siblings, 0 replies; 5+ messages in thread
From: Igor Velkov via B4 Relay @ 2026-10-10 21:53 UTC (permalink / raw)
  To: Heiko Stuebner
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel, Igor Velkov

From: Igor Velkov <iav@iav.lv>

The GPU core of Helios64 is supplied by U12, a Silergy SYR838 on i2c0
at 0x41, with its VSEL pin on GPU_SLEEP_H (GPIO1_B6). Describe it as
silergy,syr828, the way vdd_cpu_b (a SYR837) is described as
silergy,syr827, and enable the GPU.

Assisted-by: LLM
Signed-off-by: Igor Velkov <iav@iav.lv>
---
Schematic, sheet 7:
https://wiki.kobol.io/helios64/files/schematics/Helios64_Schematics_Rev1.2.pdf

Tested on mainline: panfrost probes, devfreq moves vdd_gpu from 825 mV
at 200 MHz to 1100 mV at 800 MHz, glmark2-es2-wayland under headless
weston scores 548-577 in three runs. Two of them logged one panfrost
job timeout each; the Armbian DT gave none in three runs.
---
 .../boot/dts/rockchip/rk3399-kobol-helios64.dts    | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
index 63ad79b4c8ac..1f50982291bf 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
@@ -339,6 +339,11 @@ &gmac {
 	status = "okay";
 };
 
+&gpu {
+	mali-supply = <&vdd_gpu>;
+	status = "okay";
+};
+
 &i2c0 {
 	clock-frequency = <400000>;
 	i2c-scl-rising-time-ns = <168>;
@@ -453,6 +458,25 @@ regulator-state-mem {
 			regulator-off-in-suspend;
 		};
 	};
+
+	vdd_gpu: regulator@41 {
+		compatible = "silergy,syr828";
+		reg = <0x41>;
+		fcs,suspend-voltage-selector = <1>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&vsel2_pin>;
+		regulator-name = "vdd_gpu";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <712500>;
+		regulator-max-microvolt = <1500000>;
+		regulator-ramp-delay = <1000>;
+		vin-supply = <&vcc5v0_sys>;
+
+		regulator-state-mem {
+			regulator-off-in-suspend;
+		};
+	};
 };
 
 &i2c2 {
@@ -538,6 +562,10 @@ pmic {
 		pmic_int_l: pmic-int-l {
 			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
+
+		vsel2_pin: vsel2-pin {
+			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
+		};
 	};
 
 	power {

---
base-commit: d2abcbb905b0e4b2e06b257fa1e5bcf4faa6dbda
change-id: 20261010-b4-helios64-gpu-28f4393ebe57

Best regards,
-- 
Igor Velkov <iav@iav.lv>



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

* [PATCH] arm64: dts: rockchip: Add the GPU to Kobol Helios64
@ 2026-10-10 21:53 ` Igor Velkov via B4 Relay
  0 siblings, 0 replies; 5+ messages in thread
From: Igor Velkov via B4 Relay @ 2026-10-10 21:53 UTC (permalink / raw)
  To: Heiko Stuebner
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel, Igor Velkov

From: Igor Velkov <iav@iav.lv>

The GPU core of Helios64 is supplied by U12, a Silergy SYR838 on i2c0
at 0x41, with its VSEL pin on GPU_SLEEP_H (GPIO1_B6). Describe it as
silergy,syr828, the way vdd_cpu_b (a SYR837) is described as
silergy,syr827, and enable the GPU.

Assisted-by: LLM
Signed-off-by: Igor Velkov <iav@iav.lv>
---
Schematic, sheet 7:
https://wiki.kobol.io/helios64/files/schematics/Helios64_Schematics_Rev1.2.pdf

Tested on mainline: panfrost probes, devfreq moves vdd_gpu from 825 mV
at 200 MHz to 1100 mV at 800 MHz, glmark2-es2-wayland under headless
weston scores 548-577 in three runs. Two of them logged one panfrost
job timeout each; the Armbian DT gave none in three runs.
---
 .../boot/dts/rockchip/rk3399-kobol-helios64.dts    | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
index 63ad79b4c8ac..1f50982291bf 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
@@ -339,6 +339,11 @@ &gmac {
 	status = "okay";
 };
 
+&gpu {
+	mali-supply = <&vdd_gpu>;
+	status = "okay";
+};
+
 &i2c0 {
 	clock-frequency = <400000>;
 	i2c-scl-rising-time-ns = <168>;
@@ -453,6 +458,25 @@ regulator-state-mem {
 			regulator-off-in-suspend;
 		};
 	};
+
+	vdd_gpu: regulator@41 {
+		compatible = "silergy,syr828";
+		reg = <0x41>;
+		fcs,suspend-voltage-selector = <1>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&vsel2_pin>;
+		regulator-name = "vdd_gpu";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <712500>;
+		regulator-max-microvolt = <1500000>;
+		regulator-ramp-delay = <1000>;
+		vin-supply = <&vcc5v0_sys>;
+
+		regulator-state-mem {
+			regulator-off-in-suspend;
+		};
+	};
 };
 
 &i2c2 {
@@ -538,6 +562,10 @@ pmic {
 		pmic_int_l: pmic-int-l {
 			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
+
+		vsel2_pin: vsel2-pin {
+			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
+		};
 	};
 
 	power {

---
base-commit: d2abcbb905b0e4b2e06b257fa1e5bcf4faa6dbda
change-id: 20261010-b4-helios64-gpu-28f4393ebe57

Best regards,
-- 
Igor Velkov <iav@iav.lv>



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

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

* [PATCH] arm64: dts: rockchip: Add the GPU to Kobol Helios64
@ 2026-10-10 21:53 ` Igor Velkov via B4 Relay
  0 siblings, 0 replies; 5+ messages in thread
From: Igor Velkov @ 2026-10-10 21:53 UTC (permalink / raw)
  To: Heiko Stuebner
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel, Igor Velkov

The GPU core of Helios64 is supplied by U12, a Silergy SYR838 on i2c0
at 0x41, with its VSEL pin on GPU_SLEEP_H (GPIO1_B6). Describe it as
silergy,syr828, the way vdd_cpu_b (a SYR837) is described as
silergy,syr827, and enable the GPU.

Assisted-by: LLM
Signed-off-by: Igor Velkov <iav@iav.lv>
---
Schematic, sheet 7:
https://wiki.kobol.io/helios64/files/schematics/Helios64_Schematics_Rev1.2.pdf

Tested on mainline: panfrost probes, devfreq moves vdd_gpu from 825 mV
at 200 MHz to 1100 mV at 800 MHz, glmark2-es2-wayland under headless
weston scores 548-577 in three runs. Two of them logged one panfrost
job timeout each; the Armbian DT gave none in three runs.
---
 .../boot/dts/rockchip/rk3399-kobol-helios64.dts    | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
index 63ad79b4c8ac..1f50982291bf 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
@@ -339,6 +339,11 @@ &gmac {
 	status = "okay";
 };
 
+&gpu {
+	mali-supply = <&vdd_gpu>;
+	status = "okay";
+};
+
 &i2c0 {
 	clock-frequency = <400000>;
 	i2c-scl-rising-time-ns = <168>;
@@ -453,6 +458,25 @@ regulator-state-mem {
 			regulator-off-in-suspend;
 		};
 	};
+
+	vdd_gpu: regulator@41 {
+		compatible = "silergy,syr828";
+		reg = <0x41>;
+		fcs,suspend-voltage-selector = <1>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&vsel2_pin>;
+		regulator-name = "vdd_gpu";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <712500>;
+		regulator-max-microvolt = <1500000>;
+		regulator-ramp-delay = <1000>;
+		vin-supply = <&vcc5v0_sys>;
+
+		regulator-state-mem {
+			regulator-off-in-suspend;
+		};
+	};
 };
 
 &i2c2 {
@@ -538,6 +562,10 @@ pmic {
 		pmic_int_l: pmic-int-l {
 			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
+
+		vsel2_pin: vsel2-pin {
+			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
+		};
 	};
 
 	power {

---
base-commit: d2abcbb905b0e4b2e06b257fa1e5bcf4faa6dbda
change-id: 20261010-b4-helios64-gpu-28f4393ebe57

Best regards,
-- 
Igor Velkov <iav@iav.lv>


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

* Re: [PATCH] arm64: dts: rockchip: Add the GPU to Kobol Helios64
  2026-10-10 21:53 ` Igor Velkov via B4 Relay
  (?)
  (?)
@ 2026-10-10 22:08 ` sashiko-bot
  2026-10-10 22:49   ` Igor Velkov
  -1 siblings, 1 reply; 5+ messages in thread
From: sashiko-bot @ 2026-10-10 22:08 UTC (permalink / raw)
  To: Igor Velkov; +Cc: robh, conor+dt, devicetree

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] arm64: dts: rockchip: missing regulator-initial-mode for vdd_gpu causes panfrost timeouts
--

commit e9e84838a5d23aecac47c2c16bd51c1be53464af
Author: Igor Velkov <iav@iav.lv>

arm64: dts: rockchip: Add the GPU to Kobol Helios64

This commit adds the GPU core description to the Helios64 device tree,
using a silergy,syr828 regulator on i2c0 at 0x41.

> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
> index 63ad79b4c8ac3..1f50982291bfe 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
[ ... ]
> @@ -453,6 +458,25 @@ regulator-state-mem {
>  			regulator-off-in-suspend;
>  		};
>  	};
> +
> +	vdd_gpu: regulator@41 {
> +		compatible = "silergy,syr828";
> +		reg = <0x41>;
> +		fcs,suspend-voltage-selector = <1>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&vsel2_pin>;

[Severity: High]
Does this regulator definition need regulator-initial-mode = <1>; to force
PWM mode?

Without forcing PWM mode on the SYR828 regulator, sudden GPU current demands
cause transient voltage droops that lead to Panfrost job timeouts. 

The vdd_gpu regulator uses silergy,syr828, which is handled by the fan53555
regulator driver. Without regulator-initial-mode = <1>;, the regulator
remains in its default Auto (PFM/PWM) mode, which cannot respond fast
enough to large current spikes during active GPU workloads.

Adding regulator-initial-mode = <1>; forces the regulator into fast PWM mode
(REGULATOR_MODE_FAST), preventing the voltage droops and resulting job
timeouts.

> +		regulator-name = "vdd_gpu";
> +		regulator-always-on;
> +		regulator-boot-on;
> +		regulator-min-microvolt = <712500>;
> +		regulator-max-microvolt = <1500000>;
> +		regulator-ramp-delay = <1000>;
> +		vin-supply = <&vcc5v0_sys>;
> +
> +		regulator-state-mem {
> +			regulator-off-in-suspend;
> +		};
> +	};
>  };
>

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261011-b4-helios64-gpu-v1-1-bd83c6ecd19e@iav.lv?part=1

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

* Re: [PATCH] arm64: dts: rockchip: Add the GPU to Kobol Helios64
  2026-10-10 22:08 ` sashiko-bot
@ 2026-10-10 22:49   ` Igor Velkov
  0 siblings, 0 replies; 5+ messages in thread
From: Igor Velkov @ 2026-10-10 22:49 UTC (permalink / raw)
  To: sashiko-bot; +Cc: Igor Velkov, robh, conor+dt, devicetree

> Does this regulator definition need regulator-initial-mode = <1>; to force
> PWM mode?

Tried it: with regulator-initial-mode = <1> (opmode "fast") the GPU
faults from the start of the run, with hundreds of js faults
(INSTR_INVALID_ENC), job timeouts, then "AS_ACTIVE bit stuck", on both
boots. In auto mode I get two timeouts in three runs, and none with the
Armbian DT in the same mode. Not adding it.

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

end of thread, other threads:[~2026-10-10 22:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-10 21:53 [PATCH] arm64: dts: rockchip: Add the GPU to Kobol Helios64 Igor Velkov via B4 Relay
2026-10-10 21:53 ` Igor Velkov
2026-10-10 21:53 ` Igor Velkov via B4 Relay
2026-10-10 22:08 ` sashiko-bot
2026-10-10 22:49   ` Igor Velkov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.