开始之前,首先我们要知道什么是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,如:文章来源:https://www.toymoban.com/news/detail-671522.html
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,如:文章来源地址https://www.toymoban.com/news/detail-671522.html
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;
}
到了这里,关于高通SDM450平台的LDO 输出与电压调节的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!