Linux 系统提供了input 子系统,
按键、触摸屏、键盘、鼠标、摇杆等输入都可以利用input 接口函数来实现设
备驱动。
input子系统仍然是字符设备驱动程序,但是代码量减少很多,input子系统只需要完成两个工作:初始化和事件报告
struct input_dev *xx_dev;
xx_init()
{
xx_dev = input_allocate_device();
xx_dev = input_allocate_device();
input_register_device( xx_dev);
set_bit(EV_xx, xx_dev->evbit);
//
设备驱动通过 set_bit()等位设置语句告诉input 子系统它支持哪些事件
}
xx_interrupt()
{
input_report_XX(
input_sync(xx_dev); //用于告知接收端已完成一个完整的数据报告,在鼠标等X,Y分离数据比较重要
}
void _ _exit xx_exit(void)
{
input_unregister_device(xx_dev); //注销input 设备
free_irq(xx_IRQ, xx_interrupt); //释放中断
}
module_init(xx_init);
module_exit(xx_exit);