浅谈Linux PMIC驱动(一)
转眼间,从事PMIC驱动开发已将近4年,前后参与两款PMIC芯片研发,一款自研,一款Q公司PMIC,对PMIC有了一定的理解,将其总结归纳,算是这几年工作的收获吧?
读者对象:对PMIC感兴趣的读者,或者从事PMIC驱动开发的同学
目的:一 防止遗忘
二 与大家交流
一 基础概念
PMIC(Power Management IC)又称电源管理IC,是一种特定用途的集成电路,其功能是为主系统作管理电源等工作。PMIC常用于以电池作为电源的装置,例如手机,平板,以及其他嵌入式产品,如智能POS机。
二 组成
PMIC按照功能,可以划分为以下几个部分
1) 输出电源管理(如SMPS,LDO等等)
2) 输入电源管理(如battery charge,coin cell等等)
3) Audio(如codec,模拟电路等等)
4) 用户接口(如Vibrator,LCD bias等等)
5) IC接口(如PON,i2c/spmi等等)
6)housekeeping(如RTC,ADC,XO等等)
7)MPP/GPIO
三 整体驱动框架
PMIC内模块涉及到的Linux驱动框架主要有以下几个:
1 Regulator
2 Power supply
3 RTC
4 PWM
5 GPIO
6 IIO ADC
7 Vibrator
8 Leds
9 PON
从上面可以看出,PMIC内部不同的子模块对应的驱动框架是不同的,每种驱动框架所用到的数据结构和API接口也不同,所以需要分开介绍。
诚邀各位关注此系列文章,我们一起玩转PMIC驱动 ^_^
浅谈Linux PMIC驱动(一)相关推荐
- 浅谈Linux PCI设备驱动(二)
我们在浅谈Linux PCI设备驱动(一)中(以下简称浅谈(一) )介绍了PCI的配置寄存器组,而Linux PCI初始化就是使用了这些寄存器来进行的.后面我们会举个例子来说明Linux PCI设备驱 ...
- 浅谈linux - 内核时间的处理
概述 对于嵌入式开发,经常会遇到一些定时.延时以及周期调度的情况,所以定时器是必不可少的一种资源. 相对于裸机开发,我们使用定时器只需先选择时钟源,然后设置分频系数和计数值,配置好中断后,就可以静静的 ...
- 浅谈Linux标准的文件系统(Ext2/Ext3/Ext4)
Ext 全称Linux extended file system, extfs,即Linux扩展文件系统,Ext2就代表第二代文件扩展系统,Ext3/Ext4以此类推,它们都是Ext2的升级版,只不过 ...
- 浅谈linux - 描述硬件的文件设备树
概述 设备树(device tree),通俗的讲就是将设备描述信息抽象成树的结构.树的主干为系统总线,也就是根节点,根节点下是各种总线控制器,控制器下则是一系列硬件设备节点等. 在Linux2.6中, ...
- 浅谈Linux中ldconfig和ldd的用法
ldd 查看程序依赖库 ldd 作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题. 示例:查看test程序运行所依赖的库: /opt/app/todeav1/te ...
- linux中sh+$0,浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释
摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: ...
- linux 易语言窗口程序_浅谈Linux入门的基本知识
浅谈Linux入门的基本知识 图形模式与文字模式的切换方式Linux预设提供了六个命令窗口终端机让我们来登录. 默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1.tty2 - ...
- Linux先发送条件变量,浅谈Linux条件变量的使用
Linux线程同步之间存在多种机制,条件变量是一种类似操作系统里提到的生产者-消费者算法的同步机制,允许线程以无竞争的方式等待特定条件的发生. 示例伪代码: void* Thread1(void){ ...
- shell for循环1到100_浅谈Linux下shell 编程的for循环常用的6种结构
浅谈Linux下shell 编程的for循环常用的6种结构 1. 常用for循环结构 (1) for 变量 in 值1 值2 值3... do 程序块儿 done (2) for 变量 in `命令` ...
- Linux系统常用函数,浅谈linux下的一些常用函数的总结(必看篇)
1.exit()函数 exit(int n) 其实就是直接退出程序, 因为默认的标准程序入口为int main(int argc, char** argv),返回值是int型的. 一般在shell下 ...
最新文章
- 考研加油!考研的兄弟姐妹们!
- DNA sequencing technologies: 2006–2016
- 查看Oracle数据库中的,已经连接好的..当前用户状况
- vue 解决跨域 调试_Electron-vue解决跨域
- 解决修改SQL SERVER 默认1433端口 访问出错的问题;
- oracle tsn文件,无法启动OracleOraDB10g_home1TSNListener服务
- 远控免杀专题 13----zirikatu免杀
- 输油管道问题 测试数据_建立测试时要考虑的数据管道
- 干货分享丨从MPG 线程模型,探讨Go语言的并发程序
- 【linux】——环境变量
- 为什么default package包里面的方法不能被其他包调用
- 华中科技大学计算机徐明,华中科技大学2011年本科特优生名单
- 使用J-link+J-Flash给STM32芯片烧写序列号
- 中兴olt xpon开局及业务配置以及原理
- flex布局中的自动占满剩下的内容
- python音频 降噪_python - 使用pyaudio对音频播放进行降噪 - 堆栈内存溢出
- AD域详细介绍和部署
- 阿里云服务器CentOS部署Minio服务实现远程访问
- cdn的费是多少_通常的cdn收费标准介绍
- 电平是啥,大白话理解行吗?
热门文章
- 戴尔DELL OEM Win7SP1简体中文旗舰版原版光盘镜像64位
- python学习——matplotlib颜色设置适合论文的配色
- 超级详细:Docker Commands —— Container Commands !(新手必看必会)
- LaTeX中的参考文献——作者年代引用
- 波士顿房价预测python_多元线性回归—波士顿房价预测(版本一)
- Java写的小游戏贪吃蛇代码
- Greedy 贪心算法
- Expressive TTS 相关论文阶段性总结
- SNF快速开发平台--规则引擎在程序当中如何调用
- 谷歌浏览器能打开网页微信_Chrome浏览器打开微信页面-Go语言中文社区