Regulator的使用
1电源管理 Regulator 分成静态和动态:静态不需要改变电压电流,只需要开光电源,用在bootloader,firmware,kernel board 阶段等。动态,根据需要改变电压电流。
2 获取设备的regulator,dev为驱动对应的设备指针,可以用NULL,Vcc为电源的ID,内核会查表找到电源ID对应的regulator。如:struct regulator *ldo; ldo=regulator_get(NULL,“act_ldo5”);
API
regulator = regulator_get(dev, "Vcc");//获取设备regulator.
regulator_put(regulator); //释放regulator。
int regulator_enable(regulator);//使能电源输出。调用之前也可能已经使能了。所以用下面函数判断。
int regulaor_is_enabled(regulator); //判断是否使能,>0 表示已经使能。
int regulator_disable(regulator);//关闭电源输出。但是未必立刻关闭,有可以存在电源共享的场景。
int regulator_force_disable(regulator);//强制关闭电源。
int regulator_set_voltage(regulator,min_uV,max_uV);//调节电压的最小和最大输出。如果接下去调用regulator_enable ,那么这个值马上就生效,如果调用regulator_disable等其他的,要等到下一次调用regulator_enable时才能生效。
int regulator_get_voltage(regulator); //通过此接口获取配置的输出电压
例子
static struct device *lens_device;
static struct regulator *regVCAMAF;
void FRegulatorCtrl(void)
{int Status;if(NULL==regVCAMAF)//申请address成功后,没有必要重复申请,以防产生碎片或由于address 改变disable fail{regVCAMAF = regulator_get(lens_device, "vldo28"); //lens_device位NULL,内核会查表得到vldo28Status = regulator_set_voltage(regVCAMAF, 3000000, 3000000);if (Status != 0)printk("lregulator_set_voltage fail\n");}
}
void xxx_power_on(void)
{int Status;FRegulatorCtrl();Status = regulator_is_enabled(regVCAMAF);//判断是否已经被enable过,否者可能会造成disable failif(!Status) {Status = regulator_enable(regVCAMAF);if (Status != 0)printk("regulator_enable fail\n");}
}void xxx_power_off(void)
{int Status;FRegulatorCtrl();Status = regulator_disable(regVCAMAF);if (Status != 0)printk("regulator_disable fail\n");
}
Regulator的使用相关推荐
- 谁的bug? 正则 拷贝和粘贴 regulator工具
写一些数据抓取工具的时候. 我们一般是查看网页的源代码.然后把源代码拷到 regulator哪边去检测.开始写正则. 这个时候一个,难以查觉的错误发生了. 有时候你会发现.你写的正则在regulato ...
- linux 电源管理 regulator,Linux内核电源管理综述
资料: http://blog.csdn.net/bingqingsuimeng/article/category/1228414 http://os.chinaunix.net/a2006/0519 ...
- Regulator的下载地址
都说Regulator"是一种很有特色的工具,能够使生成和测试正则表达式变得很容易",想从网上下载试一下,不料全是清一色的 http://royo.is-a-geek.com/re ...
- 正则表达式超级生成工具 Regulator
正则表达式的概念和作用就不多说了.正则表达式不好写(不好想),所以有很多工具来帮助我们写正则表达式,The Regulator 就是其中的佼佼者(被列入MSDN上的知名文章<Ten Must-H ...
- .NET开发 程序员必备工具 -- Regulator:生成正则表达式工具
Regulator 是最近添加到我的头等工具清单中的.它是一种很有特色的工具,能够使生成和测试正则表达式变得很容易.由于正则表达式在 .NET 框架中受到极好的支持,因而人们对正则表达式重新产生了兴趣 ...
- 电源管理芯片LDO(Low Dropout Regulator)分析1
随着便携式的电子产品种类数量逐渐变多,一款好的电源管理芯片往往会给电子产品带来给优质的性能,在电源管理芯片中,LDO起到一个很重要的作用,我在进入模拟IC到现在以来,一直在进行LDO的学习和研究,那么 ...
- Regulator子系统
基本介绍 Regulator指的是稳定器,有电压稳定器及电流稳定器两种,能够自动维持恒定电流或者电压.其中,电压稳定器voltage regulator在电路中比较常见.从设备驱动的角度来看,regu ...
- Regulator相关GPIO控制使用流程简析
转载请注明出处,亲1,注册到平台 举例: extern struct gpio_regulator_platform_data v210_gpio_regs_platform_data; static ...
- 电源管理芯片之 Regulator用法。
有问题请加:Q群: 241359063 共同走向创业学习之旅. 原创:kylin_zeng http://blog.chinaunix.net/uid/23795897.html 转载请注明原创 ...
- HX3001升压IC芯片-Synchronous Boost DC/DC Regulator
HX3001升压IC芯片-Synchronous Boost DC/DC Regulator Description The HX3001 is high efficiency synchronous ...
最新文章
- 浅谈ASP.NET的Postback
- Linux驱动之内核加载模块过程分析
- DL:深度学习模型概览(包括DNN、CNN、RNN等)的简介、网络结构简介、使用场景对比之详细攻略
- 普通视图和物化视图区别
- protobuf版本冲突
- Visual Studio 20周年软件趋势随想
- Linux基础学习导图
- linux进程状态d状态,linux – 进程永久停留在D状态
- linux内存管理:kmap、vmap、ioremap
- 【EntityFramework系列教程五,翻译】在ASP.NET MVC程序中借助EntityFramework读取相关数据...
- MVC 使用 Ueditor富文本编辑器
- Tomcat7安装和配置以及优化
- gtp怎么安装系统_gpt分区怎么重装系统|GPT分区重装系统win10详细步骤
- 服务器显示器超频,电脑显示器超频怎么恢复正常 电脑显示器超频是什么原因...
- Multisim14仿真基本模拟电路之 10.5电压比较器及其应用电路的仿真实验与分析
- 训练little wihte:events.out.tfevents到底是什么文件?
- 一件虚拟连衣裙价值9500美元?然而这只是数字服装的开始……
- 凌动z3735f运行64位linux,iwork8平板电脑安装ubuntu,Z3735d/f系列CPU通用
- Intriguing Properties of Contrastive Losses
- 简介一些黑盒测试的方法