Writing an Input Device Driver
Creating an input module
Data format
Keyboard devices
Absolute devices
Relative devices
Callbacks in your module
Writing a combination device/protocol module
A note about reentrancy