5、regulator系统的概念及测试

概念:
Regulator : 电源芯片, 比如电压转换芯片
Consumer : 消费者,使用电源的部件, Regulator是给Consumer供电的
machine : 单板,上面焊接有Regulator和Consumer
Constraints : 约束, 比如某个电源管理芯片输出的电压范围
Supply : 提供电源的部件, Regulator就是一个Supply; Regulator A可以给Regulator B供电, 那么Regulator B的Supply就是A

regulator 电源芯片本身的驱动程序:.enable、.diable、.set_voltage、.set_current

Consumer在驱动中引用regulator的函数工作

machine(单板):1、Regulator和Consumer的对应关系

        2、约束:单板相关的条件,比如电压范围

(详细文档见内核顶层目录下Documentation/power/regulator目录下的overview.txt和其他文档)

写驱动程序:
1. regulator:(可以参考drivers/regulator/tps6105x-regulator.c)
注册一个platform_driver: 在它的probe函数里分配、设置、注册一个regulator
"设置"里要做的事情: 实现regulator的操作, 比如enable, disable, set_voltage

在regulator的probe函数中通过dev_get_platdata获得在machine端设置的私有数据
2. machine:
注册一个platform_device: 在它的私有数据里指定regulator和consume的对应关系(这个电源芯片给哪一个部件供电)
指定约束条件(比如电压范围)

在machine端的platform_device中的.dev中设置platform_data私有数据(regulator和consumer的对应关系,约束条件),该私有数据供regulator在register的时候使用

3. consumer: 使用即可: regulator_get, regulator_enable, regulator_disable, regulator_set_voltage....

regulator_register流程分析:
// 分配regulator_dev
rdev = kzalloc(sizeof(struct regulator_dev), GFP_KERNEL);

/* set regulator constraints */
set_machine_constraints
add_regulator_attributes

/* add consumers devices */
set_consumer_device_supply
在regulator_map_list链表里生成一项regulator_map: 它里面有dev_name(consumer的名字),supply(cosumer的电源引脚名字)

// 把regulator_dev放入regulator_list
list_add(&rdev->list, &regulator_list);

编译测试:
1. make menuconfig
Device Drivers --->
[*] Voltage and Current Regulator Support --->

修改 drivers/video/Makefile把原来的LCD驱动去掉
#obj-$(CONFIG_FB_S3C2410) += lcd_4.3.o

make uImage

2. 编译驱动
3. 使用新内核启动
4. 安装驱动:

原文地址:https://www.cnblogs.com/liusiluandzhangkun/p/8978138.html

时间: 2024-10-03 14:42:27

5、regulator系统的概念及测试的相关文章

Linux系统硬盘的IOPS测试

******************************************************************************************* 版权所有: www.foutime.com  深圳市方泰智能科技有限公司 通道锁 逃生锁 一卡通 楼宇对讲 停车场 ******************************************************************************************* 什么是IOPS?

javacpp-opencv图像处理系列:国内车辆牌照检测识别系统(万份测试车牌识别准确率99.7%以上,单次平均耗时39ms)

javaCV图像处理系列: 一.javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置.大小.粗度.翻转.平滑等操作 二.javaCV图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制 三.opencv图像处理3:使用opencv原生方法遍历摄像头设备及调用(方便多摄像头遍历及调用,相比javacv更快的摄像头读取速度和效率,方便读取后的图像处理) 四.opencv图像处理系列:国内车辆牌照检测识别系统(万份测试准确率99.7%以上

系统编程概念与文件属性

本文是作者阅读TLPI(The Linux Programer Interface的总结),为了突出重点,避免一刀砍,我不会过多的去介绍基本的概念和用法,我重点会去介绍原理和细节.因此对于本文的读者,至少要求读过APUE,或者是实际有写过相关代码的程序员,因为知识有点零散,所以我会尽可能以FAQ的形式呈现给读者. 系统编程概念 什么是udev机制? 我们都知道在Linux中一切都是文件,添加的设备都会在/dev/目录下游一个唯一的文件与之对应,在Linux的早期版本中/dev包含了系统所有可能的

机房收费系统数据库概念结构设计

数据库的设计大致流程想必大家都知道,不知道的也能很容易的在网上找到相关的资料,通常,我们将数据库设计分为6个阶段,即需求分析阶段.概念结构设计阶段.逻辑结构设计阶段.物理结构设计阶段.实施阶段.运行和维护阶段. 本次我们不谈数据库设计的理论知识,主要是以机房收费系统的数据库设计为背景来说明数据库的概念结构设计是如何产生的,当然包括了数据库设计中最难的需求分析了,否则就谈不上什么数据库的概念结构设计了. 因为我们都已经做过一遍了,而且从一开始我们就是照着系统原型做的,没有从无到有的过程,所以无法体

高吞吐量的分布式发布订阅消息系统Kafka--安装及测试

一.Kafka概述 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素. 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决. 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案.Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群机来提供实时的消费. 二.Kafka相关

让Xcode支持高版本系统设备真机测试

最新支持11.2 (15C107) Xcode只可以支持iPhone手机对应iOS系统以下的真机测试.一般想要支持最新的iPhone手机系统,有两个方法. 第一.就需要更新Xcode,这一个方法有一个缺陷就是,大家都喜欢体验最新的iPhone手机系统,但是喜欢使用Xcode beta版的不是很多,毕竟很不稳定,给Apple公司当小白鼠,感觉踩不完的坑.当然本文推荐的不是第一种,看官莫急,请往下看. 第二.就是对于Xcode的真机支持包更新,真机运行的支持包的位置位于:Xcode.app//Con

LINUX系统下跑分测试脚本:unixbench.sh

linux 系统跑分测试脚本:     一.下载脚本:        wget http://teddysun.com/wp-content/uploads/unixbench.sh 二.更改权限:        chmod +x unixbench.sh 三.运行测试:        sudo bash ./unixbench.sh 等待结果... 测试时间可能会比较长,请耐性等待! 注释:由于网上找了很多方法都没有成功,这个方法亲测可行,以此博文作为记录,并且分享给有需要的小伙伴! 原文地址

Linux regulator系统

1. 概念:Regulator : 电源芯片, 比如电压转换芯片Consumer : 消费者,使用电源的部件, Regulator是给Consumer供电的machine : 单板,上面焊接有Regulator和ConsumerConstraints : 约束, 比如某个电源管理芯片输出的电压范围Supply : 提供电源的部件, Regulator就是一个Supply; Regulator A可以给Regulator B供电, 那么Regulator B的Supply就是A 2. 写驱动程序:

storm的基本概念安装测试

strom简介官方网址:http://storm.apache.org/是一个免费,开源的分布式实时计算系统,使用它可以轻松实现数据流的实时处理,Strom很简单,可以用任何编程语言 storm用例:实时在线分析 机器学习,连续计算,分布式RPC,ETL等.Strom的特点:快速:基准时钟在超过一百万元组(可以理解为数据包)每秒处理的每个节点简单的设置:有可扩展性,容错性,保证了数据的处理能力,并且易于设置和操作 storm实时流式计算系统 storm集群与hadoop集群(MapReduce)