Skip to contentSkip to conversation

Add and update GPU OPP voltage ranges in the RK356x SoC dtsi

PATCH Applied Dragan Simic 2 participants 4 messages Jun 30, 2024 – Jul 4, 2024

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

v3 cover Add and update GPU OPP voltage ranges in the RK356x SoC dtsi

The first patch in this series adds support for voltage ranges to the GPU OPPs defined in the SoC dtsi for Rockchip RK356x, which is, for example, useful for RK356x-based boards designed to use the same power supply for the GPU and NPU portions of the SoC.

The second patch updates the values for the exact GPU OPP voltages and the lower limits for the GPU OPP voltage ranges, so they match the most conservative values (i.e. the highest per-OPP voltages) found in the vendor kernel source. This is performed in a separate patch to allow easier regression tracking, in the unlikely case that some issues are discovered later, resulting from these voltage changes.

Changes in v3:
- Turned into a patch series by adding a second patch that updates the exact GPU OPP voltages and the lower limits for the GPU OPP voltage ranges so they match the most conservative values found in the vendor kernel source [1]

Changes in v2:
- Dropped support for optional GPU OPP voltage ranges, which may actually hide some misconfiguration issues in board dts files, [2] but that will be covered by other debugging patches [3]

Link to v2: https://lore.kernel.org/linux-rockchip/bdb60f1f793166cd65f58ab7aea025347076019c.1719679068.git.dsimic@manjaro.org/T/#u
Link to v1: https://lore.kernel.org/linux-rockchip/446399362bd2dbeeaecd8351f68811165429749a.1719637113.git.dsimic@manjaro.org/T/#u

[1] https://lore.kernel.org/linux-rockchip/[email protected]/
[2] https://lore.kernel.org/linux-rockchip/[email protected]/
[3] https://lore.kernel.org/linux-rockchip/[email protected]/

Dragan Simic (2):
arm64: dts: rockchip: Add GPU OPP voltage ranges to RK356x SoC dtsi
arm64: dts: rockchip: Update GPU OPP voltages in RK356x SoC dtsi

 arch/arm64/boot/dts/rockchip/rk356x.dtsi | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
#1 lore raw

PATCH v3 1/2 arm64: dts: rockchip: Add GPU OPP voltage ranges to RK356x SoC dtsi

Add support for voltage ranges to the GPU OPPs defined in the SoC dtsi for Rockchip RK356x. This is, for example, useful for RK356x-based boards that are designed to use the same power supply for the GPU and NPU portions of the SoC, which is described further in the following documents:

- Rockchip RK3566 Hardware Design Guide, version 1.1.0, page 37
- Rockchip RK3568 Hardware Design Guide, version 1.2, page 78

The values for the exact GPU OPP voltages and the lower limits for the GPU OPP voltage ranges differ from the values found in the vendor kernel source (cf. downstream commit f8b9431ee38e ("arm64: dts: rockchip: rk3568: support adjust opp-table by otp")), [1][2] and present the exact GPU OPP voltage values that have served us well so far.

[1] https://github.com/rockchip-linux/kernel/commit/f8b9431ee38ed561650be7092ab93f564598daa9
[2] https://raw.githubusercontent.com/rockchip-linux/kernel/f8b9431ee38ed561650be7092ab93f564598daa9/arch/arm64/boot/dts/rockchip/rk3568.dtsi

---
 arch/arm64/boot/dts/rockchip/rk356x.dtsi | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
arch/arm64/boot/dts/rockchip/rk356x.dtsi +6 -6
index d8543b5557ee..ec772bce359a 100644
@@ -195,32 +195,32 @@ gpu_opp_table: opp-table-1 {
 
 		opp-200000000 {
 			opp-hz = /bits/ 64 <200000000>;
-			opp-microvolt = <825000>;
+			opp-microvolt = <825000 825000 1000000>;
 		};
 
 		opp-300000000 {
 			opp-hz = /bits/ 64 <300000000>;
-			opp-microvolt = <825000>;
+			opp-microvolt = <825000 825000 1000000>;
 		};
 
 		opp-400000000 {
 			opp-hz = /bits/ 64 <400000000>;
-			opp-microvolt = <825000>;
+			opp-microvolt = <825000 825000 1000000>;
 		};
 
 		opp-600000000 {
 			opp-hz = /bits/ 64 <600000000>;
-			opp-microvolt = <825000>;
+			opp-microvolt = <825000 825000 1000000>;
 		};
 
 		opp-700000000 {
 			opp-hz = /bits/ 64 <700000000>;
-			opp-microvolt = <900000>;
+			opp-microvolt = <900000 900000 1000000>;
 		};
 
 		opp-800000000 {
 			opp-hz = /bits/ 64 <800000000>;
-			opp-microvolt = <1000000>;
+			opp-microvolt = <1000000 1000000 1000000>;
 		};
 	};
 
