cpufreq等高层框架对频率进行操作,为了将频率映射到相应的OPP,OPP库提供了便利的函数来搜索OPP库内部管理的OPP链表。这些搜索函数如果找到匹配的OPP,将返回指向该OPP的指针,否则返回错误。这些错误预计由标准的错误检查,如IS_ERR()来处理,并由调用者采取适当的行动。 这些函数的调用者应在使用完OPP后调用dev_pm_opp...
添加一个opp table(dev_pm_opp_add) 代码语言:javascript 代码运行次数:0 运行 AI代码解释 intdev_pm_opp_add(struct device*dev,unsigned long freq,unsigned long u_volt){struct device_opp*dev_opp=NULL;struct dev_pm_opp*opp,*new_opp;struct list_head*head;/* allocate new OPP node */new_opp...
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>; clocks = <&rcc ...
1、 opp-shared :表示 opp-table1 是小核的各 CPU 共用。2、 rockchip,temp-hysteresis :迟滞参数,防止频繁进入高温或低温,单位:毫摄氏度。3、 rockchip,low-temp :低温阈值。小于该值时,进入低温,大于‘该值+迟滞参数’时,恢复常温。4、 rockchip,low-temp-min-volt :低温下最低电压...
OPP_INITIALIZER("iva", false, 500000000, OMAP4460_VDD_IVA_OPPNITRO_UV), /* TODO: add DSP, aess, fdif, gpu */}; /** * omap4_opp_init() - initialize omap4 opp table */ int __init omap4_opp_init(void) { int r = -ENODEV; ...
generic_bL_probe接口很简单,以dt_bL_ops为参数,调用bL_cpufreq_register接口,注册cpufreq driver。dt_bL_ops是一个struct cpufreq_arm_bL_ops类型的变量,提供两个回调函数,分别用于获取cluster切换之间的延迟,以及初始化opp table,后面用到的时候再介绍。
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...
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-...
operating-points-v2 = <&cpu0_opp_table>; }; }; 在cpus节点,#address-cells被设置成了1,#size-cells被设置成了0。这是说子reg值是单独的uint32,它用无大小字段表示地址。在此情况下,这两个cpu分配到的地址为0和1。cpu节点的#size-cells是0因为每个cpu只分配到了一个单独的地址。
operating-points-v2 = <&cpu_opp_table>; #cooling-cells = <2>;/*min followed by max*/clock-latency = <40000>; clocks= <&cru ARMCLK>; dynamic-power-coefficient = <370>; }; }; 2.2.4 memory节点 所有设备树都需要一个memory设备节点,它描述了系统的物理内存布局。如果系统有多个内存块,可以...