本文转载自:https://blog.csdn.net/linxi_hnh/article/details/8043417

1 路径:

drivers/staging/android/timed_gpio.c

drivers/staging/android/timed_output.c

drivers/staging/android/timed_output.h

drivers/staging/android/timed_gpio.h

2 代码分析:

实现一个设备的驱动,大概需要几个部分的数据:最基础的设备结构体,设备数据结构体和platform data等。

19 struct timed_output_dev {
 20         const char      *name;
 21 
 22         /* enable the output and set the timer */
 23         void    (*enable)(struct timed_output_dev *sdev, int timeout);
 24 
 25         /* returns the current number of milliseconds remaining on the timer */
 26         int             (*get_time)(struct timed_output_dev *sdev);
 27 
 28         /* private data */
 29         struct device   *dev;
 30         int             index;
 31         int             state;
 32 };

此处是设备结构体;他表示一个Timed GPIO设备,

首先,name代表对应的Timed GPIO设备名称。

enable用来设置定时器的过期时间,并使GPIO能输出指定的电平(在timed_gpio中,它最终是指向gpio_enable)

get_time函数则用来获得定时器的剩余时间,即离过期还有多长时间(在timed_GPIO中,它最终是指gpio_get_time)。

dev指向该Timed GPIO设备的设备结构体(struct device)对象,在linux2.6中,内核设备模型把每个设备用一个struct device来表示。

index则是区分同一名称的多个设备(这些设备由同一个驱动管理)

state则表示设备的当前状态。

最新文章

  1. iOS 支持 IPv6
  2. Python学习笔记5-闭合与生成器
  3. js日历选择控件
  4. 【转】统计模型-n元文法
  5. cppunit使用详解
  6. kendo grid输入框验证方法
  7. H2嵌入式数据库的各种连接方式
  8. spring的组成
  9. R语言语法笔记
  10. 使用 OpenSSL API 进行安全编程
  11. iOS开发网络资源整理-持续更新
  12. Android View框架总结(六)View布局流程之Draw过程
  13. Eclipse安装hibernate插件
  14. Python#常用的模块和简单用法
  15. 聚簇索引(clustered index )和非聚簇索引(secondary index)的区别
  16. 从html页面中抽取table表格数据
  17. 2018/09/05《涂抹MySQL》【权限管理】学习笔记(二)
  18. xlsx 库 知识点
  19. WebBrowser JS回调delphi的方法 (简单通用)
  20. java之JDBC学习总结

热门文章

  1. python入门(四):标准输出和文件读写
  2. js封装日历控件
  3. JPA的坑多服务主键重复
  4. 通过脚本同时运行几个spider
  5. windows 全角 怎么切换到半角
  6. 7.javascript如何调试代码
  7. Python图像处理库Pillow入门
  8. 在MyEclipse中改了项目名称,到tomcat的webroot下发现,部署的名称还是原来的。
  9. 常见面试题整理--Python概念篇
  10. 第一节:web 框架本质