Thread (11 messages) 11 messages, 3 authors, 2026-02-24

Re: [PATCH 2/2] arm64: dts: rockchip: Add domain-supply for pd_rkvdec0/1 and pd_venc0/1

From: Heiko Stuebner <heiko@sntech.de>
Date: 2026-02-22 13:15:31
Also in: linux-devicetree, linux-rockchip

Am Sonntag, 22. Februar 2026, 14:11:26 Mitteleuropäische Normalzeit schrieb Heiko Stuebner:
Hi Shawn,

Am Freitag, 13. Februar 2026, 03:42:07 Mitteleuropäische Normalzeit schrieb Shawn Lin:
quoted
在 2026/02/13 星期五 10:35, Shawn Lin 写道:
quoted
The power domains pd_rkvdec0/1 and pd_venc0/1 depend on two voltage supplies,
vdd_vdenc_s0 and vdd_vdenc_mem_s0. These supplies might be missing or cause probe
deferral. Since the Rockchip power domain management code currently supports managing
only one power supply, and both supplies belong to the same PMIC (making it highly
unlikely for one to be available while the other is not), a practical solution is
implemented.

Both supplies are configured with the boot-on and always-on properties. Only one
of them is assigned as the domain-supply for pd_rkvdec0/1 and pd_venc0/1. This allows
the power domain code to perform a nominal enable operation on this single supply,
thereby successfully acquiring a reference to both supplies (as they are from the same
PMIC). The system then relies on their boot-on and always-on flags to maintain the
correct state.

Crucially, this approach handles cases like probe deferral correctly:
if the PMIC is not yet ready, enabling the power domain will be deferred until the
necessary supplies become available.
just as a question, does the board have problems without these supplies?
Aka, is this a fix for a problem, or "just" future proofing the board?
Ah, I take everything back. The pmdomain patch in
   https://lore.kernel.org/r/1770891364-52147-1-git-send-email-shawn.lin@rock-chips.com (local)
is the actual fix.

With that patch applied all board should work correctly by deferring
the vdec probe until each board adds its domain-supply.

To not cause too much disturbance, this then counts as feature :-)

Heiko


quoted
quoted
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
---

  arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts  | 16 ++++++++++++++++
  arch/arm64/boot/dts/rockchip/rk3588s-evb1-v10.dts | 17 +++++++++++++++++
  2 files changed, 33 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts
index c9d284c..09bc7b6 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts
@@ -568,6 +568,22 @@
  	domain-supply = <&vdd_gpu_s0>;
  };
  
+&pd_rkvdec0 {
+	domain-supply = <&vdd_vdenc_s0>;
+};
+
+&pd_rkvdec1 {
+	domain-supply = <&vdd_vdenc_s0>;
+};
+
+&pd_venc0 {
+	domain-supply = <&vdd_vdenc_s0>;
+};
+
+&pd_venc1 {
+	domain-supply = <&vdd_vdenc_s0>;
+};
+
  &pinctrl {
  	audio {
  		hp_detect: headphone-detect {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3588s-evb1-v10.dts
index f820505..25d80b6 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-evb1-v10.dts
@@ -381,6 +381,22 @@
  	domain-supply = <&vdd_gpu_s0>;
  };
  
+&pd_rkvdec0 {
+	domain-supply = <&vdd_vdenc_s0>;
+};
+
+&pd_rkvdec1 {
+	domain-supply = <&vdd_vdenc_s0>;
+};
+
+&pd_venc0 {
+	domain-supply = <&vdd_vdenc_s0>;
+};
+
+&pd_venc1 {
+	domain-supply = <&vdd_vdenc_s0>;
+};
+
  &pinctrl {
  	audio {
  		hp_detect: headphone-detect {
@@ -580,6 +596,7 @@
  			vdd_gpu_mem_s0: dcdc-reg5 {
  				regulator-name = "vdd_gpu_mem_s0";
  				regulator-boot-on;
+				regulator-always-on;
Oops, I sent the wrong version. Should remove the this line change.
Will fix it if v2 needed.
quoted
  				regulator-min-microvolt = <675000>;
  				regulator-max-microvolt = <950000>;
  				regulator-ramp-delay = <12500>;



Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help