在INIT中:
输入设备由struct input-dev 结构表示:
static struct input_dev *buttons_dev;
对输入设备进行设置:
buttons_dev = input_allocate_device(); //分配一个buttons_dev结构体
设置事件的类型:
set_bit(EV_KEY,buttons_dev->evbit);
set_bit(EV_REP, buttons_dev->evbit);
set_bit(KEY_L,buttons_dev->keybit);
set_bit(KEY_S,buttons_dev->keybit);
set_bit(KEY_ENTER,buttons_dev->keybit);
set_bit(KEY_LEFTSHIFT,buttons_dev->keybit);
注册设备:
input_register_device(buttons_dev);
最后设置硬件相关操作;
在exit中:
input_unregister_device(buttons_dev);
input_free_device(buttons_dev);
在输入中断中:
if (pinval)
{
input_event(buttons_dev, EV_KEY, pindesc->key_val, 0);
input_sync(buttons_dev);
}
else
{
input_event(buttons_dev, EV_KEY, pindesc->key_val, 1);
input_sync(buttons_dev);
}