linux电源驱动解析

linux电源驱动解析

ID:13709664

大小:30.60 KB

页数:6页

时间:2018-07-24

linux电源驱动解析_第1页
linux电源驱动解析_第2页
linux电源驱动解析_第3页
linux电源驱动解析_第4页
linux电源驱动解析_第5页
资源描述:

《linux电源驱动解析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.电源1.1.Linux电源类(Linuxpowersupplyclass)参考power_supply.h类型定义,属性值定义等等。(includelinux)、power_supply_core.c核心文件,向内核提供驱动注册接口和其他操作函数。(driverspower)、power_supply_sysfs.c定义属性文件、属性的读写操作接口等等(driverspower)、power_supply_class.txt(Documentationpower)1.1.1.概述电源类提供了电池、UPS、AD、DC等电源在用户空间的接口。该类定义

2、了一些核心属性,这些属性可以通过sysfs或者uenvt接口访问。每种属性都有特殊的含义和单位,由于这些属性普遍适用于各种电源,但是实际应用中有些电源可能无法提供某些属性,所以这些属性驱动可以不提供。电源类是可扩展的,允许驱动程序定义其自身需要的属性,抛弃不需要的属性。它还集成了LED框架,用来表示电池充电/完全充电状态和AC/USB电源线上状态。1.1.1.属性定义于内核文件:power_supply_sysfs.c(driverspower)1.2.linux驱动1.2.1.重要数据结构和函数1.2.1.1.structpower_supply定义于p

3、ower_supply.h(includelinux)对应着电源实例。structpower_supply{constchar*name;//名称,对应于/sys/class/power_supply/xxx文件夹enumpower_supply_typetype;//电源类型,标示该电源为电池、主电源、USB电源等enumpower_supply_property*properties;//提供的属性size_tnum_properties;//properties数组的大小/*对应着当此电源变化时需要通知的电源模块的name*/char**suppli

4、ed_toChar类型的数组;size_tnum_supplicants;//supplied_to数组的大小/*读取属性值*/int(*get_property驱动中必须实现该函数)(structpower_supply*psy,enumpower_supply_propertypsp属性,unionpower_supply_propval*val返回值);/*写属性值*/int(*set_property该函数可不实现,因为默认的属性值为只读的)(structpower_supply*psy,enumpower_supply_propertypsp,co

5、nstunionpower_supply_propval*val);/*设置属性为可写的属性*/int(*property_is_writeable如果实现了该函数并且将某种属性设置为可写的,那么必须实现set_property函数,否则用户空间写该属性值会出错!)(structpower_supply*psy,enumpower_supply_propertypsp);/*外部电源变化时所作的工作*/void(*external_power_changed)(structpower_supply*psy);void(*set_charged)(struct

6、power_supply*psy);/*ForAPMemulation,thinklegacyuserspace.*/intuse_for_apm;/*private*/structdevice*dev;structwork_structchanged_work;spinlock_tchanged_lock;boolchanged;structwake_lockwork_wake_lock;#ifdefCONFIG_LEDS_TRIGGERSstructled_trigger*charging_full_trig;char*charging_full_tri

7、g_name;structled_trigger*charging_trig;char*charging_trig_name;structled_trigger*full_trig;char*full_trig_name;structled_trigger*online_trig;char*online_trig_name;structled_trigger*charging_blink_full_solid_trig;char*charging_blink_full_solid_trig_name;#endif};1.1.1.1.函数power_suppl

8、y_registerpower_supply_cor

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。