#2 lore raw

PATCH v3 2/2 arm64: dts: rockchip: Update GPU OPP voltages in RK356x SoC dtsi

In reply to Dragan Simic

Update the values for the exact Rockchip RK356x GPU OPP voltages and the lower limits for the GPU OPP voltage ranges, using the most conservative values (i.e. the highest per-OPP voltages) found in the vendor kernel source (cf. downstream commit f8b9431ee38e ("arm64: dts: rockchip: rk3568: support adjust opp-table by otp")). [1][2]

Using the most conservative per-OPP voltages ensures reliable GPU operation regardless of the actual GPU binning, with the downside of possibly using a bit more power than absolutely needed.

[1] https://github.com/rockchip-linux/kernel/commit/f8b9431ee38ed561650be7092ab93f564598daa9
[2] https://raw.githubusercontent.com/rockchip-linux/kernel/f8b9431ee38ed561650be7092ab93f564598daa9/arch/arm64/boot/dts/rockchip/rk3568.dtsi

---
 arch/arm64/boot/dts/rockchip/rk356x.dtsi | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
arch/arm64/boot/dts/rockchip/rk356x.dtsi +5 -5
index ec772bce359a..e3c77dabc72b 100644
@@ -195,27 +195,27 @@ gpu_opp_table: opp-table-1 {
 
 		opp-200000000 {
 			opp-hz = /bits/ 64 <200000000>;
-			opp-microvolt = <825000 825000 1000000>;
+			opp-microvolt = <850000 850000 1000000>;
 		};
 
 		opp-300000000 {
 			opp-hz = /bits/ 64 <300000000>;
-			opp-microvolt = <825000 825000 1000000>;
+			opp-microvolt = <850000 850000 1000000>;
 		};
 
 		opp-400000000 {
 			opp-hz = /bits/ 64 <400000000>;
-			opp-microvolt = <825000 825000 1000000>;
+			opp-microvolt = <850000 850000 1000000>;
 		};
 
 		opp-600000000 {
 			opp-hz = /bits/ 64 <600000000>;
-			opp-microvolt = <825000 825000 1000000>;
+			opp-microvolt = <900000 900000 1000000>;
 		};
 
 		opp-700000000 {
 			opp-hz = /bits/ 64 <700000000>;
-			opp-microvolt = <900000 900000 1000000>;
+			opp-microvolt = <950000 950000 1000000>;
 		};
 
 		opp-800000000 {
maintainer Applied
#3 lore raw
In reply to Dragan Simic
Quoted 5 lines · Dragan Simic

The first patch in this series adds support for voltage ranges to the GPU OPPs defined in the SoC dtsi for Rockchip RK356x, which is, for example, useful for RK356x-based boards designed to use the same power supply for the GPU and NPU portions of the SoC.

Quoted 8 lines

The second patch updates the values for the exact GPU OPP voltages and the lower limits for the GPU OPP voltage ranges, so they match the most conservative values (i.e. the highest per-OPP voltages) found in the vendor kernel source. This is performed in a separate patch to allow easier regression tracking, in the unlikely case that some issues are discovered later, resulting from these voltage changes.

[...]

Applied, thanks!

[1/2] arm64: dts: rockchip: Add GPU OPP voltage ranges to RK356x SoC dtsi

      commit: 2e1fae80023a38ea03dfca3eab65b3b46617ef3b
[2/2] arm64: dts: rockchip: Update GPU OPP voltages in RK356x SoC dtsi
      commit: eb665b1c06bcaf16df10018550d8f467ed4b2887

Best regards,

Signature · 1 line
Heiko Stuebner <[email protected]>