OS: Android 6.0
Kernel: 3.10.92
DVFS即Dynamic Voltage and Frequency Scaling.
有看到RK将DDR的控制也放在DVFS中,也就是说DDR会在系统运行时被根据不同的情况
做出不同的频率调整以降低系统功耗.DVFS驱动在dvfs.c中,这里不做描述,只要关注调用的接口即可.
相关文件:
ddr驱动,直接和硬件打交道.
rk3288.c
ddr控制接口.
ddr_freq.c
ddr和用户空间交互接口.
dvfs.c
dvfs驱动.
rk_system_status.c
system status控制接口.
dts:
&clk_ddr_dvfs_table {
/*不同的频率需要对应不同的电压.*/
operating-points = <
/* KHz uV */
200000 1050000
300000 1050000
400000 1100000
533000 1150000
>;
/*系统有两种控制方法:
一种是根据当前的video 分辨率(这里称作系统状态)来决定ddr freq;
还有一种就是下面的auto-freq-table,系统根据当前的loading来自动控制频率.
前者会被优先判断,当系统状态不是前者任何一种时,再选择使用后者策略。
*/