The Linux Kernel Hackers' Guide contains descriptions of many of the functions that you need to write contains descriptions of many of the functions that you need to write a device driver. These descriptions are not perfect—they were written over a year ago, and I'm sure I made some mistakes then—but they include enough information to get you started, and can guide you to a basic understanding of the source as you get started. However, by the time this article goes to press, a new revision of the KHG should be available on ftp sites, including tsx-11.mit.edu and sunsite.unc.edu, and it should be more up to date.
Barring disaster, the most recent version can alwasy be found at tsx-11 in the /pub/linux/docs/ LDP/ directory.