[PATCH 1/2] arm64: dts: rockchip: add GPU powerdomain, opps, and cooling to rk3328

Diederik de Haas didi.debian at cknow.org
Sat Sep 6 03:45:08 PDT 2025


Hi Christian,

On Sat Aug 30, 2025 at 1:51 PM CEST, Christian Hewitt wrote:
> From: Alex Bee <knaerzche at gmail.com>
>
> Add GPU powerdomain, opp-table, and cooling map nodes for the Mali
> GPU on the RK3328 SoC. Opp-table frequencies are sourced from the

I very recently saw a patch somewhere with these changes and wondered
why it wouldn't be sent upstream, so thanks for doing exactly that!

> Signed-off-by: Alex Bee <knaerzche at gmail.com>
> Signed-off-by: Christian Hewitt <christianshewitt at gmail.com>
> ---
>
>  arch/arm64/boot/dts/rockchip/rk3328.dtsi | 39 +++++++++++++++++++++++-
>  1 file changed, 38 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
> index 7d992c3c01ce..b99c78ecc4a9 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
> @@ -331,6 +331,11 @@ power: power-controller {
>  			#address-cells = <1>;
>  			#size-cells = <0>;
>  
> +			power-domain at RK3328_PD_GPU {
> +				reg = <RK3328_PD_GPU>;
> +				clocks = <&cru ACLK_GPU>;
> +				#power-domain-cells = <0>;
> +			};
>  			power-domain at RK3328_PD_HEVC {
>  				reg = <RK3328_PD_HEVC>;
>  				clocks = <&cru SCLK_VENC_CORE>;
> @@ -570,9 +575,13 @@ map0 {
>  							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
>  					contribution = <4096>;
>  				};
> +				map1 {
> +					trip = <&target>;
> +					cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> +					contribution = <4096>;
> +				};
>  			};
>  		};
> -
>  	};
>  
>  	tsadc: tsadc at ff250000 {
> @@ -651,7 +660,35 @@ gpu: gpu at ff300000 {
>  				  "ppmmu1";
>  		clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
>  		clock-names = "bus", "core";
> +		operating-points-v2 = <&gpu_opp_table>;
> +		power-domains = <&power RK3328_PD_GPU>;
>  		resets = <&cru SRST_GPU_A>;
> +		#cooling-cells = <2>;
> +	};
> +
> +	gpu_opp_table: gpu-opp-table {

As noticed by Rob's bot, this node name is incorrect.
If you do ``s/gpu-opp-table/opp-table-gpu/`` and move it to above the
'pinctrl' node, then DTB validation succeeds.

Cheers,
  Diederik

> +		compatible = "operating-points-v2";
> +		opp-200000000 {
> +			opp-hz = /bits/ 64 <200000000>;
> +			opp-microvolt = <1075000>;
> +		};
> +
> +		opp-300000000 {
> +			opp-hz = /bits/ 64 <300000000>;
> +			opp-microvolt = <1075000>;
> +		};
> +
> +		opp-400000000 {
> +			opp-hz = /bits/ 64 <400000000>;
> +			opp-microvolt = <1075000>;
> +		};
> +
> +		opp-500000000 {
> +			/* causes stability issues */
> +			opp-hz = /bits/ 64 <500000000>;
> +			opp-microvolt = <1150000>;
> +			status = "disabled";
> +		};
>  	};
>  
>  	h265e_mmu: iommu at ff330200 {

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20250906/b1b4e0f0/attachment.sig>


More information about the linux-arm-kernel mailing list