OS: Android 7.1
Board: Firefly-RK3399
Kernel: v4.4.55
devfreq介绍:
rk3288平台上, gpu和ddr有自己的一套dvfs机制,而在rk3399平台,使用了系统的devfreq框架。
devfreq 是内核开发者定义的一套支持动态调整设备频率和电压的的框架模型。它能有效的降
低该设备的功耗,同时兼顾其性能。
devfreq 通过不同的变频策略,选择一个合适的频率供设备使用,目前的内核版本提供了以下
几种策略:
- Simple Ondemand :根据负载动态调频调压;
- Userspace:用户自己设置电压和频率,系统不会自动调整;
- Powersave:功耗优先,始终将频率设置在最低值;
- Performance:性能优先,始终将频率设置为最高值。
devfreq和cpufreq的功能类似,只是前者用于控制device的clock,后者用来控制cpu.
dts配置:
dmc, dynamic memory controller
dmc: dmc {
compatible = "rockchip,rk3399-dmc";
devfreq-events = <&dfi>;
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&cru SCLK_DDRCLK>;
clock-names = "dmc_clk";
ddr_timing = <&ddr_timing>;
status = "disabled";
};
dfi,全称不晓得,用于监控dmc的loading模块
dfi: dfi@ff630000 {
reg = <0x00 0xff630000 0x00 0x4000>;
compatible = "rockchip,rk3399-dfi";
rockchip,pmu = <&pmugrf>;
clocks = <&cru PCLK_DDR_MON>;
clock-names = "pclk_ddr_mon";
status = "disabled";
};
ddr timing:
ddr_timing: ddr_timing {