电源管理芯片之 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 相关章节
电源管理芯片之 Regulator 用法 与具体使用实例相关推荐
- 电源管理芯片之 Regulator用法。
有问题请加:Q群: 241359063 共同走向创业学习之旅. 原创:kylin_zeng http://blog.chinaunix.net/uid/23795897.html 转载请注明原创 ...
- java super实例_java Super 用法详解及实例代码
java Super 用法详解及实例代码 发布于 2021-1-8| 复制链接 摘记: java Super 用法详解 1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建 ...
- python线程创建对象_Python线程下thread对象的用法介绍(附实例)
本篇文章给大家带来的内容是关于Python线程下thread对象的用法介绍(附实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Thread对象 Thread类用于表示单独的控制 ...
- java list用法_Java List 用法详解及实例分析
Java List 用法详解及实例分析 Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺 ...
- C++中const关键字用法详解及实例和源码下载(一)
最近在学习C++基础部分,看了两天书,已经看过了一遍,半知半解,回过头来重新看第二遍,深入了解一下C++的基础知识.现在读到了const关键字的用法,书上面讲解的时候并没有给出完整的实例,只是理论的讲 ...
- php this指针的用法,C#_C#中this指针的用法示例,本文实例展示了C#中this指针的 - phpStudy...
C#中this指针的用法示例 本文实例展示了C#中this指针的用法,对于初学者进一步牢固掌握C#有很大帮助,具体内容如下: 一.this指针是什么: 这里有一些面向对象编程的概念需要说明:类(Cla ...
- java中throws用法_java中throws实例用法详解
在程序出现异常时,会有一个抛出异常的throw出现,这里我们要跟今天所讲的throws区分开.throws的作用是声明抛出,在名称上也跟throw有所不同.下面我们就throws对策概念.语法.实例带 ...
- pythonappend用法_python中append实例用法总结
append()函数 描述:在列表ls最后(末尾)添加一个元素object 语法:ls.append(object) -> None 无返回值 例: a=[1,2,3] a.append(5) ...
- a jquery 标签点击不跳转_form标签的action属性怎么用?form标签action属性的用法介绍(附实例)...
本篇文章主要的介绍了关于HTML中form标签action属性的用法介绍和实例,还有关于form标签的action属性的定义和语法介绍,最后徐还有关于form标签的action属性的作用解释.现在让我 ...
- 判断form表单里面的元素属性是否有数据_html form标签的action属性是什么意思?又有哪些用法?(附实例)...
本篇文章主要的介绍HTML form表单标签的action属性的用法,用法介绍和实例等都在里面,现在让我们一起来看吧 程序猿的生活:打造全网web前端全栈资料库(总目录)看完学的更快,掌握的更加牢固, ...
最新文章
- titanium开发教程-04-11其他属性和方法
- Dataset:数据集集合(NLP方向数据集)——常见的自然语言处理数据集大集合(建议收藏,持续更新)
- ACE前摄器Proactor模式
- 大话TreeMap的put,get过程
- 从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构)
- DockerONE 干货 深入理解Docker容器和镜像
- 【转】pthread mutex 基本用法
- 商业智能BI有哪些数据价值
- zgc,JDK8有类似的shenandoah,华为移植到JDK11
- SQL Server2016安装教程
- 图解TCPIP---第一章
- UTM坐标和WGS84坐标转换
- python3之url编码互转
- mybatis简单查询
- ac6005直连ap 如何配置_邀请实测搭档 完成AC+瘦AP经典组网_华为 AC6005_网络设备-中关村在线...
- 一个操作系统的实现(8)进程间通信
- 黄健翔激情解说之中国移动版、石化版、房地产版
- 好文转载—程序员的禅修之路
- H5中ajax()方法发送网络数据请求
- FlyAI小课堂:python机器学习笔记:深入学习决策树算法原理
热门文章
- xlp 开发环境在Ubuntu11.4中的建立
- Edit Control响应全选(Ctrl+A)
- android 照片裁剪_如何在Android上裁剪和编辑照片
- Meta:多人联机VR游戏这样拉新
- Dapp测评 | Dpark冠军团队原班人马全新力作:Monster Tamer怪兽大战,一触即发
- linux调整列显示宽度,使单元格或列自动调整宽度 - 在SWT中使用OLE操纵Excel_Linux编程_Linux公社-Linux系统门户网站...
- [CVPR2022|基于文本实例分割]ReSTR: Convolution-free Referring Image Segmentation Using Transformers
- 图解电影的网站有那些?
- 软件性能测试方案怎么写?完整的性能测试报告模板分享
- 如何搭建IPv6测试你的APP