高通SDM450平台的LDO 输出与电压调节

本文介绍了高通SDM450平台上LDO(低压线性稳压器)的调试方法,包括如何打开、关闭某路LDO电压以及如何调整LDO输出电压。通过修改特定配置文件和驱动代码,实现LDO的控制,并讲解了regulator机制的相关函数用法。
摘要由CSDN通过智能技术生成

开始之前,首先我们要知道什么是LDO?有什么作用?LDO调试需要调哪些?

什么是LDO,有什么作用?

LDO为 低压线性稳压器,高通平台有多路LDO电压输出,以SDM450 为例 共有 LDO1~LDO23 23路。用于给外设提供电源。

LDO需要调什么?

LDO的调试主要 有 打开和关闭 LDO电压 和 调整 LDO 输出电压 两种情况。

明白了LDO的意义和调试内容之后,接下来以高通 SDM450 平台为例,开始详细讲解如何调试LDO

(1)如何打开、关闭 某路LDO 电压 ?

我们以第16路ldo为例,,发现 pm8953_l16 这路 ldo电压 一直没有输出,查找原因发现没有控制此路电压输出。修改:

【1】在 RPM.BF.2.4/rpm_proc/core/systemdrivers/pmic/config/msm8953/pm_config_target.c 下 看到 LDO16 为 PM_ACCESS_DISALLOWED 禁止状态,将其修改为 PM_ACCESS_ALLOWED

【2】在需要用到此路电压的驱动的 dtsi 中 增加  vdd-io-supply 结点并以赋值pm8953_l16,如:

 gpio_tax {

               status = "ok";

               compatible = "qcom,test_dev";

             +  vdd-io-supply = <&pm8953_l16>;

               pinctrl-names = "test_default", "test_power_on", "test_power_off";

               pinctrl-0 = <&test_default>;

               pinctrl-1 = <&test_power_on>;

               pinctrl-2 = <&test_power_off>;



       };

在驱动代码中,使用 regulator_get 函数 获取  regulator 指针后 调用 regulator_enable 开启 ldo,如:

    vdd_io = regulator_get(&pdev->dev, "vdd-io");
    if (IS_ERR(vdd_io)) {
        PLOG("regulator get of vdd_io failed");
        vdd_io = NULL;
        ret = -1;
    }
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值