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

Diederik de Haas didi.debian at cknow.org
Thu Sep 11 02:00:54 PDT 2025


On Sat Sep 6, 2025 at 2:08 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
> Rockchip Linux v4.4 vendor kernel while voltages have been derived
> from practical use and support work: keeping voltage above 1075mV
> and disabling the 500MHz opp-point avoids instability and crashes.
>
> Signed-off-by: Alex Bee <knaerzche at gmail.com>
> Signed-off-by: Christian Hewitt <christianshewitt at gmail.com>

Now that the 'other' issue with power domains has been resolved, or at
least localized, I feel (more) comfortable giving my

Tested-by: Diederik de Haas <didi.debian at cknow.org>  # Rock64

Cheers,
  Diederik

> ---
> Changes since v2:
> - Revert to gpu_opp_table but retain opp-table-gpu $nodename
> Changes since v1:
> - Use opp_table_gpu not gpu_opp_table to fix dtb schema warnings
>
>  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 6438c969f9d7..610c1c27b798 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: opp-table-gpu {
> +		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/20250911/bc396246/attachment.sig>


More information about the linux-arm-kernel mailing list