* [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger
@ 2025-08-12 8:52 Heiko Stuebner
2025-08-12 8:52 ` [PATCH 2/2] arm64: dts: rockchip: enable NPU on rk3588-jaguar Heiko Stuebner
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Heiko Stuebner @ 2025-08-12 8:52 UTC (permalink / raw)
To: heiko
Cc: quentin.schulz, linux-arm-kernel, linux-rockchip, linux-kernel,
Heiko Stuebner
From: Heiko Stuebner <heiko.stuebner@cherry.de>
Enable the NPU cores and their mmus and wire up the supply-regulator.
The regulator itself was already defined, but it does not need to be
always on - the npu can control it.
Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
---
.../arm64/boot/dts/rockchip/rk3588-tiger.dtsi | 35 ++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
index f4bebd25e938..9859f31d2894 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
@@ -194,7 +194,6 @@ vdd_npu_s0: regulator@42 {
reg = <0x42>;
fcs,suspend-voltage-selector = <1>;
regulator-name = "vdd_npu_s0";
- regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <550000>;
regulator-max-microvolt = <950000>;
@@ -337,6 +336,10 @@ &pd_gpu {
domain-supply = <&vdd_gpu_s0>;
};
+&pd_npu {
+ domain-supply = <&vdd_npu_s0>;
+};
+
&pinctrl {
emmc {
emmc_reset: emmc-reset {
@@ -375,6 +378,36 @@ &pwm0 {
pinctrl-names = "default";
};
+&rknn_core_0 {
+ npu-supply = <&vdd_npu_s0>;
+ sram-supply = <&vdd_npu_s0>;
+ status = "okay";
+};
+
+&rknn_core_1 {
+ npu-supply = <&vdd_npu_s0>;
+ sram-supply = <&vdd_npu_s0>;
+ status = "okay";
+};
+
+&rknn_core_2 {
+ npu-supply = <&vdd_npu_s0>;
+ sram-supply = <&vdd_npu_s0>;
+ status = "okay";
+};
+
+&rknn_mmu_0 {
+ status = "okay";
+};
+
+&rknn_mmu_1 {
+ status = "okay";
+};
+
+&rknn_mmu_2 {
+ status = "okay";
+};
+
&saradc {
vref-supply = <&vcc_1v8_s0>;
status = "okay";
--
2.47.2
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH 2/2] arm64: dts: rockchip: enable NPU on rk3588-jaguar
2025-08-12 8:52 [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger Heiko Stuebner
@ 2025-08-12 8:52 ` Heiko Stuebner
2025-11-27 13:28 ` Quentin Schulz
2025-08-22 15:16 ` [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger Quentin Schulz
` (2 subsequent siblings)
3 siblings, 1 reply; 7+ messages in thread
From: Heiko Stuebner @ 2025-08-12 8:52 UTC (permalink / raw)
To: heiko
Cc: quentin.schulz, linux-arm-kernel, linux-rockchip, linux-kernel,
Heiko Stuebner
From: Heiko Stuebner <heiko.stuebner@cherry.de>
Enable the NPU cores and their mmus and wire up the supply-regulator.
The regulator itself was already defined, but it does not need to be
always on - the npu can control it.
Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
---
.../arm64/boot/dts/rockchip/rk3588-jaguar.dts | 35 ++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts b/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
index bcd15c1c930b..6de2ffe7fb87 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
@@ -428,7 +428,6 @@ vdd_npu_s0: regulator@42 {
reg = <0x42>;
fcs,suspend-voltage-selector = <1>;
regulator-name = "vdd_npu_s0";
- regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <550000>;
regulator-max-microvolt = <950000>;
@@ -607,6 +606,10 @@ &pd_gpu {
domain-supply = <&vdd_gpu_s0>;
};
+&pd_npu {
+ domain-supply = <&vdd_npu_s0>;
+};
+
&pinctrl {
emmc {
emmc_reset: emmc-reset {
@@ -661,6 +664,36 @@ typec1_sbu_dc_pins: typec1-sbu-dc-pins {
};
};
+&rknn_core_0 {
+ npu-supply = <&vdd_npu_s0>;
+ sram-supply = <&vdd_npu_s0>;
+ status = "okay";
+};
+
+&rknn_core_1 {
+ npu-supply = <&vdd_npu_s0>;
+ sram-supply = <&vdd_npu_s0>;
+ status = "okay";
+};
+
+&rknn_core_2 {
+ npu-supply = <&vdd_npu_s0>;
+ sram-supply = <&vdd_npu_s0>;
+ status = "okay";
+};
+
+&rknn_mmu_0 {
+ status = "okay";
+};
+
+&rknn_mmu_1 {
+ status = "okay";
+};
+
+&rknn_mmu_2 {
+ status = "okay";
+};
+
&saradc {
vref-supply = <&vcc_1v8_s0>;
status = "okay";
--
2.47.2
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger
2025-08-12 8:52 [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger Heiko Stuebner
2025-08-12 8:52 ` [PATCH 2/2] arm64: dts: rockchip: enable NPU on rk3588-jaguar Heiko Stuebner
@ 2025-08-22 15:16 ` Quentin Schulz
2025-11-28 10:32 ` Quentin Schulz
2026-01-06 18:41 ` Heiko Stuebner
3 siblings, 0 replies; 7+ messages in thread
From: Quentin Schulz @ 2025-08-22 15:16 UTC (permalink / raw)
To: Heiko Stuebner
Cc: linux-arm-kernel, linux-rockchip, linux-kernel, Heiko Stuebner
Hi Heiko,
On 8/12/25 10:52 AM, Heiko Stuebner wrote:
> From: Heiko Stuebner <heiko.stuebner@cherry.de>
>
> Enable the NPU cores and their mmus and wire up the supply-regulator.
> The regulator itself was already defined, but it does not need to be
> always on - the npu can control it.
>
> Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
> ---
> .../arm64/boot/dts/rockchip/rk3588-tiger.dtsi | 35 ++++++++++++++++++-
> 1 file changed, 34 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
> index f4bebd25e938..9859f31d2894 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
> @@ -194,7 +194,6 @@ vdd_npu_s0: regulator@42 {
> reg = <0x42>;
> fcs,suspend-voltage-selector = <1>;
> regulator-name = "vdd_npu_s0";
> - regulator-always-on;
> regulator-boot-on;
I'm not sure we need this property?
The binding states:
"""
This property is intended to only be used for regulators where
software cannot read the state of the regulator.
"""
but the rk860 we use here can report its state if I read the driver
properly.
If that is correct the same "mistake" was done for other RK3588 boards
which enabled the NPU recently.
The diff makes sense compared to other RK3588 boards' recent NPU support
addition so I guess this is fine :)
I am currently unable to test this though but considering that this is
an IP within the SoC which only differs between different boards by its
regulator feeding the controller(s) and that this change looks in sync
with our hardware design, I guess we don't need to wait for me to be
able to test this :)
Same remarks for the next patch in the series.
Cheers,
Quentin
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger
2025-08-12 8:52 [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger Heiko Stuebner
2025-08-12 8:52 ` [PATCH 2/2] arm64: dts: rockchip: enable NPU on rk3588-jaguar Heiko Stuebner
2025-08-22 15:16 ` [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger Quentin Schulz
@ 2025-11-28 10:32 ` Quentin Schulz
2026-01-06 18:52 ` Heiko Stuebner
2026-01-06 18:41 ` Heiko Stuebner
3 siblings, 1 reply; 7+ messages in thread
From: Quentin Schulz @ 2025-11-28 10:32 UTC (permalink / raw)
To: Heiko Stuebner
Cc: linux-arm-kernel, linux-rockchip, linux-kernel, Heiko Stuebner
Hi Heiko,
On 8/12/25 10:52 AM, Heiko Stuebner wrote:
> From: Heiko Stuebner <heiko.stuebner@cherry.de>
>
> Enable the NPU cores and their mmus and wire up the supply-regulator.
> The regulator itself was already defined, but it does not need to be
> always on - the npu can control it.
>
> Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Tested-by: Quentin Schulz <quentin.schulz@cherry.de>
I still have the same remark about regulator-boot-on but this isn't a
blocker per-se.
The Oops I alluded to in my answer to the Jaguar patch is triggered by
making DRM_ACCEL_ROCKET driver built-in instead of as a module. I'm not
sure how much I will debug this on my side, I'll prolly just report this
on the ML in a few hours.
Thanks!
Quentin
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger
2025-11-28 10:32 ` Quentin Schulz
@ 2026-01-06 18:52 ` Heiko Stuebner
0 siblings, 0 replies; 7+ messages in thread
From: Heiko Stuebner @ 2026-01-06 18:52 UTC (permalink / raw)
To: Quentin Schulz
Cc: linux-arm-kernel, linux-rockchip, linux-kernel, Heiko Stuebner
Am Freitag, 28. November 2025, 11:32:17 Mitteleuropäische Normalzeit schrieb Quentin Schulz:
> Hi Heiko,
>
> On 8/12/25 10:52 AM, Heiko Stuebner wrote:
> > From: Heiko Stuebner <heiko.stuebner@cherry.de>
> >
> > Enable the NPU cores and their mmus and wire up the supply-regulator.
> > The regulator itself was already defined, but it does not need to be
> > always on - the npu can control it.
> >
> > Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
>
> Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
> Tested-by: Quentin Schulz <quentin.schulz@cherry.de>
>
> I still have the same remark about regulator-boot-on but this isn't a
> blocker per-se.
>
> The Oops I alluded to in my answer to the Jaguar patch is triggered by
> making DRM_ACCEL_ROCKET driver built-in instead of as a module. I'm not
> sure how much I will debug this on my side, I'll prolly just report this
> on the ML in a few hours.
Just for people stumbling over this, the cause is the pm-domains
being on on boot and the iommu after probing disabling the domain.
See discussion in
https://lore.kernel.org/linux-rockchip/20251216055247.13150-1-rmxpzlb@gmail.com/
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger
2025-08-12 8:52 [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger Heiko Stuebner
` (2 preceding siblings ...)
2025-11-28 10:32 ` Quentin Schulz
@ 2026-01-06 18:41 ` Heiko Stuebner
3 siblings, 0 replies; 7+ messages in thread
From: Heiko Stuebner @ 2026-01-06 18:41 UTC (permalink / raw)
To: Heiko Stuebner
Cc: quentin.schulz, linux-arm-kernel, linux-rockchip, linux-kernel,
Heiko Stuebner
On Tue, 12 Aug 2025 10:52:12 +0200, Heiko Stuebner wrote:
> Enable the NPU cores and their mmus and wire up the supply-regulator.
> The regulator itself was already defined, but it does not need to be
> always on - the npu can control it.
>
>
Applied, thanks!
[1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger
commit: 8fd18d9b7b74bbd5ee5c562c2b94fdb7a356867e
[2/2] arm64: dts: rockchip: enable NPU on rk3588-jaguar
commit: 843b912c7241ed0259f6234243da05e10ce67c0f
Best regards,
--
Heiko Stuebner <heiko@sntech.de>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-01-06 18:53 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-12 8:52 [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger Heiko Stuebner
2025-08-12 8:52 ` [PATCH 2/2] arm64: dts: rockchip: enable NPU on rk3588-jaguar Heiko Stuebner
2025-11-27 13:28 ` Quentin Schulz
2025-08-22 15:16 ` [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger Quentin Schulz
2025-11-28 10:32 ` Quentin Schulz
2026-01-06 18:52 ` Heiko Stuebner
2026-01-06 18:41 ` Heiko Stuebner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox