RK3588设备树节点解读(电源-GPU)

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

		nvmem-cells = <&gpu_leakage>, <&gpu_opp_info>, <&specification_serial_number>;
		nvmem-cell-names = "leakage", "opp-info", "specification_serial_number";
		rockchip,supported-hw;

		rockchip,pvtm-hw = <0x04>;
		rockchip,pvtm-voltage-sel-hw = <
			0	799	0
			800	819	1
			820	844	2
			845	869	3
			870	894	4
			895	9999	5
		>;
		rockchip,pvtm-voltage-sel = <
			0	815	0
			816	835	1
			836	860	2
			861	885	3
			886	910	4
			911	9999	5
		>;
		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 = <10000>;
		rockchip,low-temp-min-volt = <750000>;
		rockchip,high-temp = <85000>;
		rockchip,high-temp-max-freq = <800000>;

		/* RK3588 gpu OPPs */
		opp-300000000 {
			opp-supported-hw = <0xf9 0xffff>;
			opp-hz = /bits/ 64 <300000000>;
			opp-microvolt = <675000 675000 850000>,
					<675000 675000 850000>;
		};
		opp-400000000 {
			opp-supported-hw = <0xf9 0xffff>;
			opp-hz = /bits/ 64 <400000000>;
			opp-microvolt = <675000 675000 850000>,
					<675000 675000 850000>;
		};
		opp-500000000 {
			opp-supported-hw = <0xf9 0xffff>;
			opp-hz = /bits/ 64 <500000000>;
			opp-microvolt = <675000 675000 850000>,
					<675000 675000 850000>;
		};
		opp-600000000 {
			opp-supported-hw = <0xf9 0xffff>;
			opp-hz = /bits/ 64 <600000000>;
			opp-microvolt = <675000 675000 850000>,
					<675000 675000 850000>;
		};
		opp-700000000 {
			opp-supported-hw = <0xf9 0xffff>;
			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-microvolt-L5 = <675000 675000 850000>,
					   <675000 675000 850000>;
		};
		opp-800000000 {
			opp-supported-hw = <0xf9 0xffff>;
			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-microvolt-L5 = <700000 700000 850000>,
					   <700000 700000 850000>;
		};
		opp-900000000 {
			opp-supported-hw = <0xf9 0xffff>;
			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-microvolt-L5 = <737500 737500 850000>,
					   <737500 737500 850000>;
		};
		opp-1000000000 {
			opp-supported-hw = <0xf9 0xffff>;
			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>;
			opp-microvolt-L5 = <787500 787500 850000>,
					   <787500 787500 850000>;
		};

		/* RK3588J/M gpu OPPs */
		opp-j-m-300000000 {
			opp-supported-hw = <0x06 0xffff>;
			opp-hz = /bits/ 64 <300000000>;
			opp-microvolt = <750000 750000 850000>,
					<750000 750000 850000>;
		};
		opp-j-m-400000000 {
			opp-supported-hw = <0x06 0xffff>;
			opp-hz = /bits/ 64 <400000000>;
			opp-microvolt = <750000 750000 850000>,
					<750000 750000 850000>;
		};
		opp-j-m-500000000 {
			opp-supported-hw = <0x06 0xffff>;
			opp-hz = /bits/ 64 <500000000>;
			opp-microvolt = <750000 750000 850000>,
					<750000 750000 850000>;
		};
		opp-j-m-600000000 {
			opp-supported-hw = <0x06 0xffff>;
			opp-hz = /bits/ 64 <600000000>;
			opp-microvolt = <750000 750000 850000>,
					<750000 750000 850000>;
		};
		opp-j-m-700000000 {
			opp-supported-hw = <0x06 0xffff>;
			opp-hz = /bits/ 64 <700000000>;
			opp-microvolt = <750000 750000 850000>,
					<750000 750000 850000>;
		};
		/* RK3588J gpu OPPs */
		opp-j-850000000 {
			opp-supported-hw = <0x04 0xffff>;
			opp-hz = /bits/ 64 <850000000>;
			opp-microvolt = <787500 787500 850000>,
					<787500 787500 850000>;
			opp-microvolt-L1 = <775000 775000 850000>,
					   <775000 775000 850000>;
			opp-microvolt-L2 = <762500 762500 850000>,
					   <762500 762500 850000>;
			opp-microvolt-L3 = <750000 750000 850000>,
					   <750000 750000 850000>;
			opp-microvolt-L4 = <750000 750000 850000>,
					   <750000 750000 850000>;
			opp-microvolt-L5 = <750000 750000 850000>,
					   <750000 750000 850000>;
		};
		/* RK3588M gpu OPPs */
		opp-m-800000000 {
			opp-supported-hw = <0x02 0xffff>;
			opp-hz = /bits/ 64 <800000000>;
			opp-microvolt = <750000 750000 850000>,
					<750000 750000 850000>;
		};
		opp-m-900000000 {
			opp-supported-hw = <0x02 0xffff>;
			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-microvolt-L5 = <750000 750000 850000>,
					   <750000 750000 850000>;
		};
		opp-m-1000000000 {
			opp-supported-hw = <0x02 0xffff>;
			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>;
			opp-microvolt-L5 = <787500 787500 850000>,
					   <787500 787500 850000>;
		};
	};

顶层属性

  • gpu_opp_table: 这是一个GPU操作性能点表的定义。
  • compatible: 表示这个设备树节点与"operating-points-v2"兼容。
  • nvmem-cells: 定义了三个非易失性内存单元,用于存储GPU泄漏信息、OPP信息和规格序列号。
  • nvmem-cell-names: 对应nvmem-cells的名字。

Rockchip特定属性

  • rockchip,supported-hw: 表示支持的硬件。
  • rockchip,pvtm-hw: 硬件PVTM(Process, Voltage, Temperature Monitor)的标识。
  • rockchip,pvtm-voltage-sel-hw 和 rockchip,pvtm-voltage-sel: 定义了PVTM电压选择的硬件和软件映射。
  • rockchip,pvtm-pvtpll: 表示PVTM PLL(Phase-Locked Loop)。
  • rockchip,pvtm-offset: 定义了PVTM的偏移。
  • rockchip,pvtm-sample-time: PVTM采样时间。
  • rockchip,pvtm-freq: PVTM频率。
  • rockchip,pvtm-volt: PVTM电压。
  • rockchip,pvtm-ref-temp: PVTM参考温度。
  • rockchip,pvtm-temp-prop: PVTM温度属性。
  • rockchip,pvtm-thermal-zone: 指定PVTM的热区。

时钟与电压

  • clocks 和 clock-names: 定义了GPU的时钟及其名称。
  • rockchip,grf: GPU的General Register Files(GRF)。
  • volt-mem-read-margin 和 low-volt-mem-read-margin: 定义了不同电压的内存读取裕量。
  • intermediate-threshold-freq: 中间阈值频率,以KHz为单位。

温度相关属性

  • rockchip,temp-hysteresis: 温度滞后值。
  • rockchip,low-temp 和 rockchip,low-temp-min-volt: 低温和低温下的最小电压。
  • rockchip,high-temp 和 rockchip,high-temp-max-freq: 高温和高温下的最大频率。

RK3588 GPU OPPs

这些是针对RK3588 GPU的操作性能点。

  • opp-300000000 到 opp-1000000000 定义了在300MHz到1GHz之间的频率下所需的电压。
  • 每个OPP包含以下字段:
    • opp-supported-hw:表示支持的硬件,0xf9表示支持的硬件系列。
    • opp-hz:频率,以赫兹为单位。
    • opp-microvolt:电压,以微伏为单位,多个值用于不同的电压域。
    • opp-microvolt-Lx:L1到L5表示不同电压域的具体电压值。

RK3588J/M GPU OPPs

这些是针对RK3588J和RK3588M GPU的操作性能点。

  • opp-j-m-300000000 到 opp-j-m-700000000 定义了在300MHz到700MHz之间的频率下所需的电压。
  • opp-supported-hw:0x06表示支持的硬件系列。

RK3588J GPU OPPs

这些是专门针对RK3588J GPU的操作性能点。

  • opp-j-850000000 定义了在850MHz频率下所需的电压。
  • opp-supported-hw:0x04表示支持的硬件系列。

RK3588M GPU OPPs

这些是专门针对RK3588M GPU的操作性能点。

  • opp-m-800000000 到 opp-m-1000000000 定义了在800MHz到1GHz之间的频率下所需的电压。
  • opp-supported-hw:0x02表示支持的硬件系列。
  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值