]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: rockchip: Split GPU OPPs of RK3588 and RK3588j
authorAlexey Charkov <alchark@gmail.com>
Mon, 17 Jun 2024 18:28:58 +0000 (22:28 +0400)
committerHeiko Stuebner <heiko@sntech.de>
Mon, 24 Jun 2024 16:14:04 +0000 (18:14 +0200)
RK3588j uses a different set of OPPs for its GPU, both in terms of
allowed frequencies and in terms of voltages.

Move the GPU OPPs table into per-variant .dtsi files to accommodate
for this difference.

The table for RK3588j is adapted from Rockchip downstream sources [1],
while RK3588 one is moved verbatim into the per-variant .dtsi file.
The values provided for RK3588 in the downstream sources match those
in the original commit.

[1] https://github.com/rockchip-linux/kernel/blob/604cec4004abe5a96c734f2fab7b74809d2d742f/arch/arm64/boot/dts/rockchip/rk3588s.dtsi

Fixes: 6fca4edb93d3 ("arm64: dts: rockchip: Add rk3588 GPU node")
Signed-off-by: Alexey Charkov <alchark@gmail.com>
Link: https://lore.kernel.org/r/20240617-rk-dts-additions-v5-8-c1f5f3267f1e@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
arch/arm64/boot/dts/rockchip/rk3588-opp.dtsi
arch/arm64/boot/dts/rockchip/rk3588j.dtsi

index 6cc1ca46ac1118f3090b6837da5f25d747ce1b4b..b6e4df180f0b0a6289d1dc5584659392239c9799 100644 (file)
                             <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>,
                             <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>;
                interrupt-names = "job", "mmu", "gpu";
-               operating-points-v2 = <&gpu_opp_table>;
                power-domains = <&power RK3588_PD_GPU>;
                status = "disabled";
-
-               gpu_opp_table: opp-table {
-                       compatible = "operating-points-v2";
-
-                       opp-300000000 {
-                               opp-hz = /bits/ 64 <300000000>;
-                               opp-microvolt = <675000 675000 850000>;
-                       };
-                       opp-400000000 {
-                               opp-hz = /bits/ 64 <400000000>;
-                               opp-microvolt = <675000 675000 850000>;
-                       };
-                       opp-500000000 {
-                               opp-hz = /bits/ 64 <500000000>;
-                               opp-microvolt = <675000 675000 850000>;
-                       };
-                       opp-600000000 {
-                               opp-hz = /bits/ 64 <600000000>;
-                               opp-microvolt = <675000 675000 850000>;
-                       };
-                       opp-700000000 {
-                               opp-hz = /bits/ 64 <700000000>;
-                               opp-microvolt = <700000 700000 850000>;
-                       };
-                       opp-800000000 {
-                               opp-hz = /bits/ 64 <800000000>;
-                               opp-microvolt = <750000 750000 850000>;
-                       };
-                       opp-900000000 {
-                               opp-hz = /bits/ 64 <900000000>;
-                               opp-microvolt = <800000 800000 850000>;
-                       };
-                       opp-1000000000 {
-                               opp-hz = /bits/ 64 <1000000000>;
-                               opp-microvolt = <850000 850000 850000>;
-                       };
-               };
        };
 
        usb_host0_xhci: usb@fc000000 {
index 35bbc3c2134f1bac13c8722f355d5517cc31827c..0f1a776973516387383d45a416535fc5475fd1ed 100644 (file)
                        clock-latency-ns = <40000>;
                };
        };
+
+       gpu_opp_table: opp-table {
+               compatible = "operating-points-v2";
+
+               opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-microvolt = <675000 675000 850000>;
+               };
+               opp-400000000 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <675000 675000 850000>;
+               };
+               opp-500000000 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-microvolt = <675000 675000 850000>;
+               };
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <675000 675000 850000>;
+               };
+               opp-700000000 {
+                       opp-hz = /bits/ 64 <700000000>;
+                       opp-microvolt = <700000 700000 850000>;
+               };
+               opp-800000000 {
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <750000 750000 850000>;
+               };
+               opp-900000000 {
+                       opp-hz = /bits/ 64 <900000000>;
+                       opp-microvolt = <800000 800000 850000>;
+               };
+               opp-1000000000 {
+                       opp-hz = /bits/ 64 <1000000000>;
+                       opp-microvolt = <850000 850000 850000>;
+               };
+       };
 };
 
 &cpu_b0 {
 &cpu_l3 {
        operating-points-v2 = <&cluster0_opp_table>;
 };
+
+&gpu {
+       operating-points-v2 = <&gpu_opp_table>;
+};
index b7e69553857b12ddd17ace905a20def9cb822d34..bce72bac4503b5e5fc7c3d01a240eadf6d5aaae2 100644 (file)
                        clock-latency-ns = <40000>;
                };
        };
+
+       gpu_opp_table: opp-table {
+               compatible = "operating-points-v2";
+
+               opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-microvolt = <750000 750000 850000>;
+               };
+               opp-400000000 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <750000 750000 850000>;
+               };
+               opp-500000000 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-microvolt = <750000 750000 850000>;
+               };
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <750000 750000 850000>;
+               };
+               opp-700000000 {
+                       opp-hz = /bits/ 64 <700000000>;
+                       opp-microvolt = <750000 750000 850000>;
+               };
+               opp-850000000 {
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <787500 787500 850000>;
+               };
+       };
 };
 
 &cpu_b0 {
 &cpu_l3 {
        operating-points-v2 = <&cluster0_opp_table>;
 };
+
+&gpu {
+       operating-points-v2 = <&gpu_opp_table>;
+};