opp-suspend; }; opp-1008000000 { opp-hz = /bits/ 64 <1008000000>; opp-microvolt = <925000 925000 1200000>; opp-microvolt-L0 = <925000 925000 1200000>; opp-microvolt-L1 = <900000 900000 1200000>; opp-microvolt-L2 = <875000 875000 1200000>; opp-microvolt-L3 = <850000 850000 120000...
1、 opp-shared :表示 opp-table1 是小核的各 CPU 共用。2、 rockchip,temp-hysteresis :迟滞参数,防止频繁进入高温或低温,单位:毫摄氏度。3、 rockchip,low-temp :低温阈值。小于该值时,进入低温,大于‘该值+迟滞参数’时,恢复常温。4、 rockchip,low-temp-min-volt :低温下最低电压...
l min_freq_req/ max_freq_req:这几个成员用于cpufreq qos特性,主要用于修改该policy支持的最低、最高频率。 l freq_table:用于保存该policy支持的所有频点,这些频点数据是在cpufreq驱动初始化时,从cpu对应的opp表中读取的。而freq_table_sorted用于指定这些频点的排序方式。 l policy_list:它用于将该policy挂到...
opp library维护一张内部的列表,Soc框架只需要填充和访问opp数据。但是struct dev_opp和struct dev_pm_opp结构只是在opp library内部使用,外部不需要关心其内部。 API接口说明 添加一个opp table(dev_pm_opp_add) 代码语言:javascript 复制 intdev_pm_opp_add(struct device*dev,unsigned long freq,unsigned long ...
nvmem-cell-names="part_number";#cooling-cells = <2>;};};cpu0_opp_table: cpu0-opp-table{compatible="operating-points-v2";opp-shared;};... spi2: spi@4000b000{#address-cells = <1>;#size-cells = <0>;compatible="st,stm32h7-spi";reg=<0x4000b000 0x400>;interrupts=<GIC_SPI36IR...
cpu0_opp_table: cpu0-opp-table { compatible ="operating-points-v2"; opp-shared; }; ... spi2: spi@4000b000 {#address-cells = <1>;#size-cells = <0>;compatible ="st,stm32h7-spi"; reg = <0x4000b000 0x400>; interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; ...
通常使用opp的方式有以下几步: a. 用户为设备(比如CPU)配置/注册一些默认的opp信息。 b. Soc会根据具体的运行情况,通过opp层去改变/查询设备的opp信息。 (users) -> registers a set of default OPPs -> (library) SoC framework -> modifies on required cases certain OPPs -> OPP layer ->queries to ...
generic_bL_probe接口很简单,以dt_bL_ops为参数,调用bL_cpufreq_register接口,注册cpufreq driver。dt_bL_ops是一个struct cpufreq_arm_bL_ops类型的变量,提供两个回调函数,分别用于获取cluster切换之间的延迟,以及初始化opp table,后面用到的时候再介绍。
...of_init_opp_table(从dt中初始化opp table) 先列举一个opp在dt中的格式: cpu@0 { compatible = "arm,cortex-a9"; reg = <0 2.6K20 1.Linux电源管理-休眠与唤醒 /module.h> #include linux/init.h> #include linux/fs.h> #include linux/interrupt.h> #include linux.../irq.h> #include ...
49 operating-points-v2 = <&cpu_opp_table>;50 cpu-idle-states = <&CPU_SLEEP_0>;51 };5253 cpu3: cpu@3 {54 compatible = "arm,cortex-a53", "arm,armv8";55 device_type = "cpu";56 enable-method = "psci";57 reg = <0x3>;58 operating-points-...