linux输入子系统之按键驱动

上一节中,我们讲解了Linux  input子系统的框架,到内核源码里详细分析了输入子系统的分离分层的框架等。

上一节文章链接:http://blog.csdn.net/lwj103862095/article/details/17733993

这一节,我们来以输入子系统的框架来写一个按键驱动。

问:怎么写符合输入子系统框架的驱动程序?

答:
1. 分配一个input_dev结构体
2. 设置
3. 注册
4. 硬件相关的代码,比如在中断服务程序里上报事件

问:如何分配input_dev结构体?

答:使用input_allocate_device函数

input_dev结构体的重要成员

struct input_dev {const char *name;const char *phys;const char *uniq;struct input_id id;unsigned long evbit[NBITS(EV_MAX)];   // 表示能产生哪类事件unsigned long keybit[NBITS(KEY_MAX)]; // 表示能产生哪些按键unsigned long relbit[NBITS(REL_MAX)]; // 表示能产生哪些相对位移事件, x,y,滚轮unsigned long absbit[NBITS(ABS_MAX)]; // 表示能产生哪些绝对位移事件, x,yunsigned long mscbit[BITS_TO_LONGS(MSC_CNT)];unsigned long ledbit[BITS_TO_LONGS(LED_CNT)];unsigned long sndbit[BITS_TO_LONGS(SND_CNT)];unsigned long ffbit[BITS_TO_LONGS(FF_CNT)];...
}
问:第二步的设置,应该怎么设置,应该设置什么?

答:举例,在此按键驱动里


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部