* [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
2025-08-22 15:16 ` [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger Quentin Schulz
0 siblings, 2 replies; 3+ 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] 3+ 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-08-22 15:16 ` [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger Quentin Schulz
1 sibling, 0 replies; 3+ 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] 3+ 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
1 sibling, 0 replies; 3+ 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] 3+ messages in thread
end of thread, other threads:[~2025-08-23 6:33 UTC | newest]
Thread overview: 3+ 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-08-22 15:16 ` [PATCH 1/2] arm64: dts: rockchip: enable NPU on rk3588-tiger Quentin Schulz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).