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. Android(安卓)5.1源代码与Nexus设备工厂镜像下载
  2. 三位一体!Android(安卓)Ice Cream Sandwich可能创造全新设备使用
  3. Android(安卓)Things创客DIY第一课-用Android(安卓)Things展示你
  4. android矢量图vector的简单介绍
  5. Android(安卓)Open Accessory Protocol 2.0
  6. Android音频简介
  7. Android(安卓)平台基础开发简介
  8. android屏幕监视工具 android screen monitor使用
  9. 【Android】EditText标签调用键盘

随机推荐

  1. Android中SQLite应用详解
  2. Android学习笔记(一)――Android应用的界面
  3. Android(安卓)进程间通信——AIDL
  4. Android应用程序与SurfaceFlinger服务的
  5. android view滑动助手类OverScroller
  6. Android(安卓)之 AsyncTask 异步任务
  7. Chris:怎样成为一名Android应用开发
  8. Android声音管理AudioManager使用
  9. Android软键盘的隐藏显示研究
  10. Android中ListView分页加载数据