[Linux 驱动] -- 电源管理芯片之 Regulator 用法 与具体使用实例

一、regulator 用法

1.1、 电源管理 regulator 分成静态和动态:静态不需要改变电压电流,只需要开关电源,用在 BootLoader、frameware、kernel board 阶段等;动态是根据需要改变电压电流。

1.2、 获取设备的 regulator、dev 为驱动对应的设备指针,可以用NULL,Vcc 为电源的 ID,内核会查表找到电源 ID 对应的 regulator。如:struct regulator *ldo; ldo = regualtor_get(NULL, "act_ldo5");

regulator = regulator_get(dev, "Vcc");  //获取设备 regulator

1.3、 regulator_put(regulator); //释放regulator

1.4、 int regulator_enable(regulator); //使能电源输出。调用之前也可能已经使能了。所以用下面函数判断。

1.5、 int regulator_is_enabled(regulator); //判断是否使能, >0 表示已经使能。

1.6、 int regulator_disable(regulator); //关闭电源输出。但是未必立刻关闭,有可能存在电源共享的场景。

1.7、int regulator_force_disable(regulator); //强制关闭电源。

1.8、int regulator_set_volatage(regulator, min_uV, max_uV); //调节电压的最小和最大输出。如果接下去调用 regulator_enable,那么这个值马上就生效,如果调用 regulator_disable 等其他的,要等到下一次调用 regulator_enable 时才能生效。

1.9、int regulator_get_voltage(regulator); //通过此接口获取配置的输出电压。

实例如下:

regulator_set_voltage(ldo_28, 2800000, 2800000); //设置电压
regulator_enable(ldo_28); //使能
int value = regulator_get_voltage(ldo_28); //获取电压值

regulator_put(ldo_28); //释放

二、具体使用实例

2.1 设备树配置如下

ldo8: ldo8 {
        regulator-compatible = "LDO8";
        regulator-name = "ldo8_1v5";
        regulator-min-microvolt = <1500000>;
        regulator-max-microvolt = <1600000>;
        //regulator-boot-on;   //boot 时打开
        //regulator-always-on; //一直打开
        sleep-slot = <15>;
        poweron-slot = <0x20>;
};

2.2 驱动源码如下

//打开
struct regulator *reg;
reg = devm_regulator_get(&i2c->dev, "ldo8_1v5");
regulator_set_volatage(reg, 1500000, 1500000);
regulator_enable(reg);

//关闭
struct regulator *reg;
reg = devm_regualtor_get(&i2c->dev, "ldo8_1v5");
regulator_disable(reg);

注:关于regulator 的详细介绍,可参考 -- 蜗窝科技 -- Linux Regulator Framework 相关章节

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值