WEB开发网
开发学院手机开发Android 开发 Android 驱动之 jogball 详解 阅读

Android 驱动之 jogball 详解

 2010-03-17 16:15:00 来源:WEB开发网   
核心提示:struct gpio_event_info **info;/*gpio_event的结构指针*/size_t info_count;/*注册到axis中的info 结构体的数量*/int (*power)(const struct gpio_event_platform_data *pdata, bool on);/

struct gpio_event_info **info;/*gpio_event的结构指针*/

size_t info_count;/*注册到axis中的info 结构体的数量*/

int (*power)(const struct gpio_event_platform_data *pdata, bool on);/*电源管理回调函数*/

};

5 代码分析

5.1 通用代码

driver/input/misc/gpio_event.c

/*gpio_event基本数据结构*/

struct gpio_event {

struct input_dev *input_dev;

const struct gpio_event_platform_data *info;

struct early_suspend early_suspend;

void *state[0];

};

/*注册给input的回调函数*/

static int gpio_input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value)

/*调用下层给的回调函数来实现具体的注册*/

static int gpio_event_call_all_func(struct gpio_event *ip, int func)

/*电源管理*/

#ifdef CONFIG_HAS_EARLYSUSPEND

void gpio_event_suspend(struct early_suspend *h)

void gpio_event_resume(struct early_suspend *h)

#endif

/*注册*/

static int __init gpio_event_probe(struct platform_device *pdev)

/*注销*/

static int gpio_event_remove(struct platform_device *pdev)

static struct platform_driver gpio_event_driver

static int __devinit gpio_event_init(void)

static void __exit gpio_event_exit(void)

gpio_event.c:主要是gpio_event子系统的框架

5.2 soc代码

driver/input/misc/gpio_axis.c

struct gpio_axis_state {

struct input_dev *input_dev;/*input设备结构*/

struct gpio_event_axis_info *info; /*坐标系数据结构*/

uint32_t pos; /*位置*/

struct hrtimer emc_hrtimer_delay; /* 延时时间*/

atomic_t atomic_emc_hrtimer_is_run; /*延时的原子变量*/

};

/*上报input数据*/

static void gpio_event_update_axis(struct gpio_axis_state *as, int

上一页  1 2 3 4 5  下一页

Tags:Android 驱动 jogball

编辑录入:coldstar [复制链接] [打 印]
赞助商链接