[ RV1108_LINUX] 关于如何调整cpu中vdd_core的电压

文章讨论了如何在rv1108平台中通过调整dvfs节点的pd_core和pd_ddr频率,以及确认SDK配置不启用DVFS。给出了针对rk816-regulator的代码修改建议,以直接设置vdd_core的电压为1200000mV。
摘要由CSDN通过智能技术生成

问题描述

通过rv1108.dtsi调整其中dvfs节点下pd_core和pd_ddr对应频率的电压。发现修改后电压并没有改变,一直为11.25v。尝试了将pd_core下的operating-points中的1008000 1150000修改为1008000 1200000,也无作用。将operating-points中频率是留一个,指定电压为1200000。电压依旧为11.25v,那么应该如何修改vdd_core的电压的呢?


解决方案:

首先核查SDK的配置,SDK不要开启DVFS变频。
KERNEL下的.config配置如下: # CONFIG_DVFS is not set

如果要修改vdd_core的电压,可以单独加下代码:

diff --git a/drivers/regulator/rk816-regulator.c b/drivers/regulator/rk816-regulator.c
index 0b070b2..1609f60 100644
--- a/drivers/regulator/rk816-regulator.c
+++ b/drivers/regulator/rk816-regulator.c
@@ -766,6 +766,7 @@ static int rk816_regulator_probe(struct platform_device *pdev)
        struct regulator_config config = {};
        struct regulator_dev *rk816_rdev;
        int ret, i;
+    unsigned int sel;

        if (!pdata || !pdata->chip_name) {
                dev_err(&pdev->dev, "invalid platform data\n");
@@ -814,6 +815,11 @@ static int rk816_regulator_probe(struct platform_device *pdev)
                }

                rk816->rdev[i] = rk816_rdev;
+        if(rk8xx_reg->reg_desc[i].id==RK805_ID_DCDC1
+            ||rk8xx_reg->reg_desc[i].id==RK816_ID_DCDC1){
+           printk("%s>>>>set dcdc1 voltage\n",__func__);
+           rk816_dcdc_set_voltage(rk816->rdev[i],1200000,1200000,&sel);
+        }
        }


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值