pmic驱动分析.doc
上传人:sy****28 上传时间:2024-09-13 格式:DOC 页数:26 大小:23KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

pmic驱动分析.doc

pmic驱动分析.doc

预览

免费试读已结束,剩余 16 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

MC34708驱动及其框架分析驱动及其框架分析范少卓主要内容一、MC34708芯片介绍二、MC34708的控制方式三、MC34708的驱动框架分析MC34708四、MC34708相关源代码分析五、调试方法一、MC34708芯片介绍1、功能简介MC34708是Freescale专门为I.MX50和I.MX53系列推出的最新的电源管理芯片,也可以匹配I.MX35,I.MX37,I.MX51处理器。有着强大的功率,在上一代芯片MC13892的基础上优化功能。可以提供一个整体的电源解决方案。一、MC34708芯片介绍2、主要模块:SW:5路多模式降压转换器,直接给处理器内核和内存和外围设备供电的SWBST:1路升压转换器为USBOTG供电的LDO:8路低压差线性稳压器RTC:实时时钟模块ADC:10-bitADC校准电路,负责监视电池和其他输入状态,而且提供触摸屏接口Battery:电池控制模块,拥有电量测量,充电路径选择等功能。I2C:使用SPI/I2C寄存器读写控制芯片运行状态3、电源管理芯片主芯片信号连接图4、电源管理芯片主芯片供电连接图5、上电时序图二、MC34708的控制方式Mc34708的控制方式是通过I2c总线读写寄存器的方式来实现的。在pmic驱动和设备匹配的时候驱动probe会创建一个线程,负责监听中断,并读取mc34708的状态寄存器,根据读取的数据,调用相应的事件处理函数,从而控制mc34708的运行。这些事件处理函数主要是对mc34708寄存器的读写主要在各个模块的驱动中注册。这个是PMIC基本运作方式。如图所示:pmic监听中断:MX53_LOCO_MC34708_IRQ创建线程:pmic-event-threadpmic_start_event_thread(){While(1)pmic_get_active_events();pmic_event_callback();}Mc34708中断根据芯片运行状态改变寄存器的值并发送中断给主芯片读写Pmic_event[event];//注册好的事件处理函数各模块注册事件处理函数三、MC34708的驱动框架分析Mc34708的驱动涉及到设备驱动分层Mc34708是一个I2C设备,对应的驱动是pmic。mc34708内部很多功能模块作为其子设备加载在内核当中。所有的子设备其实最后都封装成了platform设备加载在了内核当中,只是具体的注册方式不同。包括直接注册和封装成regulator。设备驱动层次结构如图所示:四、MC34708相关源代码分析MC34708芯片驱动加载芯片驱动加载功能简介MC34708总的作为一个I2c设备在loco的时候进行了设备注册,对应的驱动是pmic。设备名和驱动ID中的名字一致就能匹配成功;设备和驱动匹配的时候,注册了regulator子设备;对应驱动pmic加载的时候,创建了线程控制芯片的运行;代码分析:Mx53_loco_pmic_mc34708.cPmic_core_i2c.c四、MC34708相关源代码分析MC34708的模块的模块——BuckSwitchersBlock的模块功能简介BuckSwitchers实现的是降压转换然后给设备供电的功能,mc34708共有5路,分别是SW1A/B,SW2,SW3,SW4A/B,andSW5。分别实现的是给处理器核心到外围设备以及i/o口的供电。设备注册;每个控制器实际上最后在系统中注册的名字包括主设备蚷d号,以name.id的形式存储,这里边name统一是mc34708-regulatr,设备ID号就是上边对应的索引。驱动注册:对应的驱动结构体是mc34708_regulator_driver使用驱动名mc34708regulatr代码分析:Mx53_loco_pmic_mc34708.cReg-mc34708.c四、MC34708相关源代码分析MC34708的模块的模块——RTCBlock的模块功能简介Rtc电路可以产生启动信号唤醒低电状态的系统。可以提供时间日期计数,也可以设置警告信息,并提供时间日期调节等功能。Rtc部分为系统提供时钟电路,可以有两种输入选择,内部RC电路或者外部晶振电路,外部晶振可以在电池不到位的情况下使用纽扣电池工作。此模块提供了应用层接口,可以和应用层交互代码分析:Rtc-mc13892.cPmic_core_i2c.c四、MC34708驱动程序及相关源代码分析MC34708的模块的模块——ADC模块的模块模块功能简介10bitADC核心模块是校准电路,功能是实现对芯片内部状态的监控和自动调节,并提供触摸屏检测接口;工作方式:pmic通过读AD