




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
版本日制/内容全志全志科,Copyright©2020Allwinners.概述................................................ 编写目的........................................... 适用范围........................................... 相关........................................... ..........模块功能介.....
.................
...................
..... ...................相关术语介绍......................................... 模块配置介绍......................................... config配置说明.................................. PMU......................................... regulator....................................... charger........................................ ...........powerkey..........................................virtualregulator........
.....
..... dts配置说明....................................... regulator属性配 powersupply属性配 powerkey属性配 watchdog属性配 源码结构介 接口设 regulator接 gpio接 regulator使用 gpio使用 ..................................................... watchdog使用 调试方 s命令设置regulator电 s命令获取regulator设 s命令查询regulator状 s命令读写寄存 . 写操 . 读操作......
...............
...... ....axp_reg....powersupply调试方 powerkey调试方 概编写目本文档主要介绍PMU使用方适用范硬件平台:AXP2101、 1.3相本文档可 、驱动开发和测 参考模块介模块功能介电源管理单元,负责系统各模块供电及电池充放电管理。2.2相2.2相关术语介术 电源管理解释说 PMU的名称AXP152、AXP22x解释说LDO 是lowdropoutregulator,意为低压差线性稳压器。线性稳压器使用在其线性区域内运行的晶体管或FET,从应用的输入电压中减去超额的电压,产生经过调节的输出电压。DC-DCDC-DC转换器,也包括LDO。但是一般的说法是把直流变直流由开关方式实现的器件DCDC。Regulatorlinux内核对LDO、DC-DC的控制模块配置介绍config在kernel ,运行make configARCH=arm或make 面。以AXP2101的设备举例,其他参考相应的defconfig文件。DeviceDrivers--->I2Csupport---><*>I2CI2CHardwareBussupport---><*>SUNXII2CDeviceDrivers--->Multifunctiondevicedrivers---><*>X-PowersAXP2101PMICswithDeviceDrivers---[*]Powersupplyclasssupport---<*>AXP2101powersupplypowerDeviceDrivers--->Inputdevicesupport--->-*-Genericinputlayer(neededforkeyboard,mouse,..)[*]Miscellaneousdevices---><*>X-PowersAXP2101powerbuttonvirtualDeviceDrivers--->[*]VoltageandCurrentRegulatorSupport---><*>VirtualregulatorconsumerdtsPMU主设备| >regulator| >powerkey| >powersupply| >gpio| >wdtPMUAXP2101的设备举例,其他参考相应的dts文件:pmu0:pmu@0{reg=<0x34>;#size-cells=interrupt-parent=<&nmi_intc>;wakeup-charger0:param=<&axp2101_parameter>;status="okay";pmu_chg_ic_temp=<0>;pmu_battery_cap=pmu_runtime_chgcur=pmu_suspend_chgcur=pmu_shutdown_chgcur=pmu_init_chgvol=pmu_usbpc_cur=pmu_battery_warning_level1=<15>;pmu_battery_warning_level2=<0x0>;pmu_chgled_type=<0x0>;/*wakeup_bat_charge_over;/*wakeup_bat_untemp_work;/*wakeup_bat_ovtemp_work;/*wakeup_bat_untemp_chg;/*wakeup_bat_ovtemp_chg;powerkey@0{status=pmu_powkey_off_time=<6000>;pmu_powkey_off_en=pmu_powkey_long_time=pmu_powkey_on_time=<512>;regulators@0{dcdc1regulator-name="axp2101-dcdc1";regulator-max-microvolt=<3400000>;regulator-always-reg_dcdc2:dcdc2regulator-name="axp2101-dcdc2";regulator-min-microvolt=<500000>;regulator-max-microvolt=<1540000>;regulator-always-reg_dcdc3:dcdc3regulator-name="axp2101-dcdc3";regulator-min-microvolt=<500000>;regulator-max-microvolt=<3400000>;regulator-always-reg_dcdc4:dcdc4regulator-name="axp2101-dcdc4";regulator-min-microvolt=<500000>;regulator-max-microvolt=<1840000>;regulator-always-reg_dcdc5:dcdc5regulator-min-microvolt=regulator-max-microvolt=reg_rtcldo:rtcldo/*RTC_Lsafixed,always-onregulator*/regulator-name="axp2101-rtcldo";regulator-min-microvolt=regulator-max-microvolt=<1800000>;regulator-always-reg_rtcldo1:rtcldo1regulator-name="axp2101-rtcldo1";regulator-min-microvolt=regulator-max-microvolt=reg_aldo1:aldo1regulator-name="axp2101-aldo1";regulator-min-microvolt=<500000>;regulator-max-microvolt=<3500000>;regulator-always-reg_aldo2:aldo2regulator-name="axp2101-aldo2";regulator-min-microvolt=<500000>;regulator-max-microvolt=<3500000>;reg_aldo3:aldo3regulator-name="axp2101-aldo3";regulator-min-microvolt=<500000>;regulator-max-microvolt=<3500000>;reg_aldo4:aldo4regulator-name="axp2101-aldo4";regulator-min-microvolt=<500000>;regulator-max-microvolt=reg_bldo1:bldo1regulator-name="axp2101-bldo1";regulator-min-microvolt=<500000>;regulator-max-microvolt=<3500000>;regulator-always-reg_bldo2:bldo2regulator-name="axp2101-bldo2";regulator-min-microvolt=<500000>;regulator-max-microvolt=reg_dldo1:dldo1regulator-name="axp2101-dldo1";regulator-min-microvolt=<500000>;regulator-max-microvolt=reg_dldo2:dldo2regulator-name="axp2101-dldo2";regulator-min-microvolt=<500000>;regulator-max-microvolt=reg_cpusldo:cpusldoregulator-min-microvolt=regulator-max-microvolt=virtual-dcdc1dcdc1-supply=<®_dcdc1>;virtual-dcdc2dcdc2-supply=<®_dcdc2>;virtual-dcdc3dcdc3-supply=<®_dcdc3>;virtual-dcdc4dcdc4-supply=<®_dcdc4>;virtual-dcdc5dcdc5-supply=<®_dcdc5>;virtual-aldo1compatible="xpower-vregulator,aldo1";aldo1-supply=<®_aldo1>;virtual-aldo2compatible="xpower-vregulator,aldo2";aldo2-supply=<®_aldo2>;virtual-aldo3compatible="xpower-vregulator,aldo3";aldo3-supply=<®_aldo3>;virtual-aldo4aldo4-supply=virtual-bldo1compatible="xpower-vregulator,bldo1";bldo1-supply=<®_bldo1>;virtual-bldo2compatible="xpower-vregulator,bldo2";bldo2-supply=<®_bldo2>;virtual-dldo1compatible="xpower-vregulator,dldo1";dldo1-supply=<®_dldo1>;virtual-dldo2compatible="xpower-vregulator,dldo2";dldo2-supply=<®_dldo2>;#size-cells=status="okay";{select="battery-parameter=/bits/8<0x010xF50x000x000xFB0x000x000xFB0x000x1E0x320x010x140x040xD80x040x740xFD0x580x0B0xB30x100x3F0xC80x000xBE0x030x4E0x060x3F0x020x0A0xD30x0F0x740x0F0x310xE50x0E0xB90x0E0xC00x040xBE0xBB0x090xB40x0E0xA00x0E0x920x790x0E0x4C0x0E0x270x030xFC0xD50x080xBC0x0D0x9C0x0D0x550xB80x2E0x240x2E0x2E0x240x2E0xC50x980x7E0x660x4E0x440x380x120x0A0xF60x000x000xF60x000x000xFB0x000x000xFB0x000x000x000x000xF60x000x000xF60x000x000xFB0x000x000xFB0x000x000x000x000xF60x000x000xF60x00PMU属性配regi2c寄存器interrupts中断配置,参考内核中断配interrupt-parent中断控制器wakeup-source是否支持pmu_powerok_noresetpowerokio不支持低电平resetx-powers,drive-vbus-ensetN_VBUSENpinasanoutputpintocontrolanexternalregulatortodrivewhenpowerkeypresslongerthan16s,PMUresetornot.0:notreset1:pressirqwakeu otwhensleeporpowerdown.0:notwakeup1: whenPMUovertemperatureprotectornot.0:disable1:regulator属性配regulator为系统regulator_dev设备,每个regulator_dev代表一路电源,设备通过对的置建立regulator,用来实现对电源的电压设置等功能。regulator设备目前暂无设备树属性可以的置powersupply属性配powersupplyac-power-supply、usb-power-supply和battery-power-supply。对于ac-power-supply属性配置如下。pmu_ac_volpmu_ac_curac唤醒使能对于usb-power-supply属性配置如下usbpc输入电压限制值pmu_usbpc_curpmu_usbad_vol 对于battery-power-supply属性配置如下。pmu_init_chgvol充电电压限制单位为pmu_chgled_func<u32>CHGKEDpincontrol0:controlledbypmu1:controlledbypmu_chgled_typeCHGLEDTypeselectwhenpmu_chgled_funcis00:displaywithtypeAfunction1:displaywithtypeB3:outputcontrolledbytheregisterofpmu_chled_enable设置CHGLEDpin是否使0:1:pmu_chg_ic_temp1:TScurrentsourcealwayson0:TScurrentsourceoff5-205%-20%warningpmu_battery_warning_level20-150%-15%warning pmu_pre_chg设置预充电电流0200stepis25单位为pmu_iterm_limit<u32>0200stepis25pmu_runtime_chgcurpmu_suspend_chgcurpmu_shutdown_chgcurpmu_bat_detbatterydetectionmeansselectbyte[2]:01batterydetectioncharge/dischargecurrenttimebyte[1]:01s1batterydetectionenablebyte[0]:0disable1pmu_btn_chg_enbuttonbatterycharge2600-3300纽扣电池充电截至电压,单位为param指定电池电池参数由多个字节组成,在param指定的phandler结点里面添加电池结点,然后通过select选择参数结点名字用来指定哪个结点。参考实例:根据前面的pmic参考设备树节点的pmic-parameter结点**电池参数根据使用的电池不同,通过仪器测量出来。pmu_bat_para2pmu_bat_para32电池曲线**电池参数根据使用的电池不同,通过仪器测量出来。pmu_battery_rdc单位为pmu_battery_cappmu_bat_temp_para2pmu_bat_temp_para16电池温度**电池温度参数根据使用的电池不同pmu_bat_temp_enable设置电池温度检测0:1:pmu_bat_charge_ltf电池低温关闭充电pmu_bat_charge_htf电池高温关闭充电pmu_bat_shutdown_ltf电池低温pmu_bat_shutdown_htf电池高温wakeup_bat_in电池唤醒使wakeup_bat_out电池拔出wakeup_bat_charging电池充电wakeup_bat_charge_over电池充电结束唤醒wakeup_low_warning1电池低电量告警唤wakeup_low_warning2电池低电量告警2唤醒wakeup_bat_untemp_chg电池低温充电唤醒wakeup_bat_ovtemp_chg电池超温充电唤醒wakeup_bat_untemp_work电池低温工作唤醒wakeup_bat_ovtemp_work电池高温工作唤醒powerkey属性配powerkey设备为按键设备,具体的说为电源按键设备。powerkey属性配置pmu_powkey_off_time40006000800010000pmu_powkey_off_func1复位系统0pmu_powkey_long_time10001s150020002500 控制按键1PWRON>OFFLEVELASpoweroffsourceenable0PWRON>OFFLEVELaspoweroffsourcepmu_powkey_on_time控制按钮按下多长12851210002000pmu_pwrok_timedelayofPWROKafterallpoweroutputgood88ms163264wakeup_rising控制是否弹起按钮wakeup_falling控制是否按下按钮watchdog属性暂未添加设备树支2.4源码结构介|--drivers/mfd/axp2101|--drivers/mfd/axp2101-|--drivers/regulator/axp2101-|--drivers/input/misc/axp2101- 下为PMIC的mfd驱动代码;regulator 下为PMIC的regulator驱动代码;input/misc下为PMIC的powerkey驱动代码;drivers/power/supply 下为PMIC的charger驱动代码。接口设regulator接无gpio接无其他设备对regulator_dev设备的通过设备树配置<name>-supply=具体设具体设参考内核的regulator使用文档。chargerwatchdogPMU会创建一个hw_timeout4s的一个看门狗timeout5s。使用方法watchdog会在/dev/watchdog*,sunxi-devsocwatchdog,pmicwatchdog会抢先使用/dev/watchdog->/dev/watchdog0,这样保证直接使用/dev/watchdog为使用pmicwatchdog。在某些情况下面,socwatchdog会存在不能复位pmic的情况,这时需要pmicwatchdog。1.pmicwatchdog打开后即开启,关闭文件不能关闭看门狗。2.如需要关闭看门狗,需要发送'V字符即可关闭看门狗。3.set_timeout方法设置看门狗时间。4.watchdog可以喂狗,或者使用标准的ioctl方法。调试方在设备进行开发过程中,难免需要对各路电源进行调试,控制电源各路电压等操作,内核中提供了对电源调试的方式. 对各路电压的控制是常用的调试,通过对各路不压设置,实现功耗,性能,稳定性等信息 通过进入不同的virtual设备,来控制不同的电源。virual设备存在于axp2101主设备结点下面,因此设备路径为主设备下面的从设备。以AXP2101的设备举例。/sys/devices/platform/soc/twi4/i2c-4/4-0034/regulator/regulator.1/reg-virt-consomer.1-通过此路径下面的**max_microvolts**和**min_microvots**设备结点进行写操作,用来完成对设备电源的控制,此例为echo3000000>max_microvoltsecho3000000>设置电压为 获取有哪几路电源了电源,进入需要查看的电源,进入/sys/class/regulator/regulator.1,查看当前下的,即可确定有哪几路设备。另外法就是进入regulator的debugfs结点,用来查看regulator的map信息。参考各路电源状态 kernel提供调试结点供电源进行调试进行,可以通过kernel的调试结点获取各路电源的各个AXP2101的设备举例,首先需要mountdebugfs文件系统mount-tdebugfsnonecat useopenbypassvoltage regulator-0regulator-0100700mA1500mVreg-virt- 0100mA500mVreg-virt- 0200mA500mV1000mVreg-virt- 010 0mA500mVreg-virt- 010 0mA1400mVreg-virt- 000 0mA1800mV000 0mA1800mV010 0mA500mVreg-virt- 020 0mA500mV reg-virt-reg-virt-010reg-virt-010reg-virt-010reg-virt-010reg-virt-110reg-virt-010reg-virt-000通过上例可以看出各路电源有哪几路设备请求,已经请求的值和目前各路电源的状态 命令读写寄存寄存器调试是指直接对pmic的寄存器进行读写操作,此操作应该对寄存器有了解的情况下进行操作,不正确的操作方式将会导致烧毁。在终端中,对抛出的调试结点进行读写操作,即可对寄存器进行读写操作。无论是读还是写寄存器,都应该首先挂载debugfs文件系统。由于pmic是通过regmap进行读写操作,应该可以使用regmap的调试结点进行对pmic的读写访 问操作。regmap的调试结点在debugfs文件系统下面,通过对regmap调试结点的操作可以对pmic的寄存器进行读写操作寄存器调试挂载在debugfs文件系mount-tdebugfsnone实例写0xff寄存器值为寄存器调试挂载在debugfs文件系mount-tdebugfsnone/sys/kernel/debug/regmap/${dev-实例cat/sys/kernel/debug/regmap/4-0034/registers另外,还支持axp驱动自定义节点axp_reg读写寄存器。但是这种用法是不的,因为有标 方式来读写寄存器,根本没必要用私有非标的方式。示例axp_regcat/sys/class/axp/axp_regpowersupply调试方根据电池的各种状态, 下面状态,判断一致性powerkey调试方在用户空evtest,evtestpmicevdev测试。按下按1,弹起0available Selectthedeviceeventnumber[0-1]:0Inputdriverversionis1.0.1InputdeviceID:bus0x0vendor0x0product0x0version0x0Inputdevicename:"axp2101-pek"Eventtype0(EV_SYN)Eventtype1Eventcode116(KEY_POWER)Keyrepeathandling:Repeattype20(EV_REP) Repeat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校运营合同范本
- 财务课题申报书范例范文
- 转让门面押金合同范本
- 维生素缺乏性佝偻病护理
- 2025至2030年中国发芯分子补水液数据监测研究报告
- 腹部精致护理方案
- 2025至2030年中国办公楼宇标识系统数据监测研究报告
- 2025至2030年中国全功能门禁防盗主机数据监测研究报告
- 消防训练培训课件
- 二零二五年度酒店与客户客房预订个人客户优惠合同
- 施工图纸接收及分发台账
- 物流系统建模与仿真课件
- 小粒咖啡栽培技术措施课件
- 运输企业消防应急救援预案
- 高边坡挂网锚喷支护专项施工方案
- 10KV系统短路电流整定计算表格
- 初中英语 沪教牛津版 8B U1-4 More Practice Success for Spring Buds 课件
- 压水堆核电厂在役检查课件
- 前房角镜检查法及其在眼科的应用教学课件
- 2017年度项目生产部工作计划推进表甘特图
- 地下室车库综合管线施工布置
评论
0/150
提交评论