I agree with Xhi about the O'Reilly book.
I would urge you to make use of each of these three resources:
1. Linux Device Drivers, 3rd Ed, Corbet, Rubini, Kroah-Hartman
<= Probably the best on the mechanics of coding, compiling and troubleshooting drivers
2. Linux Kernel Development, 2nd Ed, Love
<= Gives you the necessary background on how kernel drivers ... and the kernel in
general - works. Absolutely essential background for *writing* kernel drivers.
3. The Linux kernel itself:
<= Linux kernel home page and downloads
<= Linux kernel developer's mailing list
IMHO .. PSM