mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-01 15:14:52 +00:00

The H700 now shows stable operation with the 1.008, 1.032 and 1.512 GHz DVFS operating points. The 1.5GHz OPP requires a VDD-CPU of 1.16V, obtained from the vendor BSP. This voltage is slightly above the recommended operating voltage for the H616 (H700 datasheet not publicly available) but well within the absolute maximum of 1.3V. Add the additional 1.032 GHz operating point to the H616 CPU-OPP table, and enable the 1.008 and 1.512 points for the H700. Signed-off-by: Ryan Walklin <ryan@testtoast.com> Tested-by: Philippe Simons <simons.philippe@gmail.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Link: https://lore.kernel.org/r/20240607092140.33112-3-ryan@testtoast.com Signed-off-by: Chen-Yu Tsai <wens@csie.org>
127 lines
3.1 KiB
Plaintext
127 lines
3.1 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
// Copyright (C) 2023 Martin Botka <martin@somainline.org>
|
|
|
|
/ {
|
|
cpu_opp_table: opp-table-cpu {
|
|
compatible = "allwinner,sun50i-h616-operating-points";
|
|
nvmem-cells = <&cpu_speed_grade>;
|
|
opp-shared;
|
|
|
|
opp-480000000 {
|
|
opp-hz = /bits/ 64 <480000000>;
|
|
opp-microvolt = <900000>;
|
|
clock-latency-ns = <244144>; /* 8 32k periods */
|
|
opp-supported-hw = <0x3f>;
|
|
};
|
|
|
|
opp-600000000 {
|
|
opp-hz = /bits/ 64 <600000000>;
|
|
opp-microvolt = <900000>;
|
|
clock-latency-ns = <244144>; /* 8 32k periods */
|
|
opp-supported-hw = <0x12>;
|
|
};
|
|
|
|
opp-720000000 {
|
|
opp-hz = /bits/ 64 <720000000>;
|
|
opp-microvolt = <900000>;
|
|
clock-latency-ns = <244144>; /* 8 32k periods */
|
|
opp-supported-hw = <0x2d>;
|
|
};
|
|
|
|
opp-792000000 {
|
|
opp-hz = /bits/ 64 <792000000>;
|
|
opp-microvolt-speed1 = <900000>;
|
|
opp-microvolt-speed4 = <940000>;
|
|
clock-latency-ns = <244144>; /* 8 32k periods */
|
|
opp-supported-hw = <0x12>;
|
|
};
|
|
|
|
opp-936000000 {
|
|
opp-hz = /bits/ 64 <936000000>;
|
|
opp-microvolt = <900000>;
|
|
clock-latency-ns = <244144>; /* 8 32k periods */
|
|
opp-supported-hw = <0x0d>;
|
|
};
|
|
|
|
opp-1008000000 {
|
|
opp-hz = /bits/ 64 <1008000000>;
|
|
opp-microvolt-speed0 = <950000>;
|
|
opp-microvolt-speed1 = <940000>;
|
|
opp-microvolt-speed2 = <950000>;
|
|
opp-microvolt-speed3 = <950000>;
|
|
opp-microvolt-speed4 = <1020000>;
|
|
opp-microvolt-speed5 = <900000>;
|
|
clock-latency-ns = <244144>; /* 8 32k periods */
|
|
opp-supported-hw = <0x3f>;
|
|
};
|
|
|
|
opp-1032000000 {
|
|
opp-hz = /bits/ 64 <1032000000>;
|
|
opp-microvolt = <900000>;
|
|
clock-latency-ns = <244144>; /* 8 32k periods */
|
|
opp-supported-hw = <0x20>;
|
|
};
|
|
|
|
opp-1104000000 {
|
|
opp-hz = /bits/ 64 <1104000000>;
|
|
opp-microvolt-speed0 = <1000000>;
|
|
opp-microvolt-speed2 = <1000000>;
|
|
opp-microvolt-speed3 = <1000000>;
|
|
opp-microvolt-speed5 = <950000>;
|
|
clock-latency-ns = <244144>; /* 8 32k periods */
|
|
opp-supported-hw = <0x2d>;
|
|
};
|
|
|
|
opp-1200000000 {
|
|
opp-hz = /bits/ 64 <1200000000>;
|
|
opp-microvolt-speed0 = <1050000>;
|
|
opp-microvolt-speed1 = <1020000>;
|
|
opp-microvolt-speed2 = <1050000>;
|
|
opp-microvolt-speed3 = <1050000>;
|
|
opp-microvolt-speed4 = <1100000>;
|
|
opp-microvolt-speed5 = <1020000>;
|
|
clock-latency-ns = <244144>; /* 8 32k periods */
|
|
opp-supported-hw = <0x3f>;
|
|
};
|
|
|
|
opp-1320000000 {
|
|
opp-hz = /bits/ 64 <1320000000>;
|
|
opp-microvolt = <1100000>;
|
|
clock-latency-ns = <244144>; /* 8 32k periods */
|
|
opp-supported-hw = <0x1d>;
|
|
};
|
|
|
|
opp-1416000000 {
|
|
opp-hz = /bits/ 64 <1416000000>;
|
|
opp-microvolt = <1100000>;
|
|
clock-latency-ns = <244144>; /* 8 32k periods */
|
|
opp-supported-hw = <0x2d>;
|
|
};
|
|
|
|
opp-1512000000 {
|
|
opp-hz = /bits/ 64 <1512000000>;
|
|
opp-microvolt-speed1 = <1100000>;
|
|
opp-microvolt-speed3 = <1100000>;
|
|
opp-microvolt-speed5 = <1160000>;
|
|
clock-latency-ns = <244144>; /* 8 32k periods */
|
|
opp-supported-hw = <0x2a>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&cpu0 {
|
|
operating-points-v2 = <&cpu_opp_table>;
|
|
};
|
|
|
|
&cpu1 {
|
|
operating-points-v2 = <&cpu_opp_table>;
|
|
};
|
|
|
|
&cpu2 {
|
|
operating-points-v2 = <&cpu_opp_table>;
|
|
};
|
|
|
|
&cpu3 {
|
|
operating-points-v2 = <&cpu_opp_table>;
|
|
};
|