Rockchip RK3588 kernel dts解析之CPU/GPU/NPU/DDR频率相关

Rockchip RK3588 kernel dts解析之CPU/GPU/NPU/DDR频率

RK3588的CPU/GPU/NPU/DDR的频率

rk3588_s:/ $ cat /d/opp/opp_summary                                                                                                                                                           
 device                rate(Hz)    target(uV)    min(uV)    max(uV)
-------------------------------------------------------------------
 platform-fdab0000.npu
                      300000000       675000      675000      850000
                                      675000      675000      850000
                      400000000       675000      675000      850000
                                      675000      675000      850000
                      500000000       675000      675000      850000
                                      675000      675000      850000
                      600000000       675000      675000      850000
                                      675000      675000      850000
                      700000000       675000      675000      850000
                                      675000      675000      850000
                      800000000       700000      700000      850000
                                      700000      700000      850000
                      900000000       750000      750000      850000
                                      750000      750000      850000
                     1000000000       800000      800000      850000
                                      800000      800000      850000
 platform-dmc
                      528000000       675000      675000      675000
                     1068000000       725000      725000      725000
                     1560000000       800000      800000      800000
                     2112000000       850000      850000      850000
 platform-fb000000.gpu
                      300000000       675000      675000      850000
                                      675000      675000      850000
                      400000000       675000      675000      850000
                                      675000      675000      850000
                      500000000       675000      675000      850000
                                      675000      675000      850000
                      600000000       675000      675000      850000
                                      675000      675000      850000
                      700000000       675000      675000      850000
                                      675000      675000      850000
                      800000000       700000      700000      850000
                                      700000      700000      850000
                      900000000       750000      750000      850000
                                      750000      750000      850000
                     1000000000       800000      800000      850000
                                      800000      800000      850000
 cpu6
                      408000000       675000      675000     1000000
                                      675000      675000     1000000
                      600000000       675000      675000     1000000
                                      675000      675000     1000000
                      816000000       675000      675000     1000000
                                      675000      675000     1000000
                     1008000000       675000      675000     1000000
                                      675000      675000     1000000
                     1200000000       675000      675000     1000000
                                      675000      675000     1000000
                     1416000000       675000      675000     1000000
                                      675000      675000     1000000
                     1608000000       700000      700000     1000000
                                      700000      700000     1000000
                     1800000000       762500      762500     1000000
                                      762500      762500     1000000
                     2016000000       837500      837500     1000000
                                      837500      837500     1000000
                     2208000000       912500      912500     1000000
                                      912500      912500     1000000
                     2400000000       962500      962500     1000000
                                      962500      962500     1000000
 cpu4
                      408000000       675000      675000     1000000
                                      675000      675000     1000000
                      600000000       675000      675000     1000000
                                      675000      675000     1000000
                      816000000       675000      675000     1000000
                                      675000      675000     1000000
                     1008000000       675000      675000     1000000
                                      675000      675000     1000000
                     1200000000       675000      675000     1000000
                                      675000      675000     1000000
                     1416000000       675000      675000     1000000
                                      675000      675000     1000000
                     1608000000       700000      700000     1000000
                                      700000      700000     1000000
                     1800000000       762500      762500     1000000
                                      762500      762500     1000000
                     2016000000       837500      837500     1000000
                                      837500      837500     1000000
                     2208000000       912500      912500     1000000
                                      912500      912500     1000000
                     2400000000       962500      962500     1000000
                                      962500      962500     1000000
 cpu0
                      408000000       675000      675000      950000
                                      675000      675000      950000
                      600000000       675000      675000      950000
                                      675000      675000      950000
                      816000000       675000      675000      950000
                                      675000      675000      950000
                     1008000000       675000      675000      950000
                                      675000      675000      950000
                     1200000000       675000      675000      950000
                                      675000      675000      950000
                     1416000000       712500      712500      950000
                                      712500      712500      950000
                     1608000000       787500      787500      950000
                                      787500      787500      950000
                     1800000000       875000      875000      950000
                                      875000      875000      950000

dts中频率的配置

代码位置:

arch/arm64/boot/dts/rockchip/rk3588s.dtsi

CPU小核(CPU0-CPU3)的频率电压表配置

cluster0_opp_table: cluster0-opp-table {
		compatible = "operating-points-v2";
		opp-shared;

		nvmem-cells = <&cpul_leakage>;
		nvmem-cell-names = "leakage";

		rockchip,pvtm-voltage-sel = <
			0	1410	0
			1411	1434	1
			1435	1458	2
			1459	1482	3
			1483	1506	4
			1507	1530	5
			1531	9999	6
		>;
		rockchip,pvtm-pvtpll;
		rockchip,pvtm-offset = <0x64>;
		rockchip,pvtm-sample-time = <1100>;
		rockchip,pvtm-freq = <1416000>;
		rockchip,pvtm-volt = <750000>;
		rockchip,pvtm-ref-temp = <25>;
		rockchip,pvtm-temp-prop = <244 244>;
		rockchip,pvtm-thermal-zone = "soc-thermal";

		rockchip,grf = <&litcore_grf>;

		rockchip,reboot-freq = <1416000>;

		rockchip,temp-hysteresis = <5000>;
		rockchip,low-temp = <0>;
		rockchip,low-temp-min-volt = <725000>;

		opp-408000000 {
			opp-hz = /bits/ 64 <408000000>;
			opp-microvolt = <675000 675000 950000>,
					<675000 675000 950000>;
			clock-latency-ns = <40000>;
		};
		opp-600000000 {
			opp-hz = /bits/ 64 <600000000>;
			opp-microvolt = <675000 675000 950000>,
					<675000 675000 950000>;
			clock-latency-ns = <40000>;
		};
		opp-816000000 {
			opp-hz = /bits/ 64 <816000000>;
			opp-microvolt = <675000 675000 950000>,
					<675000 675000 950000>;
			clock-latency-ns = <40000>;
		};
		opp-1008000000 {
			opp-hz = /bits/ 64 <1008000000>;
			opp-microvolt = <675000 675000 950000>,
					<675000 675000 950000>;
			clock-latency-ns = <40000>;
		};
		opp-1200000000 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <700000 700000 950000>,
					<700000 700000 950000>;
			opp-microvolt-L1 = <687500 687500 950000>,
					   <687500 687500 950000>;
			opp-microvolt-L2 = <687500 687500 950000>,
					   <687500 687500 950000>;
			opp-microvolt-L3 = <687500 687500 950000>,
					   <687500 687500 950000>;
			opp-microvolt-L4 = <675000 675000 950000>,
					   <675000 675000 950000>;
			opp-microvolt-L5 = <675000 675000 950000>,
					   <675000 675000 950000>;
			opp-microvolt-L6 = <675000 675000 950000>,
					   <675000 675000 950000>;
			clock-latency-ns = <40000>;
		};
		opp-1416000000 {
			opp-hz = /bits/ 64 <1416000000>;
			opp-microvolt = <762500 762500 950000>,
					<762500 762500 950000>;
			opp-microvolt-L1 = <750000 750000 950000>,
					   <750000 750000 950000>;
			opp-microvolt-L2 = <737500 737500 950000>,
					   <737500 737500 950000>;
			opp-microvolt-L3 = <725000 725000 950000>,
					   <725000 725000 950000>;
			opp-microvolt-L4 = <725000 725000 950000>,
					   <725000 725000 950000>;
			opp-microvolt-L5 = <712500 712500 950000>,
					   <712500 712500 950000>;
			opp-microvolt-L6 = <712500 712500 950000>,
					   <712500 712500 950000>;
			clock-latency-ns = <40000>;
			opp-suspend;
		};
		opp-1608000000 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <850000 850000 950000>,
					<850000 850000 950000>;
			opp-microvolt-L1 = <837500 837500 950000>,
					   <837500 837500 950000>;
			opp-microvolt-L2 = <825000 825000 950000>,
					   <825000 825000 950000>;
			opp-microvolt-L3 = <812500 812500 950000>,
					   <812500 812500 950000>;
			opp-microvolt-L4 = <800000 800000 950000>,
					   <800000 800000 950000>;
			opp-microvolt-L5 = <800000 800000 950000>,
					   <800000 800000 950000>;
			opp-microvolt-L6 = <787500 787500 950000>,
					   <787500 787500 950000>;
			clock-latency-ns = <40000>;
		};
		opp-1800000000 {
			opp-hz = /bits/ 64 <1800000000>;
			opp-microvolt = <950000 950000 950000>,
					<950000 950000 950000>;
			opp-microvolt-L1 = <937500 937500 950000>,
					   <937500 937500 950000>;
			opp-microvolt-L2 = <925000 925000 950000>,
					   <925000 925000 950000>;
			opp-microvolt-L3 = <912500 912500 950000>,
					   <912500 912500 950000>;
			opp-microvolt-L4 = <900000 900000 950000>,
					   <900000 900000 950000>;
			opp-microvolt-L5 = <887500 887500 950000>,
					   <887500 887500 950000>;
			opp-microvolt-L6 = <875000 875000 950000>,
					   <875000 875000 950000>;
			clock-latency-ns = <40000>;
		};
	};

CPU大核(CPU4-CPU5)的频率电压表配置

	cluster1_opp_table: cluster1-opp-table {
		compatible = "operating-points-v2";
		opp-shared;

		nvmem-cells = <&cpub0_leakage>;
		nvmem-cell-names = "leakage";

		rockchip,pvtm-voltage-sel = <
			0	1640	0
			1641	1675	1
			1676	1710	2
			1711	1743	3
			1744	1776	4
			1777	9999	5
		>;
		rockchip,pvtm-pvtpll;
		rockchip,pvtm-offset = <0x18>;
		rockchip,pvtm-sample-time = <1100>;
		rockchip,pvtm-freq = <1608000>;
		rockchip,pvtm-volt = <750000>;
		rockchip,pvtm-ref-temp = <25>;
		rockchip,pvtm-temp-prop = <270 270>;
		rockchip,pvtm-thermal-zone = "soc-thermal";

		rockchip,grf = <&bigcore0_grf>;
		volt-mem-read-margin = <
			855000	1
			765000	2
			675000	3
			495000	4
		>;
		low-volt-mem-read-margin = <4>;
		intermediate-threshold-freq = <1008000>;	/* KHz */
		rockchip,idle-threshold-freq = <2400000>;	/* KHz */
		rockchip,reboot-freq = <1800000>;		/* KHz */

		rockchip,temp-hysteresis = <5000>;
		rockchip,low-temp = <0>;
		rockchip,low-temp-min-volt = <725000>;

		opp-408000000 {
			opp-hz = /bits/ 64 <408000000>;
			opp-microvolt = <675000 675000 1000000>,
					<675000 675000 1000000>;
			clock-latency-ns = <40000>;
			opp-suspend;
		};
		opp-600000000 {
			opp-hz = /bits/ 64 <600000000>;
			opp-microvolt = <675000 675000 1000000>,
					<675000 675000 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-816000000 {
			opp-hz = /bits/ 64 <816000000>;
			opp-microvolt = <675000 675000 1000000>,
					<675000 675000 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-1008000000 {
			opp-hz = /bits/ 64 <1008000000>;
			opp-microvolt = <675000 675000 1000000>,
					<675000 675000 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-1200000000 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <675000 675000 1000000>,
					<675000 675000 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-1416000000 {
			opp-hz = /bits/ 64 <1416000000>;
			opp-microvolt = <700000 700000 1000000>,
					<700000 700000 1000000>;
			opp-microvolt-L1 = <687500 687500 1000000>,
					   <687500 687500 1000000>;
			opp-microvolt-L2 = <675000 675000 1000000>,
					   <675000 675000 1000000>;
			opp-microvolt-L3 = <675000 675000 1000000>,
					   <675000 675000 1000000>;
			opp-microvolt-L4 = <675000 675000 1000000>,
					   <675000 675000 1000000>;
			opp-microvolt-L5 = <675000 675000 1000000>,
					   <675000 675000 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-1608000000 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <750000 750000 1000000>,
					<750000 750000 1000000>;
			opp-microvolt-L1 = <737500 737500 1000000>,
					   <737500 737500 1000000>;
			opp-microvolt-L2 = <725000 725000 1000000>,
					   <725000 725000 1000000>;
			opp-microvolt-L3 = <712500 712500 1000000>,
					   <712500 712500 1000000>;
			opp-microvolt-L4 = <700000 700000 1000000>,
					   <700000 700000 1000000>;
			opp-microvolt-L5 = <700000 700000 1000000>,
					   <700000 700000 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-1800000000 {
			opp-hz = /bits/ 64 <1800000000>;
			opp-microvolt = <825000 825000 1000000>,
					<825000 825000 1000000>;
			opp-microvolt-L1 = <812500 812500 1000000>,
					   <812500 812500 1000000>;
			opp-microvolt-L2 = <800000 800000 1000000>,
					   <800000 800000 1000000>;
			opp-microvolt-L3 = <787500 787500 1000000>,
					   <787500 787500 1000000>;
			opp-microvolt-L4 = <775000 775000 1000000>,
					   <775000 775000 1000000>;
			opp-microvolt-L5 = <762500 762500 1000000>,
					   <762500 762500 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-2016000000 {
			opp-hz = /bits/ 64 <2016000000>;
			opp-microvolt = <900000 900000 1000000>,
					<900000 900000 1000000>;
			opp-microvolt-L1 = <887500 887500 1000000>,
					   <887500 887500 1000000>;
			opp-microvolt-L2 = <875000 875000 1000000>,
					   <875000 875000 1000000>;
			opp-microvolt-L3 = <862500 862500 1000000>,
					   <862500 862500 1000000>;
			opp-microvolt-L4 = <850000 850000 1000000>,
					   <850000 850000 1000000>;
			opp-microvolt-L5 = <837500 837500 1000000>,
					   <837500 837500 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-2208000000 {
			opp-hz = /bits/ 64 <2208000000>;
			opp-microvolt = <975000 975000 1000000>,
					<975000 975000 1000000>;
			opp-microvolt-L2 = <962500 962500 1000000>,
					   <962500 962500 1000000>;
			opp-microvolt-L3 = <950000 950000 1000000>,
					   <950000 950000 1000000>;
			opp-microvolt-L4 = <925000 925000 1000000>,
					   <925000 925000 1000000>;
			opp-microvolt-L5 = <912500 912500 1000000>,
					   <912500 912500 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-2400000000 {
			opp-hz = /bits/ 64 <2400000000>;
			opp-microvolt = <1000000 1000000 1000000>,
					<1000000 1000000 1000000>;
			opp-microvolt-L3 = <987500 987500 1000000>,
					   <987500 987500 1000000>;
			opp-microvolt-L4 = <975000 975000 1000000>,
					   <975000 975000 1000000>;
			opp-microvolt-L5 = <962500 962500 1000000>,
					   <962500 962500 1000000>;
			clock-latency-ns = <40000>;
		};
	};

CPU大核(CPU6-CPU7)的频率电压表配置

	cluster2_opp_table: cluster2-opp-table {
		compatible = "operating-points-v2";
		opp-shared;

		nvmem-cells = <&cpub1_leakage>;
		nvmem-cell-names = "leakage";

		rockchip,pvtm-voltage-sel = <
			0	1640	0
			1641	1675	1
			1676	1710	2
			1711	1743	3
			1744	1776	4
			1777	9999	5
		>;
		rockchip,pvtm-pvtpll;
		rockchip,pvtm-offset = <0x18>;
		rockchip,pvtm-sample-time = <1100>;
		rockchip,pvtm-freq = <1608000>;
		rockchip,pvtm-volt = <750000>;
		rockchip,pvtm-ref-temp = <25>;
		rockchip,pvtm-temp-prop = <270 270>;
		rockchip,pvtm-thermal-zone = "soc-thermal";

		rockchip,grf = <&bigcore1_grf>;
		volt-mem-read-margin = <
			855000	1
			765000	2
			675000	3
			495000	4
		>;
		low-volt-mem-read-margin = <4>;
		intermediate-threshold-freq = <1008000>;	/* KHz */
		rockchip,idle-threshold-freq = <2400000>;	/* KHz */
		rockchip,reboot-freq = <1800000>;		/* KHz */

		rockchip,temp-hysteresis = <5000>;
		rockchip,low-temp = <0>;
		rockchip,low-temp-min-volt = <725000>;

		opp-408000000 {
			opp-hz = /bits/ 64 <408000000>;
			opp-microvolt = <675000 675000 1000000>,
					<675000 675000 1000000>;
			clock-latency-ns = <40000>;
			opp-suspend;
		};
		opp-600000000 {
			opp-hz = /bits/ 64 <600000000>;
			opp-microvolt = <675000 675000 1000000>,
					<675000 675000 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-816000000 {
			opp-hz = /bits/ 64 <816000000>;
			opp-microvolt = <675000 675000 1000000>,
					<675000 675000 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-1008000000 {
			opp-hz = /bits/ 64 <1008000000>;
			opp-microvolt = <675000 675000 1000000>,
					<675000 675000 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-1200000000 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <675000 675000 1000000>,
					<675000 675000 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-1416000000 {
			opp-hz = /bits/ 64 <1416000000>;
			opp-microvolt = <700000 700000 1000000>,
					<700000 700000 1000000>;
			opp-microvolt-L1 = <687500 687500 1000000>,
					   <687500 687500 1000000>;
			opp-microvolt-L2 = <675000 675000 1000000>,
					   <675000 675000 1000000>;
			opp-microvolt-L3 = <675000 675000 1000000>,
					   <675000 675000 1000000>;
			opp-microvolt-L4 = <675000 675000 1000000>,
					   <675000 675000 1000000>;
			opp-microvolt-L5 = <675000 675000 1000000>,
					   <675000 675000 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-1608000000 {
			opp-hz = /bits/ 64 <1608000000>;
			opp-microvolt = <750000 750000 1000000>,
					<750000 750000 1000000>;
			opp-microvolt-L1 = <737500 737500 1000000>,
					   <737500 737500 1000000>;
			opp-microvolt-L2 = <725000 725000 1000000>,
					   <725000 725000 1000000>;
			opp-microvolt-L3 = <712500 712500 1000000>,
					   <712500 712500 1000000>;
			opp-microvolt-L4 = <700000 700000 1000000>,
					   <700000 700000 1000000>;
			opp-microvolt-L5 = <700000 700000 1000000>,
					   <700000 700000 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-1800000000 {
			opp-hz = /bits/ 64 <1800000000>;
			opp-microvolt = <825000 825000 1000000>,
					<825000 825000 1000000>;
			opp-microvolt-L1 = <812500 812500 1000000>,
					   <812500 812500 1000000>;
			opp-microvolt-L2 = <800000 800000 1000000>,
					   <800000 800000 1000000>;
			opp-microvolt-L3 = <787500 787500 1000000>,
					   <787500 787500 1000000>;
			opp-microvolt-L4 = <775000 775000 1000000>,
					   <775000 775000 1000000>;
			opp-microvolt-L5 = <762500 762500 1000000>,
					   <762500 762500 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-2016000000 {
			opp-hz = /bits/ 64 <2016000000>;
			opp-microvolt = <900000 900000 1000000>,
					<900000 900000 1000000>;
			opp-microvolt-L1 = <887500 887500 1000000>,
					   <887500 887500 1000000>;
			opp-microvolt-L2 = <875000 875000 1000000>,
					   <875000 875000 1000000>;
			opp-microvolt-L3 = <862500 862500 1000000>,
					   <862500 862500 1000000>;
			opp-microvolt-L4 = <850000 850000 1000000>,
					   <850000 850000 1000000>;
			opp-microvolt-L5 = <837500 837500 1000000>,
					   <837500 837500 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-2208000000 {
			opp-hz = /bits/ 64 <2208000000>;
			opp-microvolt = <975000 975000 1000000>,
					<975000 975000 1000000>;
			opp-microvolt-L2 = <962500 962500 1000000>,
					   <962500 962500 1000000>;
			opp-microvolt-L3 = <950000 950000 1000000>,
					   <950000 950000 1000000>;
			opp-microvolt-L4 = <925000 925000 1000000>,
					   <925000 925000 1000000>;
			opp-microvolt-L5 = <912500 912500 1000000>,
					   <912500 912500 1000000>;
			clock-latency-ns = <40000>;
		};
		opp-2400000000 {
			opp-hz = /bits/ 64 <2400000000>;
			opp-microvolt = <1000000 1000000 1000000>,
					<1000000 1000000 1000000>;
			opp-microvolt-L3 = <987500 987500 1000000>,
					   <987500 987500 1000000>;
			opp-microvolt-L4 = <975000 975000 1000000>,
					   <975000 975000 1000000>;
			opp-microvolt-L5 = <962500 962500 1000000>,
					   <962500 962500 1000000>;
			clock-latency-ns = <40000>;
		};
	};

GPU的频率电压表配置

gpu_opp_table: gpu-opp-table {
		compatible = "operating-points-v2";

		nvmem-cells = <&gpu_leakage>;
		nvmem-cell-names = "leakage";

		rockchip,pvtm-voltage-sel = <
			0	815	0
			816	835	1
			836	860	2
			861	885	3
			886	9999	4
		>;
		rockchip,pvtm-pvtpll;
		rockchip,pvtm-offset = <0x1c>;
		rockchip,pvtm-sample-time = <1100>;
		rockchip,pvtm-freq = <800000>;
		rockchip,pvtm-volt = <750000>;
		rockchip,pvtm-ref-temp = <25>;
		rockchip,pvtm-temp-prop = <(-135) (-135)>;
		rockchip,pvtm-thermal-zone = "gpu-thermal";

		clocks = <&cru CLK_GPU>;
		clock-names = "clk";
		rockchip,grf = <&gpu_grf>;
		volt-mem-read-margin = <
			855000	1
			765000	2
			675000	3
			495000	4
		>;
		low-volt-mem-read-margin = <4>;
		intermediate-threshold-freq = <400000>;	/* KHz */

		rockchip,temp-hysteresis = <5000>;
		rockchip,low-temp = <0>;
		rockchip,low-temp-min-volt = <725000>;

		opp-300000000 {
			opp-hz = /bits/ 64 <300000000>;
			opp-microvolt = <675000 675000 850000>,
					<675000 675000 850000>;
		};
		opp-400000000 {
			opp-hz = /bits/ 64 <400000000>;
			opp-microvolt = <675000 675000 850000>,
					<675000 675000 850000>;
		};
		opp-500000000 {
			opp-hz = /bits/ 64 <500000000>;
			opp-microvolt = <675000 675000 850000>,
					<675000 675000 850000>;
		};
		opp-600000000 {
			opp-hz = /bits/ 64 <600000000>;
			opp-microvolt = <675000 675000 850000>,
					<675000 675000 850000>;
		};
		opp-700000000 {
			opp-hz = /bits/ 64 <700000000>;
			opp-microvolt = <700000 700000 850000>,
					<700000 700000 850000>;
			opp-microvolt-L1 = <687500 687500 850000>,
					   <687500 687500 850000>;
			opp-microvolt-L2 = <675000 675000 850000>,
					   <675000 675000 850000>;
			opp-microvolt-L3 = <675000 675000 850000>,
					   <675000 675000 850000>;
			opp-microvolt-L4 = <675000 675000 850000>,
					   <675000 675000 850000>;
		};
		opp-800000000 {
			opp-hz = /bits/ 64 <800000000>;
			opp-microvolt = <750000 750000 850000>,
					<750000 750000 850000>;
			opp-microvolt-L1 = <737500 737500 850000>,
					   <737500 737500 850000>;
			opp-microvolt-L2 = <725000 725000 850000>,
					   <725000 725000 850000>;
			opp-microvolt-L3 = <712500 712500 850000>,
					   <712500 712500 850000>;
			opp-microvolt-L4 = <700000 700000 850000>,
					   <700000 700000 850000>;
		};
		opp-900000000 {
			opp-hz = /bits/ 64 <900000000>;
			opp-microvolt = <800000 800000 850000>,
					<800000 800000 850000>;
			opp-microvolt-L1 = <787500 787500 850000>,
					   <787500 787500 850000>;
			opp-microvolt-L2 = <775000 775000 850000>,
					   <775000 775000 850000>;
			opp-microvolt-L3 = <762500 762500 850000>,
					   <762500 762500 850000>;
			opp-microvolt-L4 = <750000 750000 850000>,
					   <750000 750000 850000>;
		};
		opp-1000000000 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <850000 850000 850000>,
					<850000 850000 850000>;
			opp-microvolt-L1 = <837500 837500 850000>,
					   <837500 837500 850000>;
			opp-microvolt-L2 = <825000 825000 850000>,
					   <825000 825000 850000>;
			opp-microvolt-L3 = <812500 812500 850000>,
					   <812500 812500 850000>;
			opp-microvolt-L4 = <800000 800000 850000>,
					   <800000 800000 850000>;
		};
	};

NPU的频率电压表配置

npu_opp_table: npu-opp-table {
		compatible = "operating-points-v2";

		nvmem-cells = <&npu_leakage>;
		nvmem-cell-names = "leakage";

		rockchip,pvtm-voltage-sel = <
			0	815	0
			816	835	1
			836	860	2
			861	885	3
			886	9999	4
		>;
		rockchip,pvtm-pvtpll;
		rockchip,pvtm-offset = <0x50>;
		rockchip,pvtm-sample-time = <1100>;
		rockchip,pvtm-freq = <800000>;
		rockchip,pvtm-volt = <750000>;
		rockchip,pvtm-ref-temp = <25>;
		rockchip,pvtm-temp-prop = <(-113) (-113)>;
		rockchip,pvtm-thermal-zone = "npu-thermal";

		clocks = <&cru PCLK_NPU_GRF>;
		clock-names = "pclk";
		rockchip,grf = <&npu_grf>;
		volt-mem-read-margin = <
			855000	1
			765000	2
			675000	3
			495000	4
		>;
		low-volt-read-margin = <4>;
		intermediate-threshold-freq = <500000>;	/* KHz*/
		rockchip,init-freq = <1000000>;		/* KHz */

		rockchip,temp-hysteresis = <5000>;
		rockchip,low-temp = <0>;
		rockchip,low-temp-min-volt = <725000>;

		opp-300000000 {
			opp-hz = /bits/ 64 <300000000>;
			opp-microvolt = <675000 675000 850000>,
					<675000 675000 850000>;
		};
		opp-400000000 {
			opp-hz = /bits/ 64 <400000000>;
			opp-microvolt = <675000 675000 850000>,
					<675000 675000 850000>;
		};
		opp-500000000 {
			opp-hz = /bits/ 64 <500000000>;
			opp-microvolt = <675000 675000 850000>,
					<675000 675000 850000>;
		};
		opp-600000000 {
			opp-hz = /bits/ 64 <600000000>;
			opp-microvolt = <675000 675000 850000>,
					<675000 675000 850000>;
		};
		opp-700000000 {
			opp-hz = /bits/ 64 <700000000>;
			opp-microvolt = <700000 700000 850000>,
					<700000 700000 850000>;
			opp-microvolt-L2 = <687500 687500 850000>,
					   <687500 687500 850000>;
			opp-microvolt-L3 = <675000 675000 850000>,
					   <675000 675000 850000>;
			opp-microvolt-L4 = <675000 675000 850000>,
					   <675000 675000 850000>;
		};
		opp-800000000 {
			opp-hz = /bits/ 64 <800000000>;
			opp-microvolt = <750000 750000 850000>,
					<750000 750000 850000>;
			opp-microvolt-L1 = <737500 737500 850000>,
					   <737500 737500 850000>;
			opp-microvolt-L2 = <725000 725000 850000>,
					   <725000 725000 850000>;
			opp-microvolt-L3 = <712500 712500 850000>,
					   <712500 712500 850000>;
			opp-microvolt-L4 = <700000 700000 850000>,
					   <700000 700000 850000>;
		};
		opp-900000000 {
			opp-hz = /bits/ 64 <900000000>;
			opp-microvolt = <800000 800000 850000>,
					<800000 800000 850000>;
			opp-microvolt-L1 = <787500 787500 850000>,
					   <787500 787500 850000>;
			opp-microvolt-L2 = <775000 775000 850000>,
					   <775000 775000 850000>;
			opp-microvolt-L3 = <762500 762500 850000>,
					   <762500 762500 850000>;
			opp-microvolt-L4 = <750000 750000 850000>,
					   <750000 750000 850000>;
		};
		opp-1000000000 {
			opp-hz = /bits/ 64 <1000000000>;
			opp-microvolt = <850000 850000 850000>,
					<850000 850000 850000>;
			opp-microvolt-L1 = <837500 837500 850000>,
					   <837500 837500 850000>;
			opp-microvolt-L2 = <825000 825000 850000>,
					   <825000 825000 850000>;
			opp-microvolt-L3 = <812500 812500 850000>,
					   <812500 812500 850000>;
			opp-microvolt-L4 = <800000 800000 850000>,
					   <800000 800000 850000>;
		};
	};

说明

  • 频率电压表不能修改电压,每个频点对应的电压都是固定的
  • 只能删除某个频点,去掉频点的方法:
    比如要删除cpu大核CPU4-CPU5的2.4G的频点,则在产品的dts上面加上如下修改:
&cluster1_opp_table{
        /delete-node/ opp-2400000000;
};

删除GPU的1G的频点:

&gpu_opp_table{
        /delete-node/ opp-1000000000;
};

其他频点类似。

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

loitawu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值