一、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); //通过此接口获取配置的输出电压。

实例如下:

  1. regulator_set_voltage(ldo_28, 2800000, 2800000); //设置电压

  2. regulator_enable(ldo_28); //使能

  3. int value = regulator_get_voltage(ldo_28); //获取电压值

  4. regulator_put(ldo_28); //释放

二、具体使用实例

2.1 设备树配置如下

  1. ldo8: ldo8 {

  2. regulator-compatible = "LDO8";

  3. regulator-name = "ldo8_1v5";

  4. regulator-min-microvolt = <1500000>;

  5. regulator-max-microvolt = <1600000>;

  6. //regulator-boot-on; //boot 时打开

  7. //regulator-always-on; //一直打开

  8. sleep-slot = <15>;

  9. poweron-slot = <0x20>;

  10. };

2.2 驱动源码如下

  1. //打开

  2. struct regulator *reg;

  3. reg = devm_regulator_get(&i2c->dev, "ldo8_1v5");

  4. regulator_set_volatage(reg, 1500000, 1500000);

  5. regulator_enable(reg);

  6. //关闭

  7. struct regulator *reg;

  8. reg = devm_regualtor_get(&i2c->dev, "ldo8_1v5");

  9. regulator_disable(reg);

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

电源管理芯片之 Regulator 用法 与具体使用实例相关推荐

  1. 电源管理芯片之 Regulator用法。

    有问题请加:Q群: 241359063  共同走向创业学习之旅. 原创:kylin_zeng  http://blog.chinaunix.net/uid/23795897.html  转载请注明原创 ...

  2. java super实例_java Super 用法详解及实例代码

    java Super 用法详解及实例代码 发布于 2021-1-8| 复制链接 摘记: java  Super 用法详解 1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建 ...

  3. python线程创建对象_Python线程下thread对象的用法介绍(附实例)

    本篇文章给大家带来的内容是关于Python线程下thread对象的用法介绍(附实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Thread对象 Thread类用于表示单独的控制 ...

  4. java list用法_Java List 用法详解及实例分析

    Java List 用法详解及实例分析 Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺 ...

  5. C++中const关键字用法详解及实例和源码下载(一)

    最近在学习C++基础部分,看了两天书,已经看过了一遍,半知半解,回过头来重新看第二遍,深入了解一下C++的基础知识.现在读到了const关键字的用法,书上面讲解的时候并没有给出完整的实例,只是理论的讲 ...

  6. php this指针的用法,C#_C#中this指针的用法示例,本文实例展示了C#中this指针的 - phpStudy...

    C#中this指针的用法示例 本文实例展示了C#中this指针的用法,对于初学者进一步牢固掌握C#有很大帮助,具体内容如下: 一.this指针是什么: 这里有一些面向对象编程的概念需要说明:类(Cla ...

  7. java中throws用法_java中throws实例用法详解

    在程序出现异常时,会有一个抛出异常的throw出现,这里我们要跟今天所讲的throws区分开.throws的作用是声明抛出,在名称上也跟throw有所不同.下面我们就throws对策概念.语法.实例带 ...

  8. pythonappend用法_python中append实例用法总结

    append()函数 描述:在列表ls最后(末尾)添加一个元素object 语法:ls.append(object) -> None 无返回值 例: a=[1,2,3] a.append(5) ...

  9. a jquery 标签点击不跳转_form标签的action属性怎么用?form标签action属性的用法介绍(附实例)...

    本篇文章主要的介绍了关于HTML中form标签action属性的用法介绍和实例,还有关于form标签的action属性的定义和语法介绍,最后徐还有关于form标签的action属性的作用解释.现在让我 ...

  10. 判断form表单里面的元素属性是否有数据_html form标签的action属性是什么意思?又有哪些用法?(附实例)...

    本篇文章主要的介绍HTML form表单标签的action属性的用法,用法介绍和实例等都在里面,现在让我们一起来看吧 程序猿的生活:打造全网web前端全栈资料库(总目录)看完学的更快,掌握的更加牢固, ...

最新文章

  1. titanium开发教程-04-11其他属性和方法
  2. Dataset:数据集集合(NLP方向数据集)——常见的自然语言处理数据集大集合(建议收藏,持续更新)
  3. ACE前摄器Proactor模式
  4. 大话TreeMap的put,get过程
  5. 从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构)
  6. DockerONE 干货 深入理解Docker容器和镜像
  7. 【转】pthread mutex 基本用法
  8. 商业智能BI有哪些数据价值
  9. zgc,JDK8有类似的shenandoah,华为移植到JDK11
  10. SQL Server2016安装教程
  11. 图解TCPIP---第一章
  12. UTM坐标和WGS84坐标转换
  13. python3之url编码互转
  14. mybatis简单查询
  15. ac6005直连ap 如何配置_邀请实测搭档 完成AC+瘦AP经典组网_华为 AC6005_网络设备-中关村在线...
  16. 一个操作系统的实现(8)进程间通信
  17. 黄健翔激情解说之中国移动版、石化版、房地产版
  18. 好文转载—程序员的禅修之路
  19. H5中ajax()方法发送网络数据请求
  20. FlyAI小课堂:python机器学习笔记:深入学习决策树算法原理

热门文章

  1. xlp 开发环境在Ubuntu11.4中的建立
  2. Edit Control响应全选(Ctrl+A)
  3. android 照片裁剪_如何在Android上裁剪和编辑照片
  4. Meta:多人联机VR游戏这样拉新
  5. Dapp测评 | Dpark冠军团队原班人马全新力作:Monster Tamer怪兽大战,一触即发
  6. linux调整列显示宽度,使单元格或列自动调整宽度 - 在SWT中使用OLE操纵Excel_Linux编程_Linux公社-Linux系统门户网站...
  7. [CVPR2022|基于文本实例分割]ReSTR: Convolution-free Referring Image Segmentation Using Transformers
  8. 图解电影的网站有那些?
  9. 软件性能测试方案怎么写?完整的性能测试报告模板分享
  10. 如何搭建IPv6测试你的APP