第四章1、总线设备驱动.ppt

  1. 1、本文档共83页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章1、总线设备驱动

总线 总线是处理器和设备之间的通道,在设备模 型中, 所有的设备都通过总线相连, 甚至是 内部的虚拟“platform”总线。 在 Linux 设 备模型中, 总线由 bus_type 结构表示, 定 义在 linux/device.h 嵌入式Linux技术咨询QQ号: 550491596 嵌入式Linux学习交流QQ群: } struct bus_type { 总线描述 const char struct bus_attribute struct device_attribute struct driver_attribute *name; /*总线名称*/ *bus_attrs; /*总线属性*/ *dev_attrs; /*设备属性*/ *drv_attrs; /*驱动属性*/ int (*match)(struct device *dev, struct device_driver *drv); int (*uevent)(struct device *dev, struct kobj_uevent_env *env); int (*probe)(struct device *dev); int (*remove)(struct device *dev); void (*shutdown)(struct device *dev); int (*suspend)(struct device *dev, pm_message_t state); int (*suspend_late)(struct device *dev, pm_message_t state); int (*resume_early)(struct device *dev); int (*resume)(struct device *dev); struct dev_pm_ops *pm; struct bus_type_private *p; 嵌入式Linux技术咨询QQ号: 550491596 嵌入式Linux学习交流QQ群: 总线注册/删除 总线的注册使用: bus_register(struct bus_type * bus) 若成功,新的总线将被添加进系统,并可在 sysfs 的 /sys/bus 下看到。 总线的删除使用: void bus_unregister(struct bus_type *bus) 嵌入式Linux技术咨询QQ号: 550491596 嵌入式Linux学习交流QQ群: 总线方法 int (*match)(struct device * dev, struct device_driver * drv) 当一个新设备或者驱动被添加到这个总线 时,该方法被调用。用于判断指定的驱动程 序是否能处理指定的设备。若可以,则返回 非零值。 嵌入式Linux技术咨询QQ号: 550491596 嵌入式Linux学习交流QQ群: 总线方法 int (*uevent)(struct device *dev, char **envp, int num_envp, char *buffer, int buffer_size) 在为用户空间产生热插拔事件之前,这个 方法允许总线添加环境变量。 嵌入式Linux技术咨询QQ号: 550491596 嵌入式Linux学习交流QQ群: 总线属性 总线属性由结构bus_attribute 描述,定义如下: struct bus_attribute { struct attribute attr; ssize_t (*show)(struct bus_type *, char * buf); ssize_t (*store)(struct bus_type *, const char * buf, size_t count); } 嵌入式Linux技术咨询QQ号: 550491596 嵌入式Linux学习交流QQ群: 总线属性 vint bus_create_file(struct bus_type *bus, struct bus_attribute *attr) 创建属性 vvoid bus_remove_file(struct bus_type *bus, stru

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档