Add and update GPU OPP voltage ranges in the RK356x SoC dtsi
Subsystems (2)
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(-)
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
@@ -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>; }; };
PATCH v3 2/2 arm64: dts: rockchip: Update GPU OPP voltages in RK356x SoC dtsi
In reply to Dragan SimicUpdate 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
@@ -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 {
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: eb665b1c06bcaf16df10018550d8f467ed4b2887Best regards,
Signature · 1 line
Heiko Stuebner <[email protected]